Impala是對PB級巨量資料進行快速、即時的互動式SQL查詢引擎。本文為您介紹如何在DataWorks建立EMR Impala節點並進行資料開發。
前提條件
已建立阿里雲EMR叢集,並註冊EMR叢集至DataWorks。操作詳情請參見新版資料開發:綁定EMR計算資源。
(可選,RAM帳號需要)進行任務開發的RAM帳號已被添加至對應工作空間中,並具有開發或空間管理員(許可權較大,謹慎添加)角色許可權,新增成員的操作詳情請參見為工作空間增加空間成員。
如果您使用的是主帳號,則可忽略該添加操作。
已在DataWorks配置Hive資料來源並通過連通性測試,詳情請參見資料來源管理。
使用限制
僅支援使用Serverless資源群組(推薦)或獨享調度資源群組運行該類型任務。
EMR Impala僅支援在舊版資料湖叢集(Hadoop)的計算資源類型上運行,且DataWorks已不支援新綁定Hadoop類型的叢集,但已經綁定的Hadoop叢集仍然可以繼續使用。
操作步驟
在EMR Impala節點編輯頁面,執行如下開發操作。
開發SQL代碼
在SQL編輯地區開發工作單位代碼,您可在代碼中使用${變數名}的方式定義變數,並在節點編輯頁面右側調度配置的調度參數中為該變數賦值。實現調度情境下代碼的動態傳參,調度參數使用詳情,請參考調度參數支援格式,樣本如下。
SHOW TABLES ; CREATE TABLE IF NOT EXISTS userinfo ( ip STRING COMMENT'IP地址', uid STRING COMMENT'使用者ID' )PARTITIONED BY( dt STRING ); ALTER TABLE userinfo ADD IF NOT EXISTS PARTITION(dt='${bizdate}'); --可以結合調度參數使用。 SELECT * FROM userinfo ;說明SQL語句最大不能超過130KB。
(可選)配置進階參數
您可在節點右側調度配置的中配置下表特有屬性參數。
說明不同類型EMR叢集可配置的進階參數存在部分差異,具體如下表。
更多開源Spark屬性參數,可在節點右側調度配置的中進行配置。
DataLake叢集/自訂叢集:EMR on ECS
進階參數
配置說明
FLOW_SKIP_SQL_ANALYZE
SQL語句執行方式。取值如下:
true:表示每次執行多條SQL語句。false(預設值):表示每次執行一條SQL語句。
說明該參數僅支援用於資料開發環境測試回合流程。
DATAWORKS_SESSION_DISABLE
適用於開發環境直接測試回合情境。取值如下:
true:表示每次運行SQL語句都會建立一個JDBC Connection。false(預設值):表示使用者在一個節點裡運行不同的SQL語句時會複用同一個JDBC Connection。
說明該參數配置為
false時不會列印Hive的yarn applicationId,如需列印yarn applicationId,請將該參數設定為true。priority
優先順序,預設為1。
queue
提交作業的調度隊列,預設為default隊列。關於EMR YARN說明,詳情請參見隊列基礎配置。
Hadoop叢集:EMR on ECS
進階參數
配置說明
FLOW_SKIP_SQL_ANALYZE
SQL語句執行方式。取值如下:
true:表示每次執行多條SQL語句。false(預設值):表示每次執行一條SQL語句。
說明該參數僅支援用於資料開發環境測試回合流程。
USE_GATEWAY
設定本節點提交作業時,是否通過Gateway叢集提交。取值如下:
true:通過Gateway叢集提交。false(預設值):不通過Gateway叢集提交,預設提交到header節點。
說明如果本節點所在的叢集未關聯Gateway叢集,此處手動設定參數取值為
true時,後續提交EMR作業時會失敗。執行SQL任務
在調試配置的計算資源中,選擇配置計算資源和DataWorks資源群組。
說明您還可以根據任務執行所需的資源情況來調度 CU。預設CU為
0.25。訪問公用網路或VPC網路環境的資料來源需要使用與資料來源測試連通性成功的調度資源群組。詳情請參見網路連通方案。
在工具列的參數對話方塊中選擇已建立的Hive資料來源,單擊運行SQL任務。
說明使用EMR Impala節點查詢資料時,返回的查詢結果最大支援10000條資料,並且資料總量不能超過10MB。
單擊儲存節點任務。
如需定期執行節點任務,請根據業務需求配置調度資訊。配置詳情請參見節點調度。
節點任務配置完成後,需對節點進行發布。詳情請參見節點/工作流程發布。
任務發布後,您可以在營運中心查看周期任務的運行情況。詳情請參見營運中心入門。
常見問題
Q:出現Impala JDBC Url is Empty?

A:請確保叢集已添加Impala服務。Impala服務僅對存量使用者開放。
Q:節點運行出現連線逾時?

A:請確保資源群組和叢集的網路聯通。請進入計算資源的列表頁,單擊資源初始化,在彈窗中單擊再次初始化,確保成功初始化。

