大数据学习--小实验

大数据学习

– 小实验

环境:
idea:ultimate 2018.1
系统:windows10 家庭版

1.Count计数器

2.自定义计数器

(1)枚举类型

在mapper中定义CustomCount枚举类型

enum CustomCount{
            MAP_RUN_COUNT;
        }

然后在map方法中写
context.getCounter(CustomCount.MAP_RUN_COUNT).increment(1l);
后面的increment是增加count值的,参数是1l,参数类型是long
计数结果

(2)键值对类型

在reducer中定义
context.getCounter("REDUCE_RUN_COUNTS","running_counts").increment(1l);
使用键值对形式定义计数器

3.局部合并

combiner和reducer的区别在于运行的位置:

  1. Combiner是在每一个maptask所在的节点运行
  2. Reducer是接受全局所有Mapper的输出结果
  3. Combiner的意义就是对每一个maptask的输出进行局部汇总,以减少网络传输量

具体步骤:

自定义一个Combiner类继承Reducer类,重写reduce方法
在job中设置:job.setCombinerClass(CustomCombiner.class);


这是没有设置Combiner

这是设置了Combiner
可以明显的看到reduce的输入次数和shuffle过程的字节数有所减少
注意:求平均值得业务不适用局部聚合,这样会使结果不准确

4.对象封装


 上一篇
小科普 小科普
为什么判断闰年不能单单看这一年是否为4的倍数答:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当
2019-04-18
下一篇 
大数据学习--zookeeper 大数据学习--zookeeper
大数据学习–zookeeper 环境:zookeeper:3.4.8系统:centos 6.7 1.zookeeper简介a.简介zookeeper是一个分布式协调服务,是给用户的分布式应用程序提供协调服务的,他的服务目标是分布式程序
2019-04-18
  目录