随着互联网信息化应用的普及,越来越多的企业和机构拥有海量数据。这些数据的采集和分析大多依托于大数据平台。数据从采集到分析最后再形成结果以及可视化模型,中间经历复杂的大数据处理过程。下面主要介绍大数据处理的基本过程和方法,以及当前普适的大数据平台。
大数据处理的过程一般分为4个步骤。
1. 数据采集
数据采集,主要是指通过某种方式搜集数据并存入数据库中,并且用户可以通过数据库进行简单的查询和处理工作。例如,电商平台使用传统的关系型数据库(MySQL、Oracle等)存储每一笔事务数据,或采用Redis或MongoDB等NoSQL类型的数据库。下面介绍几种常见的数据采集方法。
(1)系统日志采集方法
大型的互联网企业一般都会开发自己的数据采集工具,大多用于日志数据的采集。如Hadoop的Chukwa、Cloudera的Flume、Facebook的Scribe等,这些工具均采用分布式架构,能满足每秒数百兆字节的日志数据采集和传输需求。
(2)网络数据采集方法
网络数据采集是指通过网络爬虫或网站公开API等方式从网站上获取数据信息。该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。
(3)特定的数据采集方法
对于企业生产经营数据或学科研究数据等保密性要求较高的数据,可以通过与企业或研究机构合作,使用特定系统接口等相关方式采集数据;也可采用特定的传感器获取指定的数据,再加密传输到数据库中。
2. 数据预处理
由于数据搜集途径多样、数据种类繁多,采集的数据具有多源异构特性,并且同时存在数据不完整、有噪声、不一致等情况。因此,将搜集的数据进行统计分析或利用数据挖掘算法建模,均需要数据清洗,即统一数据格式、提高数据质量,进而提升数据挖掘效果。
数据预处理的方法主要包括:数据清洗,用于去除噪声数据;数据集成,将多个数据源中的数据融合集中到一致的数据存储中;数据变换,把原始数据转换成为适合数据挖掘的形式;数据规约,包括数据聚类、维度归约、数据压缩、数值归约、离散量化等。
3. 数据统计分析
统计与分析主要利用分布式数据库,或分布式计算集群来汇总分析海量数据,以满足后续的数据挖掘需求。常见的结构化关系数据实时统计分析工具,包括 EMC 的 GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等;而其他半结构化数据处理或非关系型批处理等则可应用Hadoop。
4. 数据挖掘与机器学习
在数据统计分析的基础上,数据挖掘通过对数据实施高级分析与建模运算,借助机器学习模型,最终形成数据处理的智能决策。代表性的数据挖掘算法有K-means 聚类、SVM 预测、Naïve Bayes分类等,大数据挖掘的集成平台有Hadoop的Mahout等。自AlphaGo问世以来,深度学习开始应用到各行各业的大数据领域,Google 推出的深度学习集成平台TensorFlow,极大降低了大数据应用深度学习的门槛。
诸如淘宝、12306 等大平台的并发量极大,采用分布式大数据架构。当前常用的大数据分布式平台主要有Hadoop和Spark。
Apache Hadoop是一款支持数据密集型分布式集群计算应用开源软件框架,基于Google公司提出的MapReduce和GFS文件系统。Hadoop框架可为应用提供透明可靠的数据分布式处理,即MapReduce编程范式:应用程序被分区成许多小部分,每个部分都能在集群中的任意节点上运行。同时,Hadoop 还提供了分布式文件系统,用以存储所有计算节点的数据。MapReduce和分布式文件系统的设计,使Hadoop框架能够自动处理节点故障,应用程序能与成千上万具有独立运算的计算机共享数据。整个Apache Hadoop平台包括Hadoop内核、MapReduce、Hadoop分布式文件系统(HDFS),以及Hive、HBase等数据处理工具。
Apache Spark也是一个开源簇运算框架,最初由加州大学伯克利分校的AMPLab开发。Hadoop的MapReduce节点需在运行完任务后将数据存放到磁盘中,Spark则使用了存储器内存运算技术,能在数据尚未写入硬盘时即在存储器内完成运算。Spark 在存储器内运行程序的速度比MapReduce 的运算速度快 100 多倍,即便在硬盘上运行程序,Spark 也能比MapReduce快10倍以上。Spark允许用户将数据加载至簇存储器,并多次对其进行查询,尤其适合用于机器学习算法。
Spark支持独立模式(本地Spark簇)、Hadoop YARN或Apache Mesos的簇管理模式,可以和HDFS、Cassandra、OpenStack Swift和Amazon S3等分布式存储系统对接。Spark也支持伪分布式(Pseudo-Distributed)本地模式,不过通常只用于开发或测试时以本机文件系统替换分布式存储系统。
来源:gh_c593f21141e2 鹤岗科普
原文链接:http://mp.weixin.qq.com/s?__biz=MzUxNDUzOTk5Mw==&mid=2247513484&idx=6&sn=9c0770def4cb73fb43d9b5a93136e52c
版权声明:除非特别注明,本站所载内容来源于互联网、微信公众号等公开渠道,不代表本站观点,仅供参考、交流、公益传播之目的。转载的稿件版权归原作者或机构所有,如有侵权,请联系删除。
电话:(010)86409582
邮箱:kejie@scimall.org.cn