当前位置: 首页 > news >正文

深圳易捷网站建设招投标网站建设开发

深圳易捷网站建设,招投标网站建设开发,微信小程序开发价格,北京装修公司网站建设实现bean对象序列化步骤 自定义bean对象实现序列化接口。 1)必须实现Writable接口 2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造 public FlowBean(){super(); } 3)重写序列化方法 Override public …

实现bean对象序列化步骤

        自定义bean对象实现序列化接口。

1)必须实现Writable接口

2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造

public FlowBean(){super();
}

3)重写序列化方法

@Override
public void write(DataOutput out) throws IOException{out.writeLong(upFlow);out.writeLong(downFlow);out.wirteLong(sumFlow);
}

4)重写反序列化方法

@override
public void readFields(DataInput in) throws IOException{upFlow = in.readLong();downFlow = in.readLong();sumFlow = in.readLong();
}

5)注意反序列化顺序和序列化顺序要完全一致

6)要想把结果显示在文件中,需要重写toString()方法,可用\t分开,方便后续使用

7)如果需要将自定义的bean放在key中传输,则还需要实现Comparable接口,因为MapReduce框中的shuffle过程要求对key必须能排序

@Override
public int compareTo(FlowBean o){return this.sumFlow > o.getSumFlow() ? -1 : 1;
}

代码案例(统计流量)

FlowBean
public class FlowBean implements Writable {private long upFlow;private long downFlow;private long sumFlow;public FlowBean() {}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 long getSumFlow() {return sumFlow;}public void setSumFlow(long sumFlow) {this.sumFlow = sumFlow;}public void setSumFlow() {this.sumFlow = this.upFlow + this.downFlow;}@Overridepublic void write(DataOutput dataOutput) throws IOException {dataOutput.writeLong(upFlow);dataOutput.writeLong(downFlow);dataOutput.writeLong(sumFlow);}@Overridepublic void readFields(DataInput dataInput) throws IOException {this.upFlow = dataInput.readLong();this.downFlow = dataInput.readLong();this.sumFlow = dataInput.readLong();}@Overridepublic String toString() {return upFlow + "\t" + downFlow + "\t" + sumFlow ;}
}
FlowMapper
public class FlowMapper extends Mapper<LongWritable, Text,Text,FlowBean> {private Text outK = new Text();private FlowBean outV = new FlowBean();@Overrideprotected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, FlowBean>.Context context) throws IOException, InterruptedException {String line = value.toString();String[] split = line.split(" ");String phone = split[1];String upFlow = split[2];String downFlow = split[3];outK.set(phone);outV.setUpFlow(Long.parseLong(upFlow));outV.setDownFlow(Long.parseLong(downFlow));// outV.setSumFlow(Long.parseLong(upFlow) + Long.parseLong(downFlow));outV.setSumFlow();context.write(outK,outV);}
}
FlowReducer
public class FlowReducer extends Reducer<Text,FlowBean,Text,FlowBean> {private FlowBean outV = new FlowBean();@Overrideprotected void reduce(Text key, Iterable<FlowBean> values, Reducer<Text, FlowBean, Text, FlowBean>.Context context) throws IOException, InterruptedException {long totalUpFlow = 0;long totalDownFlow = 0;for (FlowBean value : values) {totalUpFlow += value.getUpFlow();totalDownFlow += value.getDownFlow();}outV.setUpFlow(totalUpFlow);outV.setDownFlow(totalDownFlow);outV.setSumFlow();context.write(key,outV);}
}
FlowDriver
public class FlowDriver{public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {Configuration conf = new Configuration();Job job = Job.getInstance(conf);job.setJarByClass(FlowDriver.class);job.setMapperClass(FlowMapper.class);job.setReducerClass(FlowReducer.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(FlowBean.class);FileInputFormat.setInputPaths(job,new Path("Data/input/TestFlowBean"));FileOutputFormat.setOutputPath(job,new Path("Data/output/TestFlow3"));Boolean result = job.waitForCompletion(true);System.exit(result ? 0:1);}
}

http://www.yayakq.cn/news/295113/

相关文章:

  • 如何建立收费网站杭州建设工程招标平台官网
  • 企业高端网站建设彩库宝典官方app版下载
  • 怎么做免费网站推购物网站怎么做优化
  • 东莞高端做网站公司wordpress的配置dns
  • 打金新开传奇网站徐州网站优化价格
  • 做套现网站湖南省郴州市北湖区邮政编码
  • 保定移动网站建设模块建筑
  • 南部网站建设巴音郭楞库尔勒网站建设
  • 重庆网站优化排名南昌网站建设公司价位
  • 网站开发建常熟做网站的公司
  • 站外推广渠道有哪些阿里巴巴全球速卖通
  • 企业网站建设推广方案怎么写wordpress网站弹窗插件
  • 浦东新区网站优化公司建立自己的个人网站
  • 如何做好专业类网站装修设计公司排行
  • app与网站的关系成都网站建设-中国互联
  • 网站建设推进会wordpress容易被收录吗
  • 太原免费网站建站模板wordpress 去掉 顶部
  • 网站管理助手怎么使用做外贸从哪些网站获取客户
  • 做网站最基础需要什么条件erp软件免费版
  • 网站吸流量网站模板包含哪些内容
  • 学校手机网站模板杭州小程序建设
  • 莱芜市网站建设公司网站建设合同报价单 模板
  • 如何写一个可以做报价计算的网站上饶高端网站建设
  • 甘肃省省经合局网站建设的通知我想开网站
  • 佛山网站建设专业的公司自己做网站除了域名还要买什么
  • jquery网站源码做网站的数据库的设计
  • sql网站模板专业网站建设策划
  • 国内电商网站html源码乐清门户网站建设
  • 长寿网站建设公司做卡贴和果冻贴的网站
  • 做正规网站营销型网站建站系统