本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Tez
您可以使用 tez-site
組態分類來設定值以自訂 Tez,這樣做就會設定 tez-site.xml
組態檔案中的設定。如需詳細資訊,請參閱 Apache Tez 文件TezConfigurationhive-site
和 pig-properties
組態分類。範例如下所示。
範例組態
範例:自訂 Tez 根記錄層級並設定 Tez 作為 Hive 和 Pig 的執行引擎
以下所示的範例 create-cluster
命令會建立已安裝 Tez、Hive 和 Pig 的叢集。命令會參考存放於 Amazon S3 的檔案 myConfig.json
,該檔案會指定將 tez.am.log.level
設定為 DEBUG
之 tez-site
分類的屬性,並使用 hive-site
和 pig-properties
組態分類將 Hive 和 Pig 的執行引擎設定為 Tez。
注意
包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。
aws emr create-cluster --release-label
emr-7.5.0
\ --applications Name=Tez Name=Hive Name=Pig --ec2-attributes KeyName=myKey
\ --instance-type m5.xlarge --instance-count 3 \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/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 5.21.0 版及更新EMR版本,您可以覆寫叢集組態,並為執行中叢集中的每個執行個體群組指定其他組態分類。您可以使用 Amazon EMR主控台、 AWS Command Line Interface (AWS CLI) 或 來執行此操作 AWS SDK。如需詳細資訊,請參閱為執行中叢集的執行個體群組提供組態。
Tez 非同步分割開啟
當資料表路徑中有大量的小型檔案,且查詢嘗試讀取所有檔案時,對應於每個分割的各小型檔案都會合併在單一 Tez 分組分割之下。然後,單一映射器會處理單一 Tez 分組分割。此執行為同步發生,因此會逐一處理分組分割下的每個分割。這需要 RecordReader
物件才能同步處理分割。
名稱 | 分類 | 描述 |
---|---|---|
|
|
指定 Tez 用來預先啟動 |
|
|
指定要由常駐程式執行緒預先初始化的 |
Tez 非同步分割開啟的基準測試
我們使用以下環境和組態來對 Tez 非同步分割開啟能力進行基準測試:
-
基準環境 – 具有 1 個主要節點的 Amazon EMR叢集,使用 m5.16xlarge、 和 16 個使用 的核心節點 m5.16xlarge.
-
基準測試組態:若要模擬基準測試的情境 (其中,大量輸入分割位於單一 Tez 分組分割中),請將
tez.grouping.split-count
設定為1
。 -
用於基準測試的資料表:該資料表包含 200 個分割區,每個分割區都包含一個檔案。當該資料表包含 時, 的基準已完成 CSV 檔案,以及當該資料表包含 parquet 檔案時。用於基準測試的 Hive 查詢:從資料表執行
SELECT COUNT(*)
十次,並計算平均執行期。 -
啟用 Tez 非同步分割開啟的組態:如下所示:
-
tez.grouping.split.init.threads
=4
-
tez.grouping.split.init.recordreaders
=10
-
資料集 | 功能已停用 (基準) | 功能已啟用 | 改進 |
---|---|---|---|
CSV dataset |
90.26 秒 |
79.20 秒 |
12.25% |
Parquet dataset |
54.67 秒 |
42.23 秒 |
22.75% |