如何增加 Tez 的容器物理内存?

jac*_*ger 3 hadoop hive amazon-emr apache-tez tez

我一直在aws emr 4.8使用 hive 1.0 和 tez 0.8的集群上运行一些 hive 脚本。

我的配置如下所示:

SET hive.exec.compress.output=true;
SET mapred.output.compression.type=BLOCK;
SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode = nonstrict;
set hive.execution.engine=tez;
set hive.merge.mapfiles=false;
SET hive.default.fileformat=Orc;
set tez.task.resource.memory.mb=5000;
SET hive.tez.container.size=6656;
SET hive.tez.java.opts=-Xmx5120m;
set hive.optimize.ppd=true;
Run Code Online (Sandbox Code Playgroud)

我的全局配置是:

hadoop-env.export   HADOOP_HEAPSIZE 4750
hadoop-env.export   HADOOP_DATANODE_HEAPSIZE    4750
hive-env.export HADOOP_HEAPSIZE 4750
Run Code Online (Sandbox Code Playgroud)

在运行我的脚本时,我收到以下错误:

Container [pid=19027,containerID=container_1477393351192_0007_02_000001] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 1.9 GB of 5 GB virtual memory used. Killing container.
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索这个错误时,我读到 settez.task.resource.memory.mb会改变物理内存限制,但显然我错了。我错过了什么?

Joe*_*e S 5

我经常遇到这个问题。不断变化的

Set hive.tez.container.size=6656;
Set hive.tez.java.opts=-Xmx4g;
Run Code Online (Sandbox Code Playgroud)

没有为我解决问题,但这确实:

set tez.am.resource.memory.mb=4096;
Run Code Online (Sandbox Code Playgroud)


小智 0

Set hive.tez.container.size=6656
Set hive.tez.java.opts=-Xmx4g
Run Code Online (Sandbox Code Playgroud)

  • 那么它与 SET hive.tez.container.size=6656; 有什么不同?设置 hive.tez.java.opts=-Xmx5120m; (2认同)