随笔分类 - Hadoop
摘要:一、需求 去掉日志,小于11个 二、代码 1、Mapper package com.wt.etl; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apach
阅读全文
摘要:1、采样枚举的方式统计 enum MyCounter{MALFORORMED, NORMAL} // 对枚举定义的自定义计数器加1 context.getCounter(MyCounter.MALFORORMED).increment(1) 2、采样计数组、计数器名称的方式统计 context.ge
阅读全文
摘要:一、需求分析 1、需求 与Reduce join的需求一致 2、分析 a、在mapper的setup加载缓存,设置 kv 键值对 b、在map()方法中根据pid 获取 panme 根据上面的k v c、写driver,设置reducenum为 0 ,使用缓存文件 二、代码 1、Driver pac
阅读全文
摘要:一、基础 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,它把每条记录写在文本行。 它的键
阅读全文
摘要:一、需求分析 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
阅读全文
摘要:一、需求分析 1、需求 按照流量降序排序 2、分析 a、原文件的总流量是value,排序是按照key进行排序的,因此需要把 value -> key b、自定义Hadoop序列化类,(需要有排序功能) 实现 WritableComparable 二、代码 1、自定义Hadoop序列化,实现Writa
阅读全文
摘要:一、概述 1、MapTask和ReduceTask均会对数据按照key进行排序,这是Hadoop的默认行为。任何应用程序中的数据均会被排序,而不管逻辑上是否需要,默认排序是按照字典顺序排序,方法为:快速排序 2、MapTask,在什么时候排序? a、环形内存缓冲区,快速排序,溢出到磁盘 b、所有数据
阅读全文
摘要:默认分区:HashPartition 影响因素:key.hashcode()、NumReducerTask 一、基础 1、目的 Reducer处理的结果按不同的条件,存储在不同的文件中 2、语法 a、自定义分区,继承Partitioner b、分区在mapper后reducer前,因此数据类型和ma
阅读全文
摘要:一、概念 Map方法处理之后,Reduce方法处理之前,数据处理过程过程被称为shuffle,又称洗牌 待续
阅读全文
摘要:无论是HDFS还是MapReduce在处理小文件时,都要消耗大量内存,效率低 一、回顾 1、HDFS har,对外对应一个NameNode,对内对应多个文件 2、MapReduce CombineTextInputFormat,分为虚拟存储过程和切片过程 虚拟存储过程和切片过程都要和最大值做比较 改
阅读全文
摘要:一、需求分析 1、文件 hadoop is ok hadoop not ok java is fun php is ok php is pretty python is all go is new 2、需求 对上述文件中每个单词出现的数量进行统计,2行数据一个切片 3、分析 与传统的WordCoun
阅读全文
摘要:一、需求分析 1、文件 hadoop is ok hadoop not ok java is fun php is ok php is pretty python is all 2、需求 统计输入文件中每一行的第一个单词相同的行数 3、分析 每一行第一个单词的数量,只能用KeyValueTextIn
阅读全文