资源描述
q 连接q Map端连接q Reduce端连接课程目标课程目标连接连接qMapReduce能够执行大型数据集间的Join操作q除了写MapReduce程序,其他更高级的框架也可以实现,如Pig、Hive或Cascading等q连接操作的具体实现取决于数据集的规模及分区方式q连接操作如果有mapper执行,则称为“map端连接”q如果由reducer端执行,则称为“reduce端连接”q数据的组织方式决定了采用map端还是reduce端连接MapMap端连接端连接qMap端连接会在数据到达map函数之前就执行连接操作q各map的输入数据必须先分区并且以特定方式排序q各个输入数据集被划分成相同数量的分区,并按相同的key排序(连接键)q同一个键的所有记录会放在同一个分区中qMap端的连接操作可以连接多个作业的输出,前提是这些reducer数量相同,键相同、并且输出文件是不可切分的q利用org.apache.hadoop.mapred.join包中的CompositeInputFormat类来运行一个map端连接qorg.apache.hadoop.examples.Join是一个通用的执行map端连接的命令行程序MapMap端连接端连接ReduceReduce端连接端连接qReduce端连接不要求输入数据集符合特定结构,因而reduce端连接比map端连接更为常用q因为两个数据集要经过shuffle过程,所以reduce端连接的效率要低一些q基本思路Mapper为各个记录标记源使用连接键作为map输出键,使键相同的记录放在同一reducer中q帮助实现reduce端连接的技术多输入:指定多种格式的输入,可以使用MultipleInputs类来方便地解析和标注各个源二次排序实现先将一个源的数据传输到reducer,可更好地执行连接操作,避免将所有数据缓存到内存中实例:实例:ReduceReduce端连接端连接q要求:在reduce端实现气象站信息和天气数据的连接q此mappper类用于reduce端连接中标记气象站记录实例:实例:ReduceReduce端连接端连接q此mappper类用于reduce端连接中标记天气记录实例:实例:ReduceReduce端连接端连接q此reducer类用于连接已标记的气象站记录和天气记录实例:实例:ReduceReduce端连接端连接q对天气记录和气象站名称执行连接操作实例:实例:ReduceReduce端连接端连接q输出示例:欢迎访问我们的官方网站
展开阅读全文