2大数据平台的建设
大数据平台建设
大数据平台建设硬件环境
服务器环境
一.数据采集系统运行环境
大数据平台需要接入政务数据、社会数据、以及其他数据。其接入方式主要包含系统对接与爬虫采集两种方式。系统对接方式运行需要依赖数据抽取前置机与中心接口服务器;爬虫采集方式需要部署分步式爬虫专用服务器。
1. 采集前置机:
解决前置数据抽取问题,并将数据从抽取处发向中心接口服务器。
2. 数据接口服务器:
为数据采集前置机提供数据接收服务器,解决数据集中化处理问题。
3. 分步式爬虫服务器:
用于部署分步式爬虫系统,解决采集互联网资源的问题。
二.数据清洗转换服务器
置于数据接口服务器与爬虫服务器之后,用于解决数据的清洗转换问题。
三.分步式存储服务器
四.并行分析服务器
对分步式存储系统的数据进行并行分析,解决大规模数据的分析,挖掘问题。
五.硬盘数据库服务器
用于部署分NoSQL 数据库,解决高并发在线数据服务问题。
六.内存数据库服务器
用于部署分步式内存数据库系统。
七.Web 服务器(展现、应用、共享、运营)
用于部署数据共享、应用、展现、运营、监控等系统。解决大数据平台对外服务问题。 存储资源
数据存数主要包含结构化数据存储,半结构化数据存储,非结构化数据存储等方大类数据的存储,初期提供可存储800TB 数据的磁盘,后期根据业务的发展可考虑提供PB 级存储磁盘。
备份资源
初期提供100TB 备份磁盘,对大数据平台的关键数据进行备份,备份可考虑使用第三方数据服务机构的异地备份服务。
网络资源
1. 内部网络:
满足内部服务间交换数据,千兆或以上网络连接内部集群服务器。
2. 对外服务网络:
满足大数据平台对外服务需求,100MB 或以上网络Internet 网络。
3. 数据接口服务网络:
满足数据接口传输需求,100MB 或以上网络Internet 网络。
4. 爬虫专用网络:
满足爬虫采集互联网资源,100MB 或以上网络Internet 网络。
搭建大数据的几款开源软件
对于大数据开放源码工具,分为四个领域:数据商店、开发平台、开发工具和集成、分析和报告工具。
数据存储区
Apache Hadoop — — 云(VMware )、 Hortonworks 、 Hadapt
NoSql 数据库 — — MongoDB ,卡桑德拉 Hbase
SQL 数据库 — — MySql (Oracle ),MariaDB ,PostgreSQL TokuDB
开发平台
在 Apache Hadoop — — 黑斑羚(大规模并行处理 (MPP) 查询引擎,可以在本地运行);舌 (ANSI SQL) ;模式(分析);级联(为数据分析和数据管理应用程序的 Java 开发人员的应用程序框架)
在 Apache Lucene 和 Solr — — 搜索从 LucidWorks 和 ElasticSearch
OpenStack (开源软件的构建私有云和公共云)。
Red Hat (Hadoop 服务器标准的 Linux 发行版本)
礁(微软的 Hadoop 开发平台)
风暴(与任何队列的系统和任何数据库系统集成)
开发工具
Apache Mahout (机器学习的编程语言)
Python 和 R (预测分析编程语言)
集成、 分析和报告工具
Jaspersoft (报告和分析服务器)
Pentaho (数据集成和业务分析)
Splunk (IT 分析平台)
Talend (大数据集成、数据管理和应用程序集成)
整体而言,大数据平台从平台部署和数据分析过程可分为如下几步:
1、linux 系统安装
一般使用开源版的Redhat 系统--CentOS 作为底层平台。为了提供稳定的硬件基础,在给硬盘做RAID 和挂载数据存储节点的时,需要按情况配置。例如,可以选择给HDFS 的namenode 做RAID2以提高其稳定性,将数据存储与操作系统分别放置在不同硬盘上,以确保操作系统的正常运行。
2、分布式计算平台/组件安装
目前国内外的分布式系统的大多使用的是Hadoop 系列开源系统。Hadoop 的核心是HDFS ,一个分布式的文件系统。在其基础上常用的组件有Yarn 、Zookeeper 、Hive 、Hbase 、Sqoop 、Impala 、ElasticSearch 、Spark 等。
先说下使用开源组件的优点:
1)使用者众多,很多bug 可以在网上找的答案(这往往是开发中最耗时的地方)。
2)开源组件一般免费,学习和维护相对方便。
3)开源组件一般会持续更新,提供必要的更新服务当然还需要手动做更新操作。
4)因为代码开源,若出bug 可自由对源码作修改维护。
再简略讲讲各组件的功能。分布式集群的资源管理器一般用Yarn ,全名是Yet Another Resource Negotiator。常用的分布式数据数据仓库有Hive 、Hbase 。Hive 可以用SQL 查询但效率略低,Hbase 可以快速近实时读取行。外部数据库导入导出需要用Sqoop 。Sqoop 将数据从Oracle 、MySQL 等传统数据库导入Hive 或Hbase 。Zookeeper 是提供数据同步服务,Yarn 和Hbase 需要它的支持。Impala 是对hive 的一个补充,可以实现高效的SQL 查询。ElasticSearch 是一个分布式的搜索引擎。针对分析,目前最火的是Spark 此处忽略其他,如基础的MapReduce 和 Flink 。Spark 在core 上面有ML lib,Spark Streaming、Spark QL和GraphX 等库,可以满足几乎所有常见数据分析需求。
值得一提的是,上面提到的组件,如何将其有机结合起来,完成某个任务,不是一个简单的工作,可能会非常耗时。
3、数据导入
前面提到,数据导入的工具是Sqoop 。用它可以将数据从文件或者传统数据库导入到分布式平台一般主要导入到Hive ,也可将数据导入到Hbase 。
4、数据分析
数据分析一般包括两个阶段:数据预处理和数据建模分析。
数据预处理是为后面的建模分析做准备,主要工作时从海量数据中提取可用特征,建立大宽表。这个过程可能会用到Hive SQL,Spark QL和Impala 。
数据建模分析是针对预处理提取的特征/数据建模,得到想要的结果。如前面所提到的,这一块最好用的是Spark 。常用的机器学习算法,如朴素贝叶斯、逻辑回归、决策树、神经网络、TFIDF 、协同过滤等,都已经在ML lib里面,调用比较方便。
5、结果可视化及输出API
可视化一般式对结果或部分原始数据做展示。一般有两种情况,行熟悉展示,和列查找展示。在这里,要基于大数据平台做展示,会需要用到ElasticSearch 和Hbase 。Hbase 提供快速ms 级别的行查找。ElasticSearch 可以实现列索引,提供快速列查找。
大数据平台目标架构及定位
(注:该图来源于ppt 截图,原ppt 在我手上)