亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Yarn中的Map和Reduce的優化

通过Hive执行的批次任务处理失败,Spark中报的错误日志如下:

  1. ERROR : Failed to monitor Job[ 3] with exception 'java.lang.IllegalStateException(RPC channel is closed.)'  

  2. java.lang.IllegalStateException: RPC channel is closed.  

  3.     at com.google.common.base.Preconditions.checkState(Preconditions.java:145)  

  4.     at org.apache.hive.spark.client.rpc.Rpc.call(Rpc.java:277)  

  5.     at org.apache.hive.spark.client.SparkClientImpl$ClientProtocol.run(SparkClientImpl.java:584)  

  6.     at org.apache.hive.spark.client.SparkClientImpl.run(SparkClientImpl.java:151)  

  7.     at org.apache.hadoop.hive.ql.exec.spark.status.impl.RemoteSparkJobStatus.getSparkJobInfo(RemoteSparkJobStatus.java:147)  

通过Yarn的ResourceManager可以看到错误日志如下:

  1. Diagnostics: Container [pid=31880,containerID=container_1528360247633_0013_01_000001] is running beyond physical memory limits.   

  2. Current usage: 1.0 GB of 1 GB physical memory used; 2.8 GB of 2.1 GB virtual memory used. Killing container.  

其中提示“1.0 GB of 1 GB physical memory used; 2.8 GB of 2.1 GB virtual memory used”,说明是由于内存不足导致了问题的发生,因而需要针对Yarn的容器的内存做优化。

1.调整每个容器节点的最大可用内存

这个根据当前所使用服务器的实际情况决定,另外还需要考虑给操作系统预留可使用的内存,如当前的服务器的内存为16G,可以配置为12G,其余4G留给操作系统:

  1. <name>yarn.nodemanager.resource.memory-mb</name>  

  2. <value>12000</value>  

注:配置在yarn-site.xml中

2.调整单个容器可申请的最小内存

调整参数为yarn.scheduler.minimum-allocation-mb,该值和第1点谈到的单个容器的最大可存,可用于测算单台服务器可运行的最多的容器数,现将其值调为2G:

  1. <name>yarn.scheduler.minimum-allocation-mb</name>  

  2. <value>2048</value>  

注:配置在yarn-site.xml中

3.提升Map和Reduce可使用的内存

在当前示例中,给每个容器设置了2G的内存(通过参数yarn.scheduler.minimum-allocation-mb=2048),因此我们给Map任务容器分配了4G的内存,给Reduce任务容器分配了8G的内存:

  1. <name>mapreduce.map.memory.mb</name>  

  2. <value>4096</value>  

  3. <name>mapreduce.reduce.memory.mb</name>  

  4. <value>8192</value>  

注:配置在mapred-site.xml中

4.优化Map和Reduce任务的JVM内存

每个Container都会运行Map和Reduce任务运行,因而JVM堆大小应设置为低于上面定义的Map和Reduce内存,以便它们位于由YARN分配的Container内存的范围内。

  1. <name>mapreduce.map.java.opts</name>  

  2. <value>-Xmx3072m</value>  

  3. <name>mapreduce.reduce.java.opts</name>  

  4. <value>-Xmx6144m</value>  


注:配置在mapred-site.xml中

5、优化虚拟内存的占比

每个Map和Reduce任务的虚拟内存(物理+分页内存)上限由每个允许YARN容器的虚拟内存比决定。 这由以下配置设置,默认值为2.1:

  1. <name>yarn.nodemanager.vmem-pmem-ratio</name>  

  2. <value>2.1</value>  

注:配置在yarn-site.xml中


参考:https://hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp-2-0

原文出处

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消