• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > 高阶MapReduce_3_reducer侧联结原理,mapreduce原理

高阶MapReduce_3_reducer侧联结原理,mapreduce原理

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含mapreduce,mapreduce是什么,mapreduce原理,mapreduce编程实例,mapreduce执行流程等服务器相关知识,网友希望可以进行参考

高阶MapReduce_3_reducer侧联结原理,mapreduce原理


侧联结原理:

Map端工作:为来自不同表,也就是多个数据集的key/value对贴上一个标签,来区别不同数据源的记录。然后用链接字段作为kye,其余部分和新加的标志作为value,最后输出一个记录包。也就是说。,map端的工作就是做来源判断,并对符合key的值进行区分。

Map端完成之后就是就将数据分组了。

Reduce端工作:在reduce端以链接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在map阶段已经贴上标签的),也就是不同的数据集分开,最后进行迪卡尔积。


程序运行流程:

在自己写的JoinMapper、TaggedWritable和JoinReduer的代码中,MapReduce的reducer侧联结运行顺序:

首先,在DataJoinMapperBase的configure(JobConfjob)中会调用TaggedWritable的generateInputTag(StringinputFile)方法来读取数据文件,在我写的小案例中有两个数据集,而在程序执行中,是每次都会遍历一边所有的数据集,看是否读取完所有的数据集;

然后,就调用DataJoinMapperBase类中的map()方法,所以我们在实现侧联结的时候是不需要实现map()的,而只是需要实现DataJoinMapperBase的map()方法中会调用到的generateTaggedMapOutput(Objectvalue)方法和generateGroupKey(TaggedMapOutputrecord)方法,而在generateTaggedMapOutput(Objectvalue)方法中实现的功能就是返回一个带任何我们想要的Text标签的TaggedWritable类,TaggedWritable也是我们需要实现的类,总的来说这个方法的功能就是给数据文件贴上标签;enerateGroupKey(TaggedMapOutputrecord)方法的功能就是对贴上标签的数据文件进行处理。完成这一步之后,map端对数据的分区操作就已经完成了。

接下来,就会调用TaggedWritable类中的readFields(DataInputin)方法,这个方法完成的功能就是读取map分区好的数据,再进行分组操作。

最后,会调用JoinReducer类的combine(Object[]ages, Object[]values)方法,也是重写了DataJoinReducerBase的combine()的方法,这个方法就是将TaggedWritable类中的分好组的数据进行迪卡尔积,最终将map端做好处理的tag作为key,combine中进行迪卡尔积处理的最终数据作为value输出。


至此,侧联结的运行流程就结束了。在下一篇中,将介绍侧联结的小案例。

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 高阶MapReduce_3_reducer侧联结原理,mapreduce原理
  • MapReduce 按照Value值进行排序输出,mapreducevalue
  • 在Ubuntu下安装Mongdb,以及Mongdb基本操作命令,ubuntumongdb
  • Llama-impala on yarn的中间协调服务,llama-impalayarn
  • Hive之简单查询不启用MapReduce,hive启用mapreduce
  • MapReduce编程之实现多表关联,mapreduce编程关联
  • 分析MapReduce与Storm的异同,mapreducestorm
  • MapReduce程序之实现单表关联,mapreduce单表关联
  • MapReduce编程之数据去重,mapreduce编程数据
  • MapReduce排序及实例,MapReduce排序实例

相关文章

  • 【Spark1.3官方翻译】Spark快速入门,spark1.3spark
  • hive:Access denied for user 'root'@'%',hivedenied
  • NOSQL(五)版本戳,nosql版本戳
  • 关于云服务器的瞎想,云服务器瞎想
  • [Hive]Hive数据倾斜(大表join大表),hivejoin
  • Hadoop对小文件的解决方案,
  • K天熟悉Apache Storm (三),apachestorm
  • Hive学习笔记(三),hive学习笔记
  • hadoop学习笔记(四)——eclipse+maven+hadoop2.5.2源码,hadoophadoop2.5.2
  • 高阶MapReduce_3_reducer侧联结原理,mapreduce原理

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 【甘道夫】Spark1.3.0 Submitting Applications 官方文档精华摘要,spark1.3
    • 分布式数据库MVCC读写设计,数据库mvcc读写
    • Hadoop源代码分析(三七),hadoop源代码
    • hadoop的namenode无法启动的解决办法,hadoopnamenode
    • Hadoop 1.x的Shuffle源码分析之2,hadoopshuffle
    • MapReduce编程之数据去重,mapreduce编程数据
    • Hadoop之—— Linux搭建hadoop环境(简化篇),linuxhadoop
    • hadoop-2.6.0 Unhealthy Nodes 问题,hadoop2.6.0安装
    • MapReduce之RecordReader组件源码解析及实例,mapreduce实例
    • [Sqoop]利用sqoop对mysql执行DML操作,sqoopdml

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有