《Hadoop MapReduce性能优化》一1.3 Hadoop MapReduce的工作原理
本节书摘来异步社区《Hadoop MapReduce性能优化》一书中的第1章,第1.3节,作者: 【法】Khaled Tannir 译者: 范欢动 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 Hadoop MapReduce的工作原理Hadoop MapReduce性能优化
经过一个或者多个步骤,MapReduce编程模型可以用来处理许多大规模数据问题,还可以更高效地实现MapReduce编程模型来支持使用大量机器处理大量数据的问题。在大数据的背景下,可以处理的数据规模可以大到无法在单机存储。
在典型的Hadoop MapReduce框架下,数据拆分为数据块并分发到集群内的多个节点上。MapReduce框架通过把计算逻辑转移到数据所在的机器,而不是把数据转移到其能够得以处理的机器上,从而充分利用数据的本地性优势。MapReduce应用的大多数输入数据块存放在本地节点,因而能够迅速加载,而且可以并行读取在多个节点上的多个数据块。因此,MapReduce能够达到很高的综合I/O带宽和数据处理速率。
要启动一项MapReduce作业,Hadoop会创建一个MapReduce应用的实例并把作业提交给JobTracker。然后,作业被拆分为map任务(也叫作mapper)和reduce任务(也叫作reducer)。
Hadoop启动MapReduce作业时,输入数据集拆分为大小相等的数据块,并采用心跳协议(heartbeat protocol)分配任务。每个数据块被调度到一个TaskTracker节点上并由一个map任务处理。
每项任务都在一个工作节点的可用插槽上执行,每个节点会配置固定数量的map插槽和固定数量的reduce插槽。如果所有可用插槽都被占用,挂起的任务就需要等待一些插槽被释放。
TaskTracker周期性地向JobTracker发送其状态。当TaskTracker节点空闲时,JobTracker节点会给它分配新任务。JobTracker节点在散发数据块时会考虑数据本地性,总是试图把本地数据块分配给TaskTracker节点。如果尝试失败,JobTracker节点会分配一个本地机架或者随机数据块给TaskTracker节点。
当所有的map函数都执行结束时,运行时系统会将中间键值对分组,并发起一组reduce任务来生成最终结果。接下来执行过程从shuffle阶段转向reduce阶段。在这个最终的reduce阶段,reduce函数被调用来处理中间数据并写最终输出。
用户经常使用不同的术语来表述Hadoop的map和reduce任务、子任务、阶段、子阶段。map任务包含了两个子任务(map和merge),而reduce任务仅包含一个任务。然而,shuffle和sort首先发生,并由系统完成。每个子任务又拆分为多个子阶段,如read-map、spill、merge、copy-map和reduce-write。
HADOOP MapReduce 处理 Spark 抽取的 Hive 数据【解决方案一】 今天咱先说问题,经过几天测试题的练习,我们有从某题库中找到了新题型,并且成功把我们干趴下,昨天今天就干了一件事,站起来。 java mapeduce 清洗 hive 中的数据 ,清晰之后将driver代码 进行截图提交。
《Hadoop MapReduce性能优化》一导读 MapReduce是一个重要的并行处理模型,用于大规模、数据密集型应用,比如数据挖掘和Web索引。Hadoop作为MapReduce的一个开源实现,广泛用于支持对响应时间要求很严苛的集群计算作业。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群—整合Zookeeper和Hbase
- 报错:hadoop NodeManager from localhost doesn't satisfy minimum allocations, Sending SHUTDOWN signal to the NodeManager.
- Hadoop切换namenode为active
- 如何选择满足需求的SQL on Hadoop/Spark系统
- Hadoop - Mac OSX下配置和启动hadoop以及常见错误解决
- 《Hadoop实战手册》一1.5 使用Sqoop从HDFS导出数据到MySQL
- 《Hadoop实战手册》一1.8 从MongoDB导入数据到HDFS
- 《Hadoop MapReduce性能优化》一1.2 Hadoop MapReduce概述
- 《Hadoop MapReduce性能优化》一2.3 性能监测工具
- 《Hadoop MapReduce性能优化》一2.5 小结
- 《Hadoop MapReduce性能优化》一导读
- Hive启动报错 java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang
- Hadoop学习---Ubuntu中hadoop完全分布式安装教程
- Hadoop Serialization -- hadoop序列化具体解释 (2)【Text,BytesWritable,NullWritable】
- Hadoop 集群管理上的新“绝招”
- hadoop mapred-queue-acls 配置(转)
- 【hadoop】wordcount实例编写
- hadoop和spark搭建记录