十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容主要讲解“MapReduce编程步骤是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MapReduce编程步骤是怎样的”吧!
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的海安网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
Hadoop三大模块:分布式存储HDFS、分布式计算MapReduce、资源调度引擎Yarn
我们在前面几节课已经介绍了hadoop软件在是怎样存储数据的(HDFS),从今天开始的后面几节课,我们来
学习一下:MapReduce分布式计算框架,这是一个比较难理解同时又非常重要的内容,虽然大部分情况下
我们都是使用Hive、spark之类的工具而不是直接写MapReduce程序来处理业务,但是,这些工具还是基于
MapReduce的思想来实现的,所以,现在能很好的理解和掌握MapReduce编程,这对以后的学习十分有益。
MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。
MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。
MapReduce思想在生活中处处可见。或多或少都曾接触过这种思想。MapReduce的思想核心是“分而治处”,适用于大规模数据处理场景。
Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。(拆分的前提:这些小任务可以并行计算,彼此间几乎没有依赖关系。)
Reduce负责“合”,即对map阶段的结果进行全局汇总。
这两个阶段合起来正是MapReduce思想的体现。
还有一个比较形象的例子解释MapReduce:
例子一:我们要数图书馆中的所有书。A同学数1号书架,B同学数2号书架。这就是“Map”。同学越多,数书就越快。
然后把同学的统计数加在一起。这就是"Reduce"。
MapReduce由两个阶段组成:
Map阶段(切分成一个个小的任务)
Reduce阶段(汇总小任务的结果)
这个是不太容易理解的地方,一时想不明白不着急,先死记下来,慢慢来。
mapreduce编程大致分为三个阶段,一共8个步骤,下面简单说明一下这8个步骤,
我们将在下一节课中,以一个实例来详细介绍这8步骤。
第一步:设置inputFormat类,将数据切分成key,value对,输入到第二步
第二步:自定义map逻辑,处理我们第一步的输入kv对数据,然后转换成新的key,value对进行输出
第三步:对上一步输出的key,value对进行分区。(相同key的kv对属于同一分区)
第四步:对每个分区的数据按照key进行排序
第五步:对分区中的数据进行规约(combine操作),降低数据的网络拷贝(可选步骤)
第六步:对排序后的kv对数据进行分组;分组的过程中,key相同的kv对为一组;将同一组的kv对的所有value放到一个集合当中(每组数据调用一次reduce方法)
第七步:对多个map的任务进行合并,排序,写reduce函数自己的逻辑,对输入的key,value对进行处理,转换成新的key,value对进行输出
第八步:设置将输出的key,value对数据保存到文件中
看到这里是不是一头雾水,没关系,这节课只要理解一点,为什么要有MapReduce这种计算框架,其实,就是充分利用集群资源,把一个很大数据量的任务
先折分成几个小任务,然后把几个小任务的计算结果合并成最终
的结果,这样,同一时间就充分利用了集群的计算资源来计算,而不用一个一个的排队等待。
到此,相信大家对“MapReduce编程步骤是怎样的”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!