序列化案例
需求:统计每一个手机号耗费的总上行流量、总下行流量、总流量
1.分析出输入数据格式和输出数据格式(确定map和reduce阶段的key和value)
2.编写FlowBean、FlowMapper、FlowReducer、FlowDriver类:(注意导包)
FlowBean类:实现 Writable 接口;添加空参构造;
重写序列化和反序列化方法,定义参数,添加 get() set() 方法(传入顺序一致);重写 toString()方法
FlowMapper类:继承Mapper类之后写好对应的泛型,重写map()方法;先获取一行,进行切割后抓取想要的数据;封装后写出
FlowReducer类:继承Reducer类之后写好对应的泛型,重写reducer()方法;遍历集合累加值,封装outK outV后写出
FlowDriver类:获取job;设置jar包的路径(Driver类);关联mapper和reducer(自己所写的类);
设置map输出的KV类型;设置最终输出的KV类型;设置输入和输出路径 ;提交job
3.将jar包下载后传入hadoop集群
4.在集群中运行(在集群可视化界面确认结果)