当前位置: 首页 > 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.dt0577.cn/news/54960.html

相关文章:

  • vue小程序开发教程网站seo推广方案
  • 网站建设维护服务协议百度推广业务员电话
  • 小程序开发官网seo上海推广公司
  • 专业建站推广网络公司竞价推广托管多少钱
  • 质量好网站建设多少钱关键词搜索推广
  • 重庆网站建设只选承越百度推广每年600元什么费用
  • 青岛做网站哪家专业百度搜索引擎入口登录
  • h5制作网站哪个好seo服务合同
  • wordpress发广告邮件插件西安seo外包服务
  • 做康复医院网站最新国际新闻头条新闻
  • 哪个网站做高仿衣服sem是指什么
  • javaweb做视频网站原理win优化大师有免费版吗
  • 哈尔滨市做淘宝的网站关键词搜索优化公司
  • 虚拟主机怎么上传网站百度知道首页官网
  • 设计广告公司网站建设seo优化报价公司
  • 企业网站模块介绍seo流程
  • 做气球装饰可以上哪些网站系统优化助手
  • 香河做网站百度电脑版网页
  • vps如何搭建网站腾讯效果推广
  • 网站客户案例的公众号软文范例100
  • 做网站怎么上线推广引流吸引人的文案
  • 网站特色怎么写seo推广系统
  • wordpress 修改字体seo的作用有哪些
  • 大众软件回应中国芯片行业最大投资湖南正规关键词优化报价
  • 自建企业网站教程网页设计与网站建设教程
  • 网站建设找客户渠道google官网注册
  • 给别人做网站多少钱陕西seo关键词优化外包
  • 网页制作培训学费整站优化网站
  • 做展示型网站便宜吗十堰seo排名公司
  • 做村易通网站站长要收费吗?沧州网站建设