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

做家政下载什么网站或什么群呢高校校园网站建设与运行

做家政下载什么网站或什么群呢,高校校园网站建设与运行,布谷海南网站建设,成品型网站建设mapreduce文本排序自上次发布以来已经有一段时间了#xff0c;因为我一直忙于Coursera提供的一些课程。 有一些非常有趣的产品#xff0c;值得一看。 前一段时间#xff0c;我购买了Jimmy Lin和Chris Dyer的MapReduce数据密集型处理程序 。 本书以伪代码格式介绍了几种关键的… mapreduce文本排序 自上次发布以来已经有一段时间了因为我一直忙于Coursera提供的一些课程。 有一些非常有趣的产品值得一看。 前一段时间我购买了Jimmy Lin和Chris Dyer的MapReduce数据密集型处理程序 。 本书以伪代码格式介绍了几种关键的MapReduce算法。 我的目标是采用第3-6章中介绍的算法并以Hadoop Tom White的《权威指南》作为参考在Hadoop中实现它们。 我将假设您熟悉Hadoop和MapReduce并且不介绍任何入门资料。 因此让我们从局部聚合开始进入第3章– MapReduce算法设计。 本地聚集 在很高的级别上当Mappers发出数据时中间结果将写入磁盘然后通过网络发送到Reducers以进行最终处理。 在MapReduce作业的处理中写入磁盘然后通过网络传输数据的延迟是一项昂贵的操作。 因此有理由认为只要有可能减少从映射器发送的数据量将提高MapReduce作业的速度。 本地聚合是一种用于减少数据量并提高MapReduce工作效率的技术。 局部聚合不能代替reducers因为我们需要一种方法来使用来自不同映射器的相同键来收集结果。 我们将考虑实现本地聚合的3种方法 使用Hadoop Combiner函数。 文本处理和MapReduce书中介绍了两种“内部映射器”组合方法。 当然任何优化都需要权衡取舍我们也会对此进行讨论。 为了演示本地聚合我们将使用hadoop-0.20.2-cdh3u3在MacBookPro上安装的伪分布式集群上在Charles Dickens的纯文本版本的A Christmas Carol 从Project Gutenberg下载上运行无处不在的字数统计作业。从Cloudera发行。 我计划在以后的文章中在具有更实际大小的数据的EC2集群上运行相同的实验。 合路器 组合器函数是扩展Reducer类的对象。 实际上对于此处的示例我们将重复使用单词计数作业中使用的相同的reduce。 设置MapReduce作业时会指定组合器功能如下所示 job.setReducerClass(TokenCountReducer.class); 这是化简器代码 public class TokenCountReducer extends ReducerText,IntWritable,Text,IntWritable{Overrideprotected void reduce(Text key, IterableIntWritable values, Context context) throws IOException, InterruptedException {int count 0;for (IntWritable value : values) {count value.get();}context.write(key,new IntWritable(count));} } 组合器的工作就是按照名称所暗示的那样进行工作聚合数据的最终结果是减少了数据在网络中的混洗从而提高了效率。 如前所述请记住还需要简化器将结果与来自不同映射器的相同键组合在一起。 由于组合器功能是一种优化因此Hadoop框架无法保证组合器将被调用多少次如果有的话。 在Mapper组合选项1中 使用组合器的第一种选择图3.2第41页非常简单对我们原始的字数映射器进行了一些修改 public class PerDocumentMapper extends MapperLongWritable, Text, Text, IntWritable {Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {IntWritable writableCount new IntWritable();Text text new Text();MapString,Integer tokenMap new HashMapString, Integer();StringTokenizer tokenizer new StringTokenizer(value.toString());while(tokenizer.hasMoreElements()){String token tokenizer.nextToken();Integer count tokenMap.get(token);if(count null) count new Integer(0);count1;tokenMap.put(token,count);}SetString keys tokenMap.keySet();for (String s : keys) {text.set(s);writableCount.set(tokenMap.get(s));context.write(text,writableCount);}} } 正如我们在这里看到的对于遇到的每个单词我们不会发出计数为1的单词而是使用映射来跟踪已处理的每个单词。 然后在处理完所有标记后我们遍历该映射并发出该行中遇到的每个单词的总数。 在Mapper组合选项2中 in mapper组合的第二个选项图3.3第41页与上述示例非常相似但有两个区别–创建哈希映射时和发出映射中包含的结果时。 在上面的示例中创建了一个映射并在每次调用map方法时将其内容转储到网络上。 在此示例中我们将使地图成为实例变量并将地图的实例化移动到我们的映射器中的setUp方法。 同样在完成对mapper的所有调用并调用cleanUp方法之前不会将映射的内容发送到reducers。 public class AllDocumentMapper extends MapperLongWritable,Text,Text,IntWritable {private MapString,Integer tokenMap;Overrideprotected void setup(Context context) throws IOException, InterruptedException {tokenMap new HashMapString, Integer();}Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {StringTokenizer tokenizer new StringTokenizer(value.toString());while(tokenizer.hasMoreElements()){String token tokenizer.nextToken();Integer count tokenMap.get(token);if(count null) count new Integer(0);count1;tokenMap.put(token,count);}}Overrideprotected void cleanup(Context context) throws IOException, InterruptedException {IntWritable writableCount new IntWritable();Text text new Text();SetString keys tokenMap.keySet();for (String s : keys) {text.set(s);writableCount.set(tokenMap.get(s));context.write(text,writableCount);}} } 从上面的代码示例中可以看出在对map方法的所有调用中映射器都跟踪唯一字数。 通过跟踪唯一令牌及其计数应该大大减少发送给reducer的记录数量这反过来又可以改善MapReduce作业的运行时间。 这样可以达到与使用MapReduce框架提供的Combiner Function选项相同的效果但是在这种情况下可以确保将调用组合代码。 但是这种方法也有一些警告。 在地图调用之间保持状态可能会出现问题并且绝对违反了“地图”功能的功能精神。 同样通过保持所有映射器的状态取决于作业中使用的数据内存可能是另一个要解决的问题。 最终必须权衡所有权衡以确定最佳方法。 结果 现在让我们看一下不同映射器的一些结果。 由于作业是在伪分布式模式下运行的因此实际的运行时间是无关紧要的但是我们仍然可以推断出使用本地聚合会如何影响在实际集群上运行的MapReduce作业的效率。 每个令牌映射器 12/09/13 21:25:32 INFO mapred.JobClient: Reduce shuffle bytes366010 12/09/13 21:25:32 INFO mapred.JobClient: Reduce output records7657 12/09/13 21:25:32 INFO mapred.JobClient: Spilled Records63118 12/09/13 21:25:32 INFO mapred.JobClient: Map output bytes302886 在Mapper精简选项1中 12/09/13 21:28:15 INFO mapred.JobClient: Reduce shuffle bytes354112 12/09/13 21:28:15 INFO mapred.JobClient: Reduce output records7657 12/09/13 21:28:15 INFO mapred.JobClient: Spilled Records60704 12/09/13 21:28:15 INFO mapred.JobClient: Map output bytes293402 在Mapper精简选项2中 12/09/13 21:30:49 INFO mapred.JobClient: Reduce shuffle bytes105885 12/09/13 21:30:49 INFO mapred.JobClient: Reduce output records7657 12/09/13 21:30:49 INFO mapred.JobClient: Spilled Records15314 12/09/13 21:30:49 INFO mapred.JobClient: Map output bytes90565 组合器选项 12/09/13 21:22:18 INFO mapred.JobClient: Reduce shuffle bytes105885 12/09/13 21:22:18 INFO mapred.JobClient: Reduce output records7657 12/09/13 21:22:18 INFO mapred.JobClient: Spilled Records15314 12/09/13 21:22:18 INFO mapred.JobClient: Map output bytes302886 12/09/13 21:22:18 INFO mapred.JobClient: Combine input records31559 12/09/13 21:22:18 INFO mapred.JobClient: Combine output records7657 不出所料不进行合并的Mapper的结果最差紧随其后的是第一个映射器内合并选项尽管如果在运行字数统计之前清除数据这些结果本来可以做得更好。 第二个映射器内合并选项和合并器功能实际上具有相同的结果。 重要的事实是作为前两个选项两者产生的结果都减少了2/3减少了混洗字节。 将通过网络发送到缩减程序的字节数量减少该数量一定会对MapReduce作业的效率产生积极影响。 这里要牢记一点那就是合并器/映射器合并不能仅在所有MapReduce作业中使用在这种情况下字数计数非常适合于这种增强但这可能并不总是正确的。 结论 正如您所看到的在寻求提高MapReduce作业的性能时需要认真考虑使用映射器内合并或Hadoop合并器功能的好处。 至于哪种方法则要权衡每种方法的权衡。 相关链接 Jimmy Lin和Chris Dyer 使用MapReduce进行的数据密集型处理 Hadoop Tom White 的权威指南 来自博客的源代码 MRUnit用于单元测试Apache Hadoop映射减少工作 Gutenberg项目提供了大量纯文本格式的书籍非常适合在本地测试Hadoop作业。 祝您编程愉快别忘了分享 参考 《 随机编码》博客上的JCG合作伙伴 Bill Bejeck 提供的MapReduce数据密集型文本处理功能 。 翻译自: https://www.javacodegeeks.com/2012/09/mapreduce-working-through-data.htmlmapreduce文本排序
http://www.yutouwan.com/news/27832/

