纱线中的Map和Reduce的优化

  

通过蜂巢执行的批次任务处理失败,火花中报的错误日志如下:

  


普通副本(平原)视图错误:未能监测工作与例外”[3]. lang。IllegalStateException (RPC通道关闭。)
. lang。IllegalStateException: RPC通道是关闭的。
在com.google.common.base.Preconditions.checkState (Preconditions.java: 145)
org.apache.hive.spark.client.rpc.Rpc.call (Rpc.java: 277)
org.apache.hive.spark.client.SparkClientImpl ClientProtocol.run美元(SparkClientImpl.java: 584)
org.apache.hive.spark.client.SparkClientImpl.run (SparkClientImpl.java: 151)
org.apache.hadoop.hive.ql.exec.spark.status.impl.RemoteSparkJobStatus.getSparkJobInfo (RemoteSparkJobStatus.java: 147)
通过纱线的ResourceManager可以看到错误日志如下:

  


普通副本(平原)视图诊断:容器(pid=31880, containerID=container_1528360247633_0013_01_000001]运行超出物理内存的限制。
当前用法:1.0 GB的1 GB物理内存使用;2.8 GB 2.1 GB的虚拟内存使用。造成容器。
其中提示“1.0 GB的1 GB物理内存使用;2.8 GB 2.1 GB的虚拟内存使用”,说明是由于内存不足导致了问题的发生,因而需要针对纱线的容器的内存做优化。

  

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

  

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

  

[html]视图平原复制
& lt; name> yarn.nodemanager.resource.memory-mb
& lt; value> 12000 & lt;/value>
注:配置在yarn-site.xml中

  

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

  

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

  

[html]视图平原复制
& lt; name> yarn.scheduler.minimum-allocation-mb
& lt; value> 2048 & lt;/value>
注:配置在yarn-site.xml中

  

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

  

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

  

[html]视图平原复制
& lt; name> mapreduce.map.memory.mb
& lt; value> 4096 & lt;/value>
& lt; name> mapreduce.reduce.memory.mb
& lt; value> 8192 & lt;/value>
注:配置在mapred-site.xml中
4。优化Map和Reduce任务的JVM内存

  

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

  

[html]视图平原复制
& lt; name> mapreduce.map.java.opts
& lt; value> -Xmx3072m
& lt; name> mapreduce.reduce.java.opts
& lt; value> -Xmx6144m
注:配置在mapred-site.xml中

  

5,优化虚拟内存的占比

  

每个Map和Reduce任务的虚拟内存(物理+分页内存)上限由每个允许纱容器的虚拟内存比决定。这由以下配置设置,默认值为2.1:
[html]视图平原复制
& lt; name> yarn.nodemanager.vmem-pmem-ratio
& lt; value> 2.1 & lt;/value>
注:配置在yarn-site.xml中
如果你想了解大数据的学习路线,想学习大数据知识以及需要免费的学习资料可以加群:784789432。欢迎你的加入。每天下午三点开直播分享基础知识,晚上20:00都会开直播给大家分享大数据项目实战。

纱线中的Map和Reduce的优化