读书频道 > 网站 > 网页设计 > 数据挖掘核心技术揭秘
1.3.1 Hadoop与MapReduce
15-11-10    下载编辑
收藏    我要投稿   

本文所属图书 > 数据挖掘核心技术揭秘

本书包括五部分内容。第一部分(第1~3章)涉及数据挖掘技术的基础知识,介绍数据挖掘的定义、数据挖掘工具及应用领域,数据挖掘的数学基础内容,以及海量数据挖掘处理技术。第二部分(第4~5章)分别从聚类技术立即去当当网订购

1.Hadoop

Hadoop是目前主流的分布式海量数据挖掘平台。Hadoop是一个开发和运行处理大规模数据的软件平台,是Apache的一个用Java语言实现的开源软件框架,可以实现在由大量计算机组成的集群中对海量数据进行分布式计算。Hadoop采用分布式文件系统HDFS来存储文件,利用MapReduce来处理分布式文件系统上的数据,可以保证高效分析和处理数据。

(1)Hadoop生态圈

Hadoop是所有相关子项目的集合,核心是HDFS和MapReduce,其他的子项目例如分布式数据库HBase、数据仓库Hive则提供补充性服务。Hadoop生态圈如图1-2所示。


 

HDFS:是一个主从(master/slave)结构,由一个NameNode和若干个DataNode构成,NameNode管理文件系统的元数据,DataNode存储实际数据。

MapReduce:处理海量数据的并行编程模型和计算框架,采用“分而治之”思想,包括分解任务的map函数和汇总结果的reduce函数,MapReduce任务由一个JobTracker和若干个TaskTracker控制完成,JobTracker负责调度和管理TaskTracker,TaskTracker负责执行任务。

Pig:SQL-like语言,是在MapReduce上构建的一种高级查询语言,以简化MapReduce任务的开发。

Hive:数据仓库工具,提供SQL查询功能。

HBase:基于列存储模型的分布式数据库。

ZooKeeper:针对分布式系统的协调服务。

(2)HDFS

HDFS是Hadoop的文件系统(Hadoop Distributed File System)。HDFS是运行在普通硬件上的分布式文件系统,以流式数据访问模式来存储超大文件,管理网络中跨多台计算机存储的文件。

HDFS的体系结构如图1-3所示。


 

(3)MapReduce

传统的关系型数据库索引方式一般采用B树或者B+树,在数据更新频率较低时,索引的效果比较好,但发生大规模的数据更新操作时,由于B树在索引重建的阶段需要耗费大量的时间,因此在此应用场景上,B树的效率明显不如MapReduce高。

MapReduce的目的在于将大文件切分成若干个部分,在每一个节点的Mapper类中并行处理,对数据进行逻辑处理并按照一定的规则转换成Key/Value形式进行数据重组,Mapper的结果作为Reduce类的输入,针对重新组合的数据,进行逻辑处理后输出。整个框架对数据的格式要求比较严格,在按照数据处理需求指定Key/Value时需要巧妙构思。

MapReduce的工作流程如图1-4所示。


 

MapReduce的工作步骤如下:

1)分割文件。将文件分成若干个独立的分片(split),作为map的输入。

2)map阶段。在map中用InputFormat类解析输入的任务分片,并生成Key/Value对,经过了map中的数据操作之后,由用户按照程序逻辑的需求来指定输出数据的Key和Value值。

3)combine阶段。由map阶段输出的Key/Value对暂时贮存在map任务所在节点的内存中,并不会立即写到输出,而是在本地将Key相同的Value值收集到一个list中,减少集群之间的I/O操作。

4)reduce阶段。reduce任务的输入来源是分布在多个节点上的map任务产生的输出,它将同一个Key值下的所有Value收集到同一个reduce,进行reduce阶段的数据处理,处理完成后由用户指定输出到文件的Key和Value值。

5)写入输出文件。每个执行的reduce任务的输出都会包含一个输出文件,格式由setOutputFormat方法指定。

由于Hadoop的突出优势,它已经广泛应用于多个行业,尤其是互联网领域:

Yahoo!通过集群运行Hadoop,以支持广告系统和Web搜索的研究。

Facebook借助集群运行Hadoop,以支持其数据分析和机器学习。

百度则使用Hadoop进行搜索日志的分析和网页数据的挖掘工作。

淘宝的Hadoop系统用于存储并处理电子商务交易的相关数据。

中国移动研究院基于Hadoop的“大云”(BigCloud)系统用于对数据进行分析和并对外提供服务。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站