参考:http://blog.csdn.net/facingthesuncn/article/details/8915441

从搭好Hadoop集群之后,再上面跑了一些程序,由于数据量较小,得到实验结果的时间也还可以忍受,因此也就没有关注MapReduce并行执行效率这方面的问题。后来跑了几个大的数据集,都发现非常的慢,于是就不得不关系效率方面的问题了。

查看任务管理器的时候发现有很多处理器是没有利用的,只有一两个的利用率较高,与我们对MapReduce的直觉相差很大,于是问了一个一直在研究Hadoop的同学,发现我们的配置文件是有问题的。MapReduce是通过slot来配置map/reduce capacity的(下图中矩形框框出的,Occupied Map/Reduce Slots显示的是在运行时实际占用了Capacity中的多少)。Hadoop默认情况下,map/reduce capacity都为2,因此,CPU的利用率不高,整个集群的并行执行效率也不高。

因此,需要在$HADOOP_HOME/conf/mapred-site.xml文件中进行配置,具体配置如下:

[html] view plaincopy
  1. <property>
  2. <name>mapred.tasktracker.map.tasks.maximum</name>
  3. <value>12</value>
  4. <description>The maximum number of map tasks that will be run
  5. simultaneously by a task tracker.
  6. </description>
  7. </property>
  8. <property>
  9. <name>mapred.tasktracker.reduce.tasks.maximum</name>
  10. <value>6</value>
  11. <description>The maximum number of reduce tasks that will be run
  12. simultaneously by a task tracker.
  13. </description>
  14. </property>

具体该将capacity设置为多少合适呢?这里可能要参考集群机器具体的硬件配置了。一般的,可以将Map Task Capacity设置为CPU的核心数,现在CPU每个核一般都会有多个线程(在任务管理器里会体现为多个核),设置中所参考的核心数是不包括这些线程虚拟出来的多核的。Reduce Task Capacity一般设置为Map Task Capacity的1/2或者1/4。

在我们的设置中,Map Task Capacity = CPU核心数,其实,Map Task Capacity + Reduce Task Capacity = CPU核心数 - 2比较好。因为我们的集群环境网速比较快,用户比较少,就没有给多个用户的并行放余量。设置时,需要考虑清楚这些情况

MapReduce的并行执行效率相关推荐

  1. 分布式离线计算—MapReduce—为什么被淘汰了?

    原文作者:蔡元楠 原文地址:为什么MapReduce会被硅谷一线公司淘汰?​time.geekbang.org 目录 超大规模数据处理的技术发展 为什么MapReduce会被取代 推荐阅读: 每次和来 ...

  2. mapreduce文本排序_MapReduce:通过数据密集型文本处理

    mapreduce文本排序 自上次发布以来已经有一段时间了,因为我一直忙于Coursera提供的一些课程. 有一些非常有趣的产品,值得一看. 前一段时间,我购买了Jimmy Lin和Chris Dye ...

  3. MapReduce:通过数据密集型文本处理

    自上次发布以来已经有一段时间了,因为我一直在忙于Coursera提供的一些课程. 有一些非常有趣的产品,值得一看. 前一段时间,我购买了Jimmy Lin和Chris Dyer的MapReduce数据 ...

  4. mapreduce复制连接的代码_MapReduce:在大型集群上简化数据处理(2)

    特别说明 这是一个由simviso团队所组织进行的基于mit分布式系统课程翻译的系列,由知秋带领和其他成员一起翻译的课程以及课程当中涉及的论文翻译. 由于微信排版功能有限,想要看最新版文档的小伙伴,请 ...

  5. MapReduce之Partitioner的理解

    我们知道在执行map任务的时候,会将key/value写入内存或者磁盘. 这个时候我们在往内存写数据的时候,会根据key创建分区. 问题一:为什要创建分区? 我们如果文件很大,我们只使用一个reduc ...

  6. mapreduce优化总结

    集群的优化 1.合理分配map和reduce任务的数量(单个节点上map任务.reduce任务的最大数量) 2.其他配置 io.file.buffer.size hadoop访问文件的IO操作都需要通 ...

  7. hadoop生态圈面试精华之MapReduce(二)

    hadoop生态圈面试精华之MapReduce(二) shuGle为什么要排序? 问过的一些公司:携程(2021.09),网易有道(2021.09) 参考答案: shuffle排序,按字典顺序排序的, ...

  8. MapReduce: Simplified Data Processing on Large Clusters_中文翻译

    MapReduce: Simplified Data Processing on Large Clusters (作为大数据处理的经典文献,个人在学习的过程中参考其它译文进行翻译: 参考译文: htt ...

  9. mapreduce为什么被淘汰了?

    作者:极客时间 链接:https://www.zhihu.com/question/303101438/answer/655475086 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商 ...

最新文章

  1. Mysql之删除表中数据_DELETE FROM
  2. js方法的声明与调用
  3. HTTP Basic 验证客户端 C#实现笔记
  4. sqlite sqlite3_bind_int sqlite3_bind_text
  5. 233网校计算机二级c语言,[233网校]2018年全国计算机二级Office高级应用精讲班_计算机二级视频教程...
  6. SSM+Jedis初体验
  7. python好玩的代码-这10个Python项目超有趣!
  8. word文件转pdf转换器11.0注册码
  9. Mac VM 虚拟机固定IP
  10. labview中DAQ采集多个数据通道(温度传感器)(TTL信号的曲轴位置传感器)总结
  11. 最佳国外域名注册商推荐,不需要备案【Namesilo【推荐】、Namecheap、Godaddy】
  12. 华为云OBS究竟是什么?
  13. 2014年优秀动画片推荐:马来西亚动画片《Ribbit》
  14. 将宇宙最强vscode打造为刷题神器
  15. 阿里巴巴java开发手册(alibaba网址在线查看或下载)
  16. Java面试题——Spring
  17. android手机赚钱软件排行
  18. Network (哈工大网课笔记)
  19. 只有真正将产业互联网看成是一种嬗变的过程,才能把握其精髓和原始奥义
  20. Centos7创建DNS服务器(超级简单,一看就会)

热门文章

  1. python threading condition使用_Python threading模块condition原理及运行流程详解
  2. CentOS7 编译安装 gcc/c++ 9.1
  3. AWS — AWS 上的 5G 网络
  4. ETSI GS MEC 016,Device application interface
  5. IPv6 — 移动性支持
  6. NanoPi NEO Air使用十五:移植RTL8723BU驱动
  7. BC26通过LWM2M协议连接ONENET,AT流程,STM32代码
  8. Simulink仿真教程5---仿真参数设置和示波器的使用
  9. 温度传感器有源电子标签设计浅析
  10. I.MX6 linux Qt 同时支持Touch、mouse