hive中MAP capability required is more than the supported max container capability in the cluster报错解决

该错误发生在从hive ods层中向hive es外部表中插入数据时产生,大概率由于该文件数据量过大导致,该文件大小为700m左右。

环境为VMware虚拟机环境,为单台机器模拟的大数据开发环境;

该错误在hive中只是报简单的code2,没有说明具体原因,于是访问了hive historyserver web页面找到该任务,显示killed,点进任务中后看到下面的详细报错原因。

MAP capability required is more than the supported max container capability in the cluster. Killing the Job. mapResourceRequest: <memory:10150, vCores:1> maxContainerCapability:<memory:4096, vCores:32> Job received Kill while in RUNNING state.

翻译:

该错误表明Hive作业(或MapReduce作业)被杀死,原因是作业请求的资源超过了集群中允许的最大容器能力。具体来说,作业要求的内存是 10150 MB,而集群最大容器的内存能力是 4096 MB。

如何解决:

查询chatgpt3.5后,它给出下面的建议:

  1. 调整作业的资源请求: 检查您的Hive作业配置,尤其是与资源请求相关的配置。您可以尝试减少作业的内存需求,以使其适应集群的限制。这通常包括调整mapreduce.map.memory.mbmapreduce.reduce.memory.mb等配置项。

  2. 检查YARN配置: 确保YARN集群的配置与您的作业需求相匹配。您可以通过调整YARN的相关配置项,如yarn.scheduler.maximum-allocation-mbyarn.scheduler.maximum-allocation-vcores来增加集群的最大容器能力。

  3. 调整集群资源管理器的队列设置: 如果您的集群使用了资源管理器(如YARN),您可能需要调整队列的配置,以确保队列的最大容器能力足够大。

  4. 优化作业: 考虑优化您的Hive查询或MapReduce作业,以减少资源需求。这可能包括更有效地使用索引、分区等

  5. 联系集群管理员: 如果您不是集群管理员,您可能需要与负责集群管理的团队或个人联系。他们可以提供有关资源配额和配置的更多信息,并可能协助您解决问题。 

通过hive-site.xml配置文件修改解决了问题:

注意:修改配置文件后请务必重启hive服务(直接kill后重启)

配置文件路径:/export/server/hive/conf/hive-site.xml

配置文件内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

  <!-- Hive配置 -->
  <property>
    <name>hive.auto.convert.join.noconditionaltask.size</name>
    <value>10000000</value>
  </property>

  <!-- MySQL连接信息 -->
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://up01:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>

  <!-- Hive元存储配置 -->
  <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
  </property>
  <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
  </property>

  <!-- Hive Thrift 服务配置 -->
  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>up01</value>
  </property>

  <!-- YARN配置 -->
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>12000</value> <!-- 根据实际情况调整 -->
  </property>
  <property>
    <name>yarn.scheduler.maximum-allocation-vcores</name>
    <value>4</value> <!-- 根据实际情况调整 -->
  </property>

</configuration>


创作不易,如有帮助,请点赞支持,感谢

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值