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能够实现列索引,供给快速列查找。