十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
通过Hive执行的批次任务处理失败,Spark中报的错误日志如下:
创新互联建站秉承实现全网价值营销的理念,以专业定制企业官网,成都网站建设、成都做网站,微信小程序开发,网页设计制作,成都手机网站制作,营销型网站帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。
[plain] view plain copy
ERROR : Failed to monitor Job[ 3] with exception 'java.lang.IllegalStateException(RPC channel is closed.)'
java.lang.IllegalStateException: RPC channel is closed.
at com.google.common.base.Preconditions.checkState(Preconditions.java:145)
at org.apache.hive.spark.client.rpc.Rpc.call(Rpc.java:277)
at org.apache.hive.spark.client.SparkClientImpl$ClientProtocol.run(SparkClientImpl.java:584)
at org.apache.hive.spark.client.SparkClientImpl.run(SparkClientImpl.java:151)
at org.apache.hadoop.hive.ql.exec.spark.status.impl.RemoteSparkJobStatus.getSparkJobInfo(RemoteSparkJobStatus.java:147)
通过Yarn的ResourceManager可以看到错误日志如下:
[plain] view plain copy
Diagnostics: Container [pid=31880,containerID=container_1528360247633_0013_01_000001] is running beyond physical memory limits.
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留给操作系统:
[html] view plain copy
注:配置在yarn-site.xml中
2.调整单个容器可申请的最小内存
调整参数为yarn.scheduler.minimum-allocation-mb,该值和第1点谈到的单个容器的最大可存,可用于测算单台服务器可运行的最多的容器数,现将其值调为2G:
[html] view plain copy
注:配置在yarn-site.xml中
3.提升Map和Reduce可使用的内存
在当前示例中,给每个容器设置了2G的内存(通过参数yarn.scheduler.minimum-allocation-mb=2048),因此我们给Map任务容器分配了4G的内存,给Reduce任务容器分配了8G的内存:
[html] view plain copy
注:配置在mapred-site.xml中
4.优化Map和Reduce任务的JVM内存
每个Container都会运行Map和Reduce任务运行,因而JVM堆大小应设置为低于上面定义的Map和Reduce内存,以便它们位于由YARN分配的Container内存的范围内。
[html] view plain copy
注:配置在mapred-site.xml中
5、优化虚拟内存的占比
每个Map和Reduce任务的虚拟内存(物理+分页内存)上限由每个允许YARN容器的虚拟内存比决定。 这由以下配置设置,默认值为2.1:
[html] view plain copy
注:配置在yarn-site.xml中
如果你想了解大数据的学习路线,想学习大数据知识以及需要免费的学习资料可以加群:784789432.欢迎你的加入。每天下午三点开直播分享基础知识,晚上20:00都会开直播给大家分享大数据项目实战。