MapReduce-流量统计求和-分区代码实现
生活随笔
收集整理的這篇文章主要介紹了
MapReduce-流量统计求和-分区代码实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求三: 手機號碼分區
在需求一的基礎上,繼續完善,將不同的手機號分到不同的數據文件的當中去,需要自定義分區來實現,這里我們自定義來模擬分區,將以下數字開頭的手機號進行分開
135 開頭數據到一個分區文件 136 開頭數據到一個分區文件 137 開頭數據到一個分區文件 其他分區自定義分區
package cn.learn.mapreduce_flowcount_partition;import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Partitioner;public class FlowPartition extends Partitioner<Text,FlowBean> {@Overridepublic int getPartition(Text text, FlowBean flowBean, int i) {//判斷手機號以哪個數字開頭然后返回不同的分區編號if(text.toString().startsWith("135")){return 0;}else if(text.toString().startsWith("136")){return 1;}else if(text.toString().startsWith("137")){return 2;}else{return 3;}} }作業運行添加分區設置
job.setPartitionerClass(FlowPartition.class);修改輸入輸出路徑, 并放入集群運行
TextInputFormat.addInputPath(job,new Path("hdfs://node01:8020/partition_flow/")); TextOutputFormat.setOutputPath(job,new Path("hdfs://node01:8020/partition_out"));?
總結
以上是生活随笔為你收集整理的MapReduce-流量统计求和-分区代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MapReduce-流量统计求和-排序-
- 下一篇: MapReduce运行机制-Map阶段