- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学习hadoop第一步初识hadoop
1 初识Hadoop1.1 MapReduce模型介绍11.2 Hadoop介绍31.2.1 Hadoop的核心MapReduce41.2.2 Hadoop的分布式文件系统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单个低端硬件通常不能满足应用程序对资源的需求。许多企业发现安装他们使用的业务软件的计算机并不具有较好的性价比。对于他们来说,一个简单的解决方案就是购买具有更多内存和CPU的高端硬件,这通常需要巨额资金。只要你能买到最高端的硬件,这个解决方案能够达到理想的效果,但是通常来说,预算是最主要的问题。我们有另外一个可选方案,那就是构建一个高性能的集群。一个集群能够模拟成为一个单个计算机,然而,它需要专业的安装和管理服务。现今,存在着许多专有的高性能的并且造价昂贵的集群。幸运的是,一个更经济的解决方案是通过云计算来获得必要的计算资源。这里是一个典型的应用场景,你需要处理一大批数据,这些数据分成若干个项,项与项之间不存在依赖关系,因此,你可以使用单指令多数据(SIMD)算法。Hadoop核心提供了云计算的开源框架和一个分布式文件系统。Hadoop是阿帕奇软件基金下的一个著名的项目。本文介绍了Hadoop核心,讲述了如何安装和运行Hadoop。1.1 MapReduce模型介绍Hadoop完全支持MapReduce模型,MapReduce模型是谷歌公司为了在廉价的计算机集群上处理以P数量级计算的大数据集而提出的一个解决方案。这个解决方案把解决问题分成两个不同的步骤: Map: 初始化数据的读入和转换,在此期间,框架对互不依赖的输入记录进行并行处理。Reduce: 处理数据的组合和抽样,有关联的数据必须通过一个模块进行集中处理。Hadoop中MapReduce的核心概念是把输入的数据分成不同的逻辑块,Map任务首先并行的对每一块进行单独的处理。这些逻辑块的处理结果会被重新组合成不同的排序的集合,这些集合最后由Reduce任务进行处理。一个Map任务可以执行在集群中的任何一个计算机节点上。多个Map任务可以并行的执行在集群中的多个节点上。Map任务负责转换输入记录成为名值对。所有Map任务的输出会被重新组合成多个排序的集合,这里面的每一个排序的集合会被派发给一个单独的Reduce任务。Reduce任务会对集合中排序的关键字和关联在关键字的多个数据值进行处理。Reduce任务也是并行的运行在集群中的不同节点上的。应用程序开发人员仅仅需要提供4项输入信息给Hadoop框架:读取和转换输入记录到键值对的作业类,一个Map方法,一个Reduce方法和一个转换键值对到输出记录的Reduce任务类。我的第一个MapReduce应用程序是一个专业的网络爬虫。这个爬虫接受大量的网页地址,然后读取和处理网页地址的内容。因为这个应用要处理大量的网页地址,所以获取他们的内容是极其浪费时间和资源的。整个处理流程包含一下几个步骤,1. 输入网页地址和获得网页地址关联的元数据。2. 规格化网页地址。3. 排除重复的网页地址。4. 通过预定义的排除和包含过滤器过滤网页地址。5. 通过预定义的非取内容列表过滤网页地址。6. 通过预定义最近已看列表过滤网页地址。7. 获取网页地址内容。8. 标志网页地址内容。9. 更新最近已看列表。10. 为下一个应用程序准备工作列表。在这个项目中,我有20个机器可以使用。这个应用程序原来的实现是非常复杂的,它使用了一个开源分布式队列框架,它的效率非常低。因为,我花费了大量的时间在开发应用程序和对应用程序进行调优。因此,这个项目濒临失败。随后,其他团队的一个成员建议我使用Hadoop。我花费了一整天的时间建立了一个具有20台机器的Hadoop集群,接下来,试验性的执行了它的样例程序以后,我的团队花了几个小时的时间想出了一个解决方案,在这个解决方案中包含了九个Map方法和三个Reduce方法。目标是每一个Map和Reduce方法不能超过100行的代码量。那一周结束后,我们实现的基于Hadoop的应用程序就已经比原来的实现更快和更稳定。使用Hadoop能够很容易的把分布式应用程序并行的运行在集群上,集群上的一个节点的失败不会影响其他节点的操作,一个作业在一个节点上的失败,Hadoop会分配其他的节点进行重试,因为这些优点,Hadoop已经成为我最喜欢的开发工具之一。谷歌和雅虎都是用MapReduce集群来处理以P数量级计算的大数据集。在2008年初,谷歌宣布它
文档评论(0)