欢迎来到天天文库
浏览记录
ID:12878780
大小:244.62 KB
页数:25页
时间:2018-07-19
《学习hadoop第一步初识hadoop》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1初识Hadoop1.1MapReduce模型介绍11.2Hadoop介绍31.2.1Hadoop的核心MapReduce41.2.2Hadoop的分布式文件系统51.3安装Hadoop51.3.1安装的前提条件51.3.2安装Hadoop111.3.3检查你的环境111.4执行和测试Hadoop样例程序161.4.1执行PI计算器161.4.2查看输出:输入分割,混淆,溢出和排序171.4.3测试Hadoop211.5解决问题221.6总结23单个低端硬件通常不能满足应用程序对资源的需求。许多企业发现安装他们使用的业务软件的计算机并不具有较好的性价比。对于他们来说,一个简单的解决方案就是购买
2、具有更多内存和CPU的高端硬件,这通常需要巨额资金。只要你能买到最高端的硬件,这个解决方案能够达到理想的效果,但是通常来说,预算是最主要的问题。我们有另外一个可选方案,那就是构建一个高性能的集群。一个集群能够模拟成为一个单个计算机,然而,它需要专业的安装和管理服务。现今,存在着许多专有的高性能的并且造价昂贵的集群。幸运的是,一个更经济的解决方案是通过云计算来获得必要的计算资源。这里是一个典型的应用场景,你需要处理一大批数据,这些数据分成若干个项,项与项之间不存在依赖关系,因此,你可以使用单指令多数据(SIMD)算法。Hadoop核心提供了云计算的开源框架和一个分布式文件系统。Hadoop是阿帕
3、奇软件基金下的一个著名的项目。本文介绍了Hadoop核心,讲述了如何安装和运行Hadoop。1.1MapReduce模型介绍Hadoop完全支持MapReduce模型,MapReduce模型是谷歌公司为了在廉价的计算机集群上处理以P数量级计算的大数据集而提出的一个解决方案。这个解决方案把解决问题分成两个不同的步骤:Map:初始化数据的读入和转换,在此期间,框架对互不依赖的输入记录进行并行处理。Reduce:处理数据的组合和抽样,有关联的数据必须通过一个模块进行集中处理。Hadoop中MapReduce的核心概念是把输入的数据分成不同的逻辑块,Map任务首先并行的对每一块进行单独的处理。这些逻辑
4、块的处理结果会被重新组合成不同的排序的集合,这些集合最后由Reduce任务进行处理。一个Map任务可以执行在集群中的任何一个计算机节点上。多个Map任务可以并行的执行在集群中的多个节点上。Map任务负责转换输入记录成为名值对。所有Map任务的输出会被重新组合成多个排序的集合,这里面的每一个排序的集合会被派发给一个单独的Reduce任务。Reduce任务会对集合中排序的关键字和关联在关键字的多个数据值进行处理。Reduce任务也是并行的运行在集群中的不同节点上的。应用程序开发人员仅仅需要提供4项输入信息给Hadoop框架:读取和转换输入记录到键值对的作业类,一个Map方法,一个Reduce方法和
5、一个转换键值对到输出记录的Reduce任务类。我的第一个MapReduce应用程序是一个专业的网络爬虫。这个爬虫接受大量的网页地址,然后读取和处理网页地址的内容。因为这个应用要处理大量的网页地址,所以获取他们的内容是极其浪费时间和资源的。整个处理流程包含一下几个步骤,1.输入网页地址和获得网页地址关联的元数据。2.规格化网页地址。3.排除重复的网页地址。4.通过预定义的排除和包含过滤器过滤网页地址。5.通过预定义的非取内容列表过滤网页地址。6.通过预定义最近已看列表过滤网页地址。7.获取网页地址内容。8.标志网页地址内容。9.更新最近已看列表。10.为下一个应用程序准备工作列表。在这个项目中,
6、我有20个机器可以使用。这个应用程序原来的实现是非常复杂的,它使用了一个开源分布式队列框架,它的效率非常低。因为,我花费了大量的时间在开发应用程序和对应用程序进行调优。因此,这个项目濒临失败。随后,其他团队的一个成员建议我使用Hadoop。我花费了一整天的时间建立了一个具有20台机器的Hadoop集群,接下来,试验性的执行了它的样例程序以后,我的团队花了几个小时的时间想出了一个解决方案,在这个解决方案中包含了九个Map方法和三个Reduce方法。目标是每一个Map和Reduce方法不能超过100行的代码量。那一周结束后,我们实现的基于Hadoop的应用程序就已经比原来的实现更快和更稳定。使用H
7、adoop能够很容易的把分布式应用程序并行的运行在集群上,集群上的一个节点的失败不会影响其他节点的操作,一个作业在一个节点上的失败,Hadoop会分配其他的节点进行重试,因为这些优点,Hadoop已经成为我最喜欢的开发工具之一。谷歌和雅虎都是用MapReduce集群来处理以P数量级计算的大数据集。在2008年初,谷歌宣布它每天通过MapReduce处理20P的数据,请参考http://google
此文档下载收益归作者所有