Hadoop权威指南学习(六)(2)

map端连接:连接在数据集到达map函数前就要执行,各map的输入数据须划分成等量分区并按连接键排序,同一键的所有记录均会放到同一分区中。利用CompositeInputFormat类来运行一个map端连接,其输入源和连接类型(内or外)可通过连接表达式配置。

reduce端连接:mapper为各个记录标记源(使用MultipleInputs),使用连接键作为map输出键,使键相同的记录放在同一个reducer中(记录间并未排序,可使用辅助排序对记录按不同源排序,使得当一个数据源数据到达时,另一个数据源数据已经在reducer中了)

4. 边数据分布

side data是作业所需额外只读数据,如何是所有map或reduce都能方便而高效使用边数据?

如果仅需要想任务传递少量元数据,秩序覆盖Mapper或Reducer类的configure()方法,并调用传入JonConf对象的getter方法即可。对于更复杂的对象需要自己处理序列化工作。

Hadoop的分布式缓存能够在任务运行过程中及时将文件和存档复制到任务结点以供使用,每个作业,个文件只需复制到一个结点一次。对于使用GenericOptionsParser的工具来说,用户可以使用-file选项指定待分发的文件,文件内包含以逗号隔开的URL列表。文件可以存放在本地文件系统、HDFS或其他Hadoop刻度文件系统之中。

%hadoop jar job.jar className -files cacheFile input output  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppfwg.html