整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

8.3.1. map端连接

hadoop 小红牛 20℃ 0评论

在两个大规模输入数据集之间的map端连接会在数据到达map函数之前就执行连接操作。为达到该目的,各map的输入数据必须先分区并且以特定方式排序。各个输入数据集被划分成相同数量的分区,并且均按相同的键
(连接键)排序。同一键的所有记录均会放在同一分区之中。听起来似乎要求非常严格(的确如此),但这的确合乎MapReduce作业的输出。

map端连接操作可以连接多个作业的输出,只要这些作业的reducer数量相同、键相同并且输出文件是不可切分的(例如,小于一个HDFS块,或gzip

压缩)。在天气例子中,如果气象站文件以气象站ID部分排序,记录文件也以气象站ID部分排序,而且reducer的数量相同,则就满足了执行map端连接的前提条件。

利用 org.apache.hadoop.mapreduce.join包中的CompositelnputFormat类来运行一个map端连接。CompositeInputFormat类的输入源和连接类型(内连接或外连接)可以通过一个连接表达式进行配置,连接表达式的语法简单。详情与示例可参见包文档。

org.apache.hadoop.examples.Join是一个通用的执行map端连接的命令行程序样例。该例运行一个基于多个输入数据集的mapper和reducer的 MapReduce作业,以执行给定的连接操作。

转载请注明:全栈大数据 » 8.3.1. map端连接

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址