我们在使用spark引擎执行配置单元查询时遇到错误。
未能执行spark任务,出现异常“org.apache.hadoop.hive.ql.metadata.hiveexception(未能创建spark客户端。)”失败:执行错误,从org.apache.hadoop.hive.ql.exec.spark.sparktask返回代码1
以下属性设置为使用spark作为执行引擎,而不是mapreduce:
set hive.execution.engine=spark;
set spark.executor.memory=2g;
我还尝试更改以下属性。
set yarn.scheduler.maximum-allocation-mb=2048;
set yarn.nodemanager.resource.memory-mb=2048;
set spark.executor.cores=4;
set spark.executor.memory=4g;
set spark.yarn.executor.memoryOverhead=750;
set hive.spark.client.server.connect.timeout=900000ms;
我需要设置其他属性吗?有人能建议吗?
1条答案
按热度按时间kzipqqlq1#
看起来e容器内存比spark executor要求的要小。请将Yarn容器内存和最大值设置为大于spark executor内存+开销。
yarn.scheduler.maximum-allocation-mb最大分配
yarn.nodemanager.resource.memory-mb内存
yarn.nodemanager.resource.memory-mb:
可分配给容器的物理内存量(mb)。这意味着此节点上可以使用的内存量,因此此属性应低于该机器的总内存。
下一步是就如何将可用的总资源分解到容器中提供指导。为此,您可以指定要为容器分配的最小ram单位。
在yarn-site.xml中
yarn.scheduler.maximum-allocation-mb:
它定义了容器可用的最大内存分配(mb)
这意味着rm只能以“yarn.scheduler.minimum allocation mb”的增量向容器分配内存,并且不能超过“yarn.scheduler.maximum allocation mb”,并且不能超过节点的总分配内存。
在yarn-site.xml中
同时转到spark history server:转到spark on Warn service instance>history server>history service webui>单击相关作业>单击相关失败作业>单击该作业的失败阶段,并查找“详细信息”部分。