最近新搭建了一套cdp测试集群,在hue界面测试hive语句时,建表正常,但是出现插入数据失败问题
报错如下:
Error while compiling statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex’s TaskResource is beyond the cluster container capability,Vertex=vertex_1710760460432_0005_1_00 [Map 1], Requested TaskResource=<memory:4096, vCores:1>, Cluster MaxContainerCapability=<memory:3348, vCores:4>
编译语句时出错:失败:执行错误,从org.apache.hadoop.hive.ql.exec.tez返回代码2。TezTask。Vertex的任务资源超出了集群容器的能力,Vertex=Vertex_1710760432_005_1_00[映射1],请求的任务资源=<memory:4096,vCores:1>,集群最大容器容量=<memory:3348,vCore:4>
解决办法:
修改或者优化cdp集群中yarn参数
优化yarn.nodemanager.resource.cpu-vcores虚拟core
根据自身集群单个服务器进行设置
根据单个节点的核数确定,如果节点为4核16G,那就填4
<!--调整yarn单个容器允许分配的最大最小内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<!-- 调整yarn容器允许管理的物理内存大小 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
增加环境变量,关闭yarn对物理内存和虚拟内存的限制检查
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
修改后,重启集群使配置生效