翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Tez の設定
Tez をカスタマイズするには、値を設定して、tez-site
設定分類を使用します。これにより、tez-site.xml
設定ファイルが設定されます。詳細については、Apache Tez ドキュメントTezConfigurationhive-site
と pig-properties
設定分類を使用します。次に例を示します。
設定例
例: Tez のルートログインレベルを変更して Tez を Hive や Pig の実行エンジンとして設定する
次に示す create-cluster
コマンドの例では、Tez、Hive、および Pig がインストールされたクラスターを作成します。このコマンドでは、Amazon S3 に格納されているファイル myConfig.json
を参照します。そのファイルは tez-site
分類のプロパティを指定して tez.am.log.level
を DEBUG
に設定し、hive-site
と pig-properties
設定分類を使用して Hive や Pig の実行エンジンを Tez に設定します。
注記
読みやすくするために、Linux 行連続文字 (\) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。
aws emr create-cluster --release-label
emr-7.2.0
\ --applications Name=Tez Name=Hive Name=Pig --ec2-attributes KeyName=myKey
\ --instance-type m5.xlarge --instance-count 3 \ --configurations https://s3.amazonaws.com/mybucket/myfolder/myConfig.json --use-default-roles
myConfig.json
のコンテンツの例を以下に示します。
[ { "Classification": "tez-site", "Properties": { "tez.am.log.level": "DEBUG" } }, { "Classification": "hive-site", "Properties": { "hive.execution.engine": "tez" } }, { "Classification": "pig-properties", "Properties": { "exectype": "tez" } } ]
注記
Amazon EMRバージョン 5.21.0 以降では、クラスター設定を上書きし、実行中のクラスター内のインスタンスグループごとに追加の設定分類を指定できます。これを行うには、Amazon EMRコンソール、 AWS Command Line Interface (AWS CLI)、または を使用します AWS SDK。詳細については、「実行中のクラスター内のインスタンスグループの設定を指定する」を参照してください。
Tez 非同期分割オープニング
テーブルパスに小さなファイルが多数あり、クエリがそれらをすべて読み込もうとすると、個々の分割に対応する、それぞれの小さなファイルが 1 つの Tez グループ分割にまとめられます。次に、単一のマッパーが単一の Tez グループ化分割を処理します。実行は同期的に行われるため、グループ分割の下にある個々の分割は 1 つずつ処理されます。そのためには、RecordReader
オブジェクトは分割を同期的に処理する必要があります。
名前 | 分類 | 説明 |
---|---|---|
|
|
Tez が |
|
|
デーモンスレッドによって事前に初期化されたままにする |
Tez 非同期分割オープンのベンチマーク
Tez の非同期分割オープン機能のベンチマークには、以下の環境と構成を使用しました。
-
ベンチマーク環境 — を使用する 1 つのプライマリノードとm5.16xlarge、 を使用する 16 のコアノードを持つ Amazon EMRクラスターm5.16xlarge。
-
ベンチマーク設定 - 単一の Tez グループ分割に多数の入力分割がある場合のベンチマークシナリオをシミュレートするには、
tez.grouping.split-count
を1
に設定します。 -
ベンチマークに使用されるテーブル - テーブルには 200 個のパーティションがあり、各パーティションには 1 つのファイルが含まれます。ベンチマークは、そのテーブルに CSV ファイルが含まれている場合と、そのテーブルにパーケットファイルが含まれている場合について行われます。ベンチマーク用の Hive クエリ: テーブルから
SELECT COUNT(*)
を 10 回実行し、平均実行時間を取得します。 -
Tez 非同期分割オープンを有効にする設定 - 以下のとおりです。
-
tez.grouping.split.init.threads
=4
-
tez.grouping.split.init.recordreaders
=10
-
データセット | 機能が無効 (ベースライン) | 機能が有効 | 改良点 |
---|---|---|---|
CSV データセット |
90.26 秒 |
79.20 秒 |
12.25% |
Parquet データセット |
54.67 秒 |
42.23 秒 |
22.75% |