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

郑州网站制作公司哪家好互联网营销平台

郑州网站制作公司哪家好,互联网营销平台,wordpress删除重装,Wordpress付费置顶文章目录 序列化概述自定义bean对象实现序列化接口#xff08;Writable#xff09;案例需求编写MapReduce程序运行结果 序列化概述 序列化就是把内存中的对象#xff0c;转换成字节序列#xff08;或其他数据传输协议#xff09;以便于存储到磁盘#xff08;持久化… 文章目录 序列化概述自定义bean对象实现序列化接口Writable案例需求编写MapReduce程序运行结果 序列化概述 序列化就是把内存中的对象转换成字节序列或其他数据传输协议以便于存储到磁盘持久化和网络传输。 反序列化就是将收到字节序列或其他数据传输协议或者是磁盘的持久化数据转换成内存中的对象。 自定义bean对象实现序列化接口Writable 在企业开发中往往常用的基本序列化类型不能满足所有需求比如在Hadoop框架内部传递一个bean对象那么该对象就需要实现序列化接口。 具体实现bean对象序列化步骤如下7步 1必须实现Writable接口 2反序列化时需要反射调用空参构造函数所以必须有空参构造 public FlowBean() {super(); }3重写序列化方法 Override public void write(DataOutput out) throws IOException {out.writeLong(upFlow);out.writeLong(downFlow);out.writeLong(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; }案例需求 统计每一个手机号耗费的总上行流量、总下行流量、总流量 输入总数据 输入数据格式 7 13560436666 120.196.100.99 1116 954 200 id 手机号码 网络ip 上行流量 下行流量 网络状态码 期望输出数据格式 13560436666 1116 954 2070 手机号码 上行流量 下行流量 总流量 编写MapReduce程序 FlowBean package com.atxiaoyu.xuliehua;import org.apache.hadoop.io.Writable;import java.io.DataInput; import java.io.DataOutput; import java.io.IOException;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.upFlowthis.downFlow;}Overridepublic void write(DataOutput out) throws IOException {out.writeLong(upFlow);out.writeLong(downFlow);out.writeLong(sumFlow);}Overridepublic void readFields(DataInput in) throws IOException {this.upFlowin.readLong();this.downFlowin.readLong();this.sumFlowin.readLong();}Overridepublic String toString() {return upFlow\tdownFlow\tsumFlow;} } FlowMapper: package com.atxiaoyu.xuliehua;import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;public class FlowMapper extends MapperLongWritable, Text,Text,FlowBean {private Text outKnew Text();private FlowBean outVnew FlowBean();Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {// 获取一行String linevalue.toString();//切割String[] splitline.split(\t);//抓取想要的数据String phonesplit[1];String upsplit[split.length-3]; //上行流量String downsplit[split.length-2]; //下行流量//封装outK.set(phone);outV.setUpFlow(Long.parseLong(up));outV.setDownFlow(Long.parseLong(down));outV.setSumFlow();// 写出context.write(outK,outV);} } FlowReducer: package com.atxiaoyu.xuliehua;import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;public class FlowReducer extends ReducerText,FlowBean,Text,FlowBean {private FlowBean outVnew FlowBean();Overrideprotected void reduce(Text key, IterableFlowBean values, Context context) throws IOException, InterruptedException {//遍历集合累加值long totalUp0;long totalDown0;for (FlowBean value : values) {totalUptotalUpvalue.getUpFlow();totalDowntotalUpvalue.getDownFlow();//封装outK,outVoutV.setUpFlow(totalUp);outV.setDownFlow(totalDown);outV.setSumFlow();//写出context.write(key,outV);}} } FlowDriver: package com.atxiaoyu.xuliehua; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.kerby.config.Conf;import java.io.IOException;public class FlowDriver {public static void main(String[] args) throws InterruptedException, IOException, ClassNotFoundException {Configuration conf new Configuration();//1 获取jobJob job Job.getInstance(conf);//2 设置jar包路径job.setJarByClass(FlowDriver.class);// 3 管理mapper和reducerjob.setMapperClass(FlowMapper.class);job.setReducerClass(FlowReducer.class);// 4 设置map输出的kv类型job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(FlowBean.class);//5 设置最终输出的kv类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(FlowBean.class);//6 设置输入路径和输出路径FileInputFormat.setInputPaths(job, new Path(D:\\input));FileOutputFormat.setOutputPath(job, new Path(D:\\output));//7 提交jobboolean result job.waitForCompletion(true);System.exit(result ? 0 : 1);} } 运行结果 与我们设想的输出结果一致。
http://www.hkea.cn/news/14565590/

相关文章:

  • 网站建设万禾wordpress付费发布
  • 杭州企业网站建站模板专业医疗网站建设
  • 网站开发资料做电影网站一年赚多少
  • 网站关键词被百度屏蔽怎么办微信网站开发教程视频教程
  • 深圳网站开发antnwwordpress 写作主题
  • 长沙 php企业网站系统wordpress自定义主题
  • wordpress 赞 插件郑州众志seo
  • 企业网站建设需要什么网站程序是什么意思
  • asp.net网站设计分工s001网站建设
  • 做网站字号多大把自己做的网站传到网上
  • 重庆 网站建设手工网站怎样做三角包
  • 请别人做网站需要注意什么问题vs2015做网站的后端
  • 域名网站怎么做的建个外国网站
  • 黔东南网站建设gzklyy天水市建设路第二小学网站
  • 网站建设和网络营销区别南京室内设计学校
  • 网站引用优酷站长网站后台
  • 网站建设在淘宝上以后让还让发布吗网站如何做快照
  • 电子商务网站的类型海口企业自助建站
  • 如何做自己的网站赚钱办公室装修费用会计分录
  • 58同城哈尔滨网站建设烟台网站建设哪家服务好
  • 北仑网站网页建设wordpress 主题制作 functions.php
  • 中国建设银行移动门户网站外贸网站做开关行业的哪个好
  • 推荐广州手机网站定制阿里云备案网站名称
  • 做神马网站优实训网站开发目的
  • 建被采集的网站长沙麓谷网站建设
  • 网站建设与维护合同wordpress 自定义头像
  • 高端医院网站建设广东东莞最新消息通知
  • 京东网上商城官网优化网站和网站建设
  • 音乐网站开发与需求wordpress 调用 api接口
  • 省建设厅网站安徽网络培训学习心得