这篇文章主要介绍“Hadoop MapReduce有什么作用”,在日常操作中,相信很多人在Hadoop MapReduce有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hadoop MapReduce有什么作用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。
1.软件框架,2.并行处理,3.可靠且容错,4.大规模集群,5.海量数据集。
因此,对于MapReduce可以简单地认为,他是一个软件框架,海量数据是它的“菜”,它在大规模集群上以一种可靠且容错的方式并行地“烹饪这道菜”。
MapReduce能做什么?简单讲可以做大数据处理,即如何烹饪这道菜,比如数据加工、挖掘和数据分析等。
MapReuce的思想就是“分而治之”。Mapper负责“分”, 即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。Reducer负责对map阶段的结果进行汇总。至于需要多少个Reducer,用户可以根据具体问题,通过在mapred-site.xml配置文件里设置参数mapred.reduce.tasks的值,缺省值为1。
MapReduce的思想就是“分而治之”。Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任务要大大缩小;二是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小任务可以并行计算,彼此间几乎没有依赖关系。Reducer负责对map阶段的结果进行汇总。至于需要多少个Reducer,用户可以根据具体问题,通过在mapred-site.xml配置文件里设置参数mapred.reduce.tasks的值,缺省值为1。
爱上
Mapreduce大规模数据集的操作,分发给一个主节点管理下的各分节点共同完成,然后通过整合各分节点的中间结果,得到最终的结果。简单地说,MapReduce就是“任务的分解与结果的汇总”。上述处理过程被MapReduce高度的抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来。至于在并行编程中的其他种种复杂问题,如分布式存储,工作调度,负载均衡,容错处理,网络通信等,均由MapReduce框架负责处理。
用MapReduce来处理的数据集(或任务)必须具备这样的特点:
待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行的进行处理。
① 将任务的输入数据分割成固定大小的片段split。
② 将每个split进一步分解成一批键值对<k1,v1>。
③ hadoop为每一个split创建一个Map任务,并将对应的split中的<k1,v1>对作为输入 。
④ 得到计算的中间结果<k2,v2>,接着讲中间结果按照k2进行排序,并将key值相同的value放在一起形成一个新列表,形成<k2,list(v2)>元组。最后在根据key值的范围将这些元组进行分组,对应不同的Reduce任务。
⑤ reduce把熊不同mapper接收来的数据整合在一起并进行排序,然后用reduce函数对输入的元组进行处理,得到键值对<k3,v3>.
⑥ 将最后得到的结果<k3,v3 >对输出到HDFS上,
更多内容详解-MapReduce框架:http://www.cnblogs.com/sharpxiajun/p/3151395.html。
到此,关于“Hadoop MapReduce有什么作用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。