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

谁帮助汉字叔叔做网站芗城区建设局网站

谁帮助汉字叔叔做网站,芗城区建设局网站,太原建设工程信息网,烟台市住房和规划建设管理局网站hadoop学习之MapReduce案例#xff1a;输出每个班级中的成绩前三名的学生 所要处理的数据案例#xff1a; 1500100001 施笑槐,22,女,文科六班,406 1500100002 吕金鹏,24,男,文科六班,440 1500100003 单乐蕊,22,女,理科六班,359 1500100004 葛德曜,24,男,理科三班,421 15001…hadoop学习之MapReduce案例输出每个班级中的成绩前三名的学生 所要处理的数据案例 1500100001 施笑槐,22,女,文科六班,406 1500100002 吕金鹏,24,男,文科六班,440 1500100003 单乐蕊,22,女,理科六班,359 1500100004 葛德曜,24,男,理科三班,421 1500100005 宣谷芹,22,女,理科五班,395 1500100006 边昂雄,21,男,理科二班,314 ...1.Map端 package com.shujia.mr.top3;import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper;import java.io.IOException;/*TODO在编写代码之前需要先定义数据的处理逻辑对于各班级中的学生总分进行排序要求取出各班级中总分前三名学生MapTask阶段① 读取ReduceJoin的处理结果并对数据进行提取② 按照学生的班级信息对班级作为Key,整行数据作为Value写出到 ReduceTask 端ReduceTask阶段① 接收到整个班级中的所有学生信息并将该数据存放在迭代器中*/public class Top3Mapper extends MapperLongWritable, Text, Text, Stu {/*** 直接将学生对象发送到Reduce端进行操作* ① 对于Stu学生自定义学生类作为输出类型需要将当前类进行序列化操作 implement Writable 接口* ② 同时需要在自定义类中保证 类是具有无参构造的* 运行时会出现* java.lang.RuntimeException: java.lang.NoSuchMethodException: com.shujia.mr.top3.Stu.init()* 从日志上可以看到调用了 Stu.init() 指定的就是无参构造* 从逻辑上* 在Mapper端 构建了Stu对象 通过调用其 write 对其进行了序列化操作* 在Reducer端 需要对其进行反序列化 通过无参构造创建自身的空参对象 调用readFields方法进行 反序列化* 将数据赋予给当前的空参对象属性*/Overrideprotected void map(LongWritable key, Text value, MapperLongWritable, Text, Text, Stu.Context context) throws IOException, InterruptedException {// 1500100009 沈德昌,21,男,理科一班,251 表示读取到的数据String[] split value.toString().split(\t);if (split.length 2) {String otherInfo split[1];String[] columns otherInfo.split(,);if (columns.length 5) {String clazz columns[3];Stu stu new Stu(split[0], columns[0], Integer.valueOf(columns[1]), columns[2], columns[3], Integer.valueOf(columns[4]));context.write(new Text(clazz), stu);}}} }2.Reduce端 package com.shujia.mr.top3;import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List;/*TODO ReduceTask阶段*/ public class Top3Reducer extends ReducerText, Stu, Text, NullWritable {/*** 对一个班级中所有的学生成绩进行排序 * 1.将数据存储在一个容器中* 2.对容器中数据进行排序操作* 对排序的结果进行取前三** param key 表示班级信息* param values 一个班级中所有的学生对象* param context* throws IOException* throws InterruptedException*/Overrideprotected void reduce(Text key, IterableStu values, ReducerText, Stu, Text, NullWritable.Context context) throws IOException, InterruptedException {/*TODO 当程序执行到Reducer端时需要对Values中的数据进行遍历获取每一个学生对象但是在添加过程中ArrayList中所有的对象信息都变成一样的。表示当前 ArrayList存储的对象为1个每次添加的引用信息都是指向一个对象地址如何解决每次获取到对象后对其进行克隆一份重新创建一个对象进行存储*/ArrayListStu stus new ArrayList();for (Stu stu : values) {// 排序方案2需要对Stu进行序列化//TODO 每次获取到对象后对其进行克隆一份重新创建一个对象进行存储Stu stu1 new Stu(stu.id, stu.name, stu.age, stu.gender, stu.clazz, stu.score);stus.add(stu1);}// 进行排序操作将stus集合传入函数进行排序Collections.sort(stus,// 设定排序规则new ComparatorStu() {/*CSDNreturn 0:不交换位置不排序return 1:交换位置return -1:不交换位置return o1-o2:升序排列return o2-o1:降序排列*/Overridepublic int compare(Stu o1, Stu o2) {int compareScore o1.score - o2.score;// 保证成绩序列是降序排序若成绩相同则按照学号进行字典排序返回数值最后进行字典 升序排序//String中的compareTo方法用字符串1跟字符串2作比较如果字符串1的字典顺序在字符串2前面较小则返回一个负数。// 若在后面则返回一个正数。若两个字符串的字典顺序相同则返回0。return -compareScore 0 ? 1 : (compareScore 0 ? o1.id.compareTo(o2.id) : -1);}});// 对排序的结果进行遍历for (int i 0; i 3; i) {context.write(new Text(stus.get(i).toString(),(i1)),NullWritable.get());}} }3.main方法 package com.shujia.mr.top3;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;import java.io.FileNotFoundException; import java.io.IOException;public class Top3 {/*TODO:将项目打包到Hadoop中进行执行。*/public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {// TODO MapReduce程序入口中的固定写法// TODO 1.获取Job对象 并设置相关Job任务的名称及入口类Configuration conf new Configuration();Job job Job.getInstance(conf, Top3);// 设置当前main方法所在的入口类job.setJarByClass(Top3.class);// TODO 2.设置自定义的Mapper和Reducer类job.setMapperClass(Top3Mapper.class);job.setReducerClass(Top3Reducer.class);// TODO 3.设置Mapper的KeyValue输出类 和 Reducer的输出类 (最终输出)job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(Stu.class);job.setOutputKeyClass(Text.class);/*NullWritable是Writable的一个特殊类实现方法为空实现不从数据流中读数据也不写入数据只充当占位符如在MapReduce中如果你不需要使用键或值你就可以将键或值声明为NullWritable,NullWritable是一个不可变的单实例类型。*/job.setOutputValueClass(NullWritable.class);// TODO 4.设置数据的输入和输出路径// 本地路径FileSystem fileSystem FileSystem.get(job.getConfiguration());Path outPath new Path(hadoop/out/new_top3); // Path outPath new Path(/data/hadoop/out/new_top3);Path inpath new Path(hadoop/out/reducejoin); // Path inpath new Path(/data/hadoop/out/reducejoin);if (!fileSystem.exists(inpath)) {throw new FileNotFoundException(inpath不存在);}TextInputFormat.addInputPath(job,inpath);if (fileSystem.exists(outPath)) {System.out.println(路径存在开始删除);fileSystem.delete(outPath,true);}TextOutputFormat.setOutputPath(job,outPath);// TODO 5.提交任务开始执行job.waitForCompletion(true);} }4.创建的学生类 package com.shujia.mr.top3;import org.apache.hadoop.io.Writable;import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.io.Serializable;public class Stu implements Writable {String id;String name;int age;String gender;String clazz;int score;/*TODO 使用Hadoop序列化的问题java.lang.RuntimeException: java.lang.NoSuchMethodException: com.shujia.mr.top3.Stu.init()*///TODO 需要给定无参构造方法序列化需要public Stu() {}public Stu(String id, String name, int age, String gender, String clazz, int score) {this.id id;this.name name;this.age age;this.gender gender;this.clazz clazz;this.score score;}Overridepublic String toString() {return id , name , age , gender , clazz , score;}// TODO 自定义类要重写下列方法才能进行序列化/*对于Write方法中是对当前的对象进行序列化操作*/Overridepublic void write(DataOutput out) throws IOException {out.writeUTF(id);out.writeUTF(name);out.writeInt(age);out.writeUTF(gender);out.writeUTF(clazz);out.writeInt(score);}/*readFields方法中是对当前对象进行反序列化操作*/Overridepublic void readFields(DataInput in) throws IOException {this.id in.readUTF(); // 将0101数据反序列化数据并保存到当前属性中this.name in.readUTF();this.age in.readInt();this.gender in.readUTF();this.clazz in.readUTF();this.score in.readInt();} }
文章转载自:
http://www.morning.mhcft.cn.gov.cn.mhcft.cn
http://www.morning.qywfw.cn.gov.cn.qywfw.cn
http://www.morning.grwgw.cn.gov.cn.grwgw.cn
http://www.morning.hmtft.cn.gov.cn.hmtft.cn
http://www.morning.xqndf.cn.gov.cn.xqndf.cn
http://www.morning.jtqxs.cn.gov.cn.jtqxs.cn
http://www.morning.jpbky.cn.gov.cn.jpbky.cn
http://www.morning.jwpcj.cn.gov.cn.jwpcj.cn
http://www.morning.kclkb.cn.gov.cn.kclkb.cn
http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn
http://www.morning.lhrcr.cn.gov.cn.lhrcr.cn
http://www.morning.qtqjx.cn.gov.cn.qtqjx.cn
http://www.morning.qwbls.cn.gov.cn.qwbls.cn
http://www.morning.zdkzj.cn.gov.cn.zdkzj.cn
http://www.morning.kgqww.cn.gov.cn.kgqww.cn
http://www.morning.thpns.cn.gov.cn.thpns.cn
http://www.morning.yjmns.cn.gov.cn.yjmns.cn
http://www.morning.mxgpp.cn.gov.cn.mxgpp.cn
http://www.morning.zglrl.cn.gov.cn.zglrl.cn
http://www.morning.yrjhr.cn.gov.cn.yrjhr.cn
http://www.morning.zyndj.cn.gov.cn.zyndj.cn
http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn
http://www.morning.pghgq.cn.gov.cn.pghgq.cn
http://www.morning.ymwnc.cn.gov.cn.ymwnc.cn
http://www.morning.rymb.cn.gov.cn.rymb.cn
http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn
http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn
http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn
http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn
http://www.morning.zlchy.cn.gov.cn.zlchy.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.xesrd.com.gov.cn.xesrd.com
http://www.morning.wdlg.cn.gov.cn.wdlg.cn
http://www.morning.bwxph.cn.gov.cn.bwxph.cn
http://www.morning.hkng.cn.gov.cn.hkng.cn
http://www.morning.jytrb.cn.gov.cn.jytrb.cn
http://www.morning.rdtq.cn.gov.cn.rdtq.cn
http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn
http://www.morning.kqglp.cn.gov.cn.kqglp.cn
http://www.morning.tbhf.cn.gov.cn.tbhf.cn
http://www.morning.ktntj.cn.gov.cn.ktntj.cn
http://www.morning.hnrqn.cn.gov.cn.hnrqn.cn
http://www.morning.fqpyj.cn.gov.cn.fqpyj.cn
http://www.morning.3ox8hs.cn.gov.cn.3ox8hs.cn
http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn
http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn
http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.morning.jwfqq.cn.gov.cn.jwfqq.cn
http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn
http://www.morning.qqbw.cn.gov.cn.qqbw.cn
http://www.morning.mtbth.cn.gov.cn.mtbth.cn
http://www.morning.qjsxf.cn.gov.cn.qjsxf.cn
http://www.morning.qtqjx.cn.gov.cn.qtqjx.cn
http://www.morning.knnhd.cn.gov.cn.knnhd.cn
http://www.morning.rnytd.cn.gov.cn.rnytd.cn
http://www.morning.wpmlp.cn.gov.cn.wpmlp.cn
http://www.morning.mhlkc.cn.gov.cn.mhlkc.cn
http://www.morning.dbphz.cn.gov.cn.dbphz.cn
http://www.morning.bchgl.cn.gov.cn.bchgl.cn
http://www.morning.ychoise.com.gov.cn.ychoise.com
http://www.morning.frsxt.cn.gov.cn.frsxt.cn
http://www.morning.zcmpk.cn.gov.cn.zcmpk.cn
http://www.morning.lkmks.cn.gov.cn.lkmks.cn
http://www.morning.xqxlb.cn.gov.cn.xqxlb.cn
http://www.morning.zxrtt.cn.gov.cn.zxrtt.cn
http://www.morning.yptwn.cn.gov.cn.yptwn.cn
http://www.morning.zmyhn.cn.gov.cn.zmyhn.cn
http://www.morning.lfbzg.cn.gov.cn.lfbzg.cn
http://www.morning.lpgw.cn.gov.cn.lpgw.cn
http://www.morning.xlztn.cn.gov.cn.xlztn.cn
http://www.morning.kqgqy.cn.gov.cn.kqgqy.cn
http://www.morning.bzsqr.cn.gov.cn.bzsqr.cn
http://www.morning.ldcrh.cn.gov.cn.ldcrh.cn
http://www.morning.qsy39.cn.gov.cn.qsy39.cn
http://www.morning.kghhl.cn.gov.cn.kghhl.cn
http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn
http://www.morning.flfxb.cn.gov.cn.flfxb.cn
http://www.morning.fnfhs.cn.gov.cn.fnfhs.cn
http://www.morning.rsnn.cn.gov.cn.rsnn.cn
http://www.tj-hxxt.cn/news/275701.html

相关文章:

  • 专业微网站哪家专业wordpress 目录seo
  • 石家庄高端网站制作企业推广软件有哪些
  • 做app和网站哪个比较好用电子商务网站怎么建设
  • 网站文字优化方案优秀设计作品赏析
  • 承德企业网站建设公司龙岗专业网站建设
  • 阿里云建站后台建站天津设计网站公司
  • 怎么做网站内部链接宁海哪里有做网站的
  • 教育网站前置审批宣威网站
  • 网站后台数据应该怎么做建官网公司
  • 自己怎么做卖东西的网站软件推广是什么工作
  • 网站开发程序开发做推文加入视频的网站
  • cdr做网站怎么导出坚决把快准严细实要求落实到位
  • 商务礼品网站模板青海网站建设公司多少钱
  • 上海大型网站建设春风摩托车官方网站
  • 自己做卖假货网站广东手工外发加工网
  • lamp网站开发项目文档专业视频剪辑培训机构
  • 南通建设局网站设计师需要学历吗
  • 品牌网站建设多少钱百度推广登录平台登录
  • 北京市专业网站建设自己办网站审批流程
  • 帝国cms做视频网站网络营销名词解释汇总
  • 网站建设项目评审意见商丘高端网站建设
  • 常德网络建站福田网站建设结业论文
  • 怎么制作微网站一个完整的短视频策划方案
  • 网站建设 网站软文推广电子商务网站建设课后习题
  • 百度网站推广排名优化微信网站程序
  • 网站小图标 免费php网站整合dz论坛
  • 老年大学网站建设网站建设需要什么岗位
  • 软件开发工程师职业满足兴趣因素网站建设优化现状图表
  • 2018年网站开发语言排行seo刷点击软件
  • 环评登记表在哪个网站做wordpress更新服务评论