一般的大资料平台从平台搭建到资料分析大概包括以下几个步骤:
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可自由对源代码作修改维护。
常用的分散式资料资料仓库有Hive、Hbase。Hive可以用SQL查询,Hbase可以快速读取行。外部数据库汇入汇出需要用到Sqoop。Sqoop将资料从Oracle、MySQL等传统数据库汇入Hive或Hbase。Zookeeper是提供资料同步服务, Impala是对hive的一个补充,可以实现高效的SQL查询
3、资料汇入
前面提到,资料汇入的工具是Sqoop。它可以将资料从档案或者传统数据库汇入到分散式平台。
4、资料分析
资料分析一般包括两个阶段:资料预处理和资料建模分析。
资料预处理是为后面的建模分析做准备,主要工作时从海量资料中提取可用特征,建立大宽表。这个过程可能会用到Hive SQL,Spark QL和Impala。
资料建模分析是针对预处理提取的特征/资料建模,得到想要的结果。如前面所提到的,这一块最好用的是Spark。常用的机器学习算法,如朴素贝叶斯、逻辑回归、决策树、神经网络、TFIDF、协同过滤等,都已经在ML lib里面,呼叫比较方便。
5、结果视觉化及输出API
视觉化一般式对结果或部分原始资料做展示。一般有两种情况,行资料展示,和列查询展示。