3

aws emr 4.8ハイブ 1.0 と tez 0.8のクラスターでいくつかのハイブ スクリプトを実行しています。

私の構成は次のようになります。

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;

そして、私のグローバル設定は次のとおりです。

hadoop-env.export   HADOOP_HEAPSIZE 4750
hadoop-env.export   HADOOP_DATANODE_HEAPSIZE    4750
hive-env.export HADOOP_HEAPSIZE 4750

スクリプトの実行中に、次のエラーが発生します。

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.

このエラーをグーグルで調べたところ、セットtez.task.resource.memory.mbが物理メモリの制限を変更することを読みましたが、明らかに間違っていました。私は何が欠けていますか?

4

4 に答える 4

2

Tez コンテナーのサイズを、YARN コンテナーのサイズ (4GB) の倍数よりも大きくなるように設定します。

SET hive.tez.container.size=4096MB

「hive.tez.container.size」と「hive.tez.java.opts」は、Hive の Tez メモリ設定を変更するパラメーターです。「hive.tez.container.size」が「-1」(デフォルト値)に設定されている場合、「mapreduce.map.memory.mb」の値が選択されます。「hive.tez.java.opts」が指定されていない場合、「mapreduce.map.java.opts」設定に依存します。したがって、Tez 固有のメモリ設定がデフォルト値のままの場合、メモリ サイズは mapreduce マッパーのメモリ設定「mapreduce.map.memory.mb」から選択されます。

https://documentation.altiscale.com/memory-settings-for-tez

詳細情報Tez 構成Tez メモリ チューニング

注: Ambari で MB 単位で設定

于 2016-10-26T04:19:57.773 に答える
0
Set hive.tez.container.size=6656
Set hive.tez.java.opts=-Xmx4g
于 2016-10-26T02:07:48.683 に答える