拥有一个文件,其中文件内容(内容随便写符合规矩即可)分别为电话号码 上行流量 下行流量(第一行是写给大家看的 注释不用写出来)
提前创好一个文件夹分为四个类
FlowBean中的代码内容为:
package org.example.flow;import org.apache.hadoop.io.Writable;import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;//hadoop 序列化
//三个属性:手机号,上行流量,下行流量
public class FlowBean implements Writable {private String phone;private Long upFlow;private Long downFlow;public FlowBean(String phone, Long upFlow, Long downFlow) {this.phone = phone;this.upFlow = upFlow;this.downFlow = downFlow;}//定义get/set方法public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public Long getUpFlow() {return upFlow;}public void setUpFlow(Long upFlow) {this.upFlow = upFlow;}public Long getDownFlow() {return downFlow;}public void setDownFlow(Long downFlow) {this.downFlow = downFlow;}//定义无参结构public FlowBean() {}//定义一个获取总流量的方法public Long getTotalFlow(){return upFlow+downFlow;}@Overridepublic void write(DataOutput dataOutput) throws IOException {dataOutput.writeUTF(phone);dataOutput.writeLong(upFlow);dataOutput.writeLong(downFlow);}@Overridepublic void readFields(DataInput dataInput) throws IOException {phone = dataInput.readUTF();upFlow = dataInput.readLong();downFlow = dataInput.readLong();}
}
FlowDriver中的代码内容为:
注:此为运行代码
FlowMapper中的代码内容为:
FlowReducer中的代码内容为: