摘要:
一、基础 1、Reduce join 会给Reduce带来过多的负载,容易使数据发生倾斜 2、Map join 适用于一张小表和一张大表 二、实现 1、在Mapper的setup阶段,将文件读取到缓存集合中(小文件) 2、在驱动函数中加载缓存 job.addCacheFile(new URI(路径) 阅读全文
摘要:
一、需求分析 1、需求 order.txt id pid amount 1001 01 1 1002 02 2 1003 03 3 1004 01 4 1005 02 5 1006 03 6 pd.txt pid pname 01 小米 02 华为 03 格力 两张表合并成order.txt中的pi 阅读全文
摘要:
一、Map端的主要工作 为来自不同表或文件的key/value对,打标签以区别不同来源的记录。 然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。 二、Reduce端的主要工作 在Reduce端以连接字段作为key的分组已经完成, 我们只需要在每一个分组当中将那些来源于不同 阅读全文
摘要:
一、需求分析 1、内容 http://www.baidu.com http://www.google.com http://cn.bing.com http://www.atguigu.com http://www.sohu.com http://www.sina.com http://www.si 阅读全文
摘要:
一、基础知识 OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口 二、常见的OutputFormat实现类 1、TextOutputFormat 默认的输出格式是TextOutputFormat,它把每条记录写在文本行。 它的键 阅读全文
摘要:
一、MapTask工作机制 二、Reduce Task 阅读全文
摘要:
一、需求分析 1、需求 a、输入文件 0000001 Pdt_01 222.8 0000002 Pdt_05 722.4 0000001 Pdt_02 33.8 0000003 Pdt_06 232.8 0000003 Pdt_02 33.8 0000002 Pdt_03 522.8 0000002 阅读全文
摘要:
一、过程 1、进行排序(自定义Hadoop序列化) 2、进行分组 二、语法 1、自定义分组,继承WritableComparator 2、创建无参构造参数 目的:将比较对象的类传给父类 super(GroupBean.class, true); 注意: a、GroupBean.class是Hadoo 阅读全文
摘要:
一、概述 1、Combiner是MR程序中Mapper和Reducer之外的一种组件 2、Combiner继承Reducer 3、Combiner在每个Map Task的节点上运行, Reducer接收全局的Mapper结果 4、Combiner对每个Map Task的输出进行局部汇总,减少网络传输 阅读全文
摘要:
一、需求分析 1、需求 手机号136、137、138、139开头都分别放到一个独立的4个文件中,其它开头的放到一个文件中 2、分析 a、分区 继承 Partitioner b、排序 实现 WritableComparable 二、具体代码(结合上篇博客) 1、自定义Haoop序列化类、排序 pack 阅读全文