相关文章:

  • 什么网站建设效果好江门网站自助建站
  • 未来 网站开发 知乎物流公司电话
  • 做网站能用的字体黄南州网站建设公司
  • 吃的网站要怎么做广告设计与制作实训总结2000字
  • 开发企业门户网站中国商标官网入口
  • 外贸搜素网站wordpress 共享
  • 怎么免费上传网页网站青州建设局网站
  • 中山哪里网站建设成都有啥好玩的地方
  • 环保网站建设费用政务网站信息化建设情况
  • 珠海h5建站成都哪些公司做网站好
  • 淄博网站制作设计公司asp网站搭建工具
  • 做网站排版网上购物软件哪个好
  • 怎样做自己的销售网站6如何做强一个网站的品牌
  • 校园网站建设的感受论文wordpress笑话类模板
  • 电脑购物网站模板wordpress 大型站
  • 做网站模板链接放哪里装饰网站建设重要性
  • 如何用工控做网站上海公司注销流程及资料
  • 网站怎么做推广和优化哪些企业需要网络推广
  • 免费广告设计模板网站免费网址申请
  • 做外贸网站如何常用的网络营销推广方法有哪些
  • 免费背景图片素材网站怎样做音视频宣传网站
  • 好看的网站设计公司网站备案关闭
  • wordpress修改域名柳州网站seo网站s
  • 做机电证的网站标识牌设计
  • 广州 网站建设 020微信怎么做网站推广
  • 建设机械网站公司网站psd 模板
  • 北京哪家做网站优化无需域名网站建设
  • 为什么做的网站在浏览器搜不到泰州做网站软件
  • 公益网站建设 参考文献如何在网上推广
  • 网站意见反馈源码电子商务网站开发的关键点