我们很荣幸能够见证Hadoop十年从无到有,再到称王。感动于技术的日新月异时,让我们再来看看关于Hadoop的精华问答。

1

Q:默认情况下,各个节点的负载不均衡(任务数目不同),有的节点很多任务在跑,有的没有任务,怎样让各个节点任务数目尽可能均衡呢?

A: 默认情况下,资源调度器处于批调度模式下,即一个心跳会尽可能多的分配任务,这样,优先发送心跳过来的节点将会把任务领光(前提:任务数目远小于集群可以同时运行的任务数量),为了避免该情况发生,可以按照以下说明配置参数:

如果采用的是fair scheduler,可在yarn-site.xml中,将参数yarn.scheduler.fair.max.assign设置为1(默认是-1,)

如果采用的是capacity scheduler(默认调度器),则不能配置,目前该调度器不带负载均衡之类的功能。

当然,从hadoop集群利用率角度看,该问题不算问题,因为一般情况下,用户任务数目要远远大于集群的并发处理能力的,也就是说,通常情况下,集群时刻处于忙碌状态,没有节点一直空闲着。

2

Q:某个节点上任务数目太多,资源利用率太高,怎么控制一个节点上的任务数目?

A:一个节点上运行的任务数目主要由两个因素决定,一个是NodeManager可使用的资源总量,一个是单个任务的资源需求量,比如一个NodeManager上可用资源为8 GB内存,8 cpu,单个任务资源需求量为1 GB内存,1cpu,则该节点最多运行8个任务。

NodeManager上可用资源是由管理员在配置文件yarn-site.xml中配置的,相关参数如下:

yarn.nodemanager.resource.memory-mb:总的可用物理内存量,默认是8096

yarn.nodemanager.resource.cpu-vcores:总的可用CPU数目,默认是8

对于MapReduce而言,每个作业的任务资源量可通过以下参数设置:

mapreduce.map.memory.mb:物理内存量,默认是1024

mapreduce.map.cpu.vcores:CPU数目,默认是1

默认情况,各个调度器只会对内存资源进行调度,不会考虑CPU资源,你需要在调度器配置文件中进行相关设置。

3

Q:如何设置单个任务占用的内存量和CPU数目?

A:对于MapReduce而言,每个作业的任务资源量可通过以下参数设置:

mapreduce.map.memory.mb:物理内存量,默认是1024

mapreduce.map.cpu.vcores:CPU数目,默认是1

需要注意的是,默认情况,各个调度器只会对内存资源进行调度,不会考虑CPU资源,你需要在调度器配置文件中进行相关设置。

4

Q:用户给任务设置的内存量为1000MB,为何最终分配的内存却是1024MB?

A:为了易于管理资源和调度资源,Hadoop YARN内置了资源规整化算法,它规定了最小可申请资源量、最大可申请资源量和资源规整化因子,如果应用程序申请的资源量小于最小可申请资源量,则YARN会将其大小改为最小可申请量,也就是说,应用程序获得资源不会小于自己申请的资源,但也不一定相等;如果应用程序申请的资源量大于最大可申请资源量,则会抛出异常,无法申请成功;规整化因子是用来规整化应用程序资源的,应用程序申请的资源如果不是该因子的整数倍,则将被修改为最小的整数倍对应的值,公式为ceil(a/b)*b,其中a是应用程序申请的资源,b为规整化因子。

以上介绍的参数需在yarn-site.xml中设置,相关参数如下:

yarn.scheduler.minimum-allocation-mb:最小可申请内存量,默认是1024

yarn.scheduler.minimum-allocation-vcores:最小可申请CPU数,默认是1

yarn.scheduler.maximum-allocation-mb:最大可申请内存量,默认是8096

yarn.scheduler.maximum-allocation-vcores:最大可申请CPU数,默认是4

对于规整化因子,不同调度器不同,具体如下:

FIFO和Capacity Scheduler,规整化因子等于最小可申请资源量,不可单独配置。

Fair Scheduler:规整化因子通过参数yarn.scheduler.increment-allocation-mb和yarn.scheduler.increment-allocation-vcores设置,默认是1024和1。

通过以上介绍可知,应用程序申请到资源量可能大于资源申请的资源量,比如YARN的最小可申请资源内存量为1024,规整因子是1024,如果一个应用程序申请1500内存,则会得到2048内存,如果规整因子是512,则得到1536内存。

5

Q:我们使用的是Fairscheduler,配置了多个队列,当用户提交一个作业,指定的队列不存在时,Fair Scheduler会自动创建一个新队列而不是报错(比如报错:队列XXX不存在),如何避免这种情况发生?

A:在yarn-site.xml中设置yarn.scheduler.fair.allow-undeclared-pools,将它的值配置为false(默认是true)。

小伙伴们冲鸭,后台留言区等着你!

关于Hadoop,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~

福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

2、公众号后台回复:白皮书,获取IDC最新数据白皮书整理资料!

推荐阅读:

  • 开了个会:破局企业云通信,华为加速 Buff 开发者!

  • 没有一家公司可以逃避边缘计算 | 技术头条

  • 她高中发明著名算法,保送清华姚班,斯坦福 AI 实验室负责人高徒 | 人物志

  • GitHub 日收 12,000 星,微软新命令行工具引爆程序员圈!

  • 华为员工年薪 200 万!真相让人心酸!

  • 天才程序员:25 岁进贝尔实验室,32 岁创建信息论  琥珀  极客宝宝  5天前

  • 安全顾问反水成黑客, 靠瞎猜盗得5000万美元的以太币, 一个区块链大盗的另类传奇

  • 人造器官新突破!美国科学家3D打印出会“呼吸”的肺 | Science

真香,朕在看了!

Hadoop精华问答 | 如何设置单个任务占用的内存量和CPU数目?相关推荐

  1. Hadoop精华问答 | NameNode的工作特点

    我们很荣幸能够见证Hadoop十年从无到有,再到称王.感动于技术的日新月异时,让我们再来看看关于Hadoop的精华问答. 1 Q:NameNode的工作特点 A:NameNode始终在内存中保存met ...

  2. Hadoop精华问答 | 基于Hadoop的数据中心有什么好处?

    戳蓝字"CSDN云计算"关注我们哦! 2006年项目成立的一开始,"Hadoop"这个单词只代表了两个组件--HDFS和MapReduce.到现在的13个年头, ...

  3. Hadoop精华问答 | hadoop能干什么?

    Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色,今天,就让我们看看关于Storm的精华问答吧. 1 Q:hadoop是什么 A:H ...

  4. Hadoop精华问答 | NameNode是什么?

    戳蓝字"CSDN云计算"关注我们哦! 2006年项目成立的一开始,"Hadoop"这个单词只代表了两个组件--HDFS和MapReduce.到现在的13个年头, ...

  5. Hadoop精华问答:Hadoop框架最核心的设计是?

    2006年项目成立的一开始,"Hadoop"这个单词只代表了两个组件--HDFS和MapReduce.到现在的13个年头,这个单词代表的是"核心",今天我们就来 ...

  6. Hadoop精华问答 | 非大数据的项目能否用Hadoop?

    戳蓝字"CSDN云计算"关注我们哦! 技术的日新月异,让我们见证了Hadoop十年从无到有,再到称王.2006年项目成立的一开始,"Hadoop"这个单词只代表 ...

  7. Hadoop精华问答 | Hadoop框架中最核心的设计是什么?

    Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色,今天,就让我们看看关于Storm的精华问答吧. 1 Q:hadoop发展史 A: ...

  8. Hadoop精华问答 | 关于Hadoop核心技术的精华问答

    戳蓝字"CSDN云计算"关注我们哦! 随着科技时代的发展,大数据与云计算已势不可挡的架势席卷未来,不可否认,大数据时代已经来临,并将深刻地改变着我们的工作和生活.学习大数据技术,是 ...

  9. Hadoop精华问答 | Hadoop 和Spark有什么区别?

    我们很荣幸能够见证Hadoop十年从无到有,再到称王.感动于技术的日新月异时,希望通过今天的有问有答深入解读Hadoop的昨天.今天和明天,憧憬下一个十年. 1 Q:Hadoop是什么? A:Hado ...

最新文章

  1. 大数据时代,如何根据业务选择合适的分布式框架
  2. 使用 Mashups4JSF 生成和消费 Mashup Feed
  3. newhope代码在vs2019的编译
  4. CSDN markdown 如何更改文字字体、样式、颜色、大小?
  5. 织梦自定义html文本,织梦自定义标签dede:sql根据自定义字段填的文章id获取相关文章...
  6. [HNOI2016]网络 树链剖分,堆
  7. 【渝粤教育】国家开放大学2018年春季 0064-21T20世纪欧美文学 参考试题
  8. itil v4和v3的区别_ITIL从v3到v4 - 这是新的ITIL
  9. 对计算机课程的总体认识,对计算机基础课程的认识(浅谈计算机基础课程教学中计算思维的培养)...
  10. 计算机不认2t移动硬盘,win7系统无法识别2T希捷的硬盘的解决方法
  11. developer.biao.daily.20140731
  12. 汽车电子行业英文缩写大全(不断更新)
  13. 支付宝玉伯:从前端到体验,如何把格局做大
  14. 电影票房预测-kaggle项目Python项目
  15. DockerK8s---通过kubeadm快速部署K8s
  16. 转:如何选择 Excel 中的数据列,然后将数据粘贴到文本文件中?
  17. Ansible、Puppet、SaltStac等4种常见的自动化运维工具全解析
  18. python 灰度图转矩阵_图像转换矩阵
  19. 解决win10中笔记本插入网线后无法识别的问题
  20. 【Week14实验】猫睡觉问题【模拟】

热门文章

  1. linux下驱动编译报错EEROR: *** [***.ko] undefined! 的错误原因和解决办法
  2. 对我自己的一点分析总结
  3. 一名测试开发工程师的内心自白,被裁员之前,没得到任何风声,措手不及......
  4. 写不完的数学试卷-----试卷生成器(Qt含源码)
  5. 医院客户关系管理/医院随访/CRM/HCRM
  6. PT柜、进线柜、出线柜、隔离柜
  7. 聊一聊2038年问题
  8. verilog语法中+:和-:用法
  9. Embedding原理到实战
  10. linux awk命令NR详解,awk命令之NR和FNR变量用法详解