E-MapReduce集群默認在Spark2和Spark3服務上集成了EMR-HOOK。EMR-HOOK可以收集作業的SQL信息,例如數據血緣、訪問頻次等。通過EMR-HOOK,您可以使用數據湖構建(DLF)的數據概況,以統計表和分區的訪問次數,您也可以使用DataWorks來管理數據血緣。本文為您介紹如何配置Spark服務的EMR-HOOK。
前提條件
已創建DataLake或自定義集群,且選擇了Spark服務,詳情請參見創建集群。
使用限制
EMR-HOOK不支持在通過EMR-CLI自定義部署的Gateway環境下收集作業相關的SQL信息。
EMR-5.16.0之前版本、EMR-3.50.0之前版本,不支持在Gateway上同步hive.exec.post.hooks(Hive)和spark.sql.queryExecutionListeners(Spark)參數;EMR-5.16.0及之后版本、EMR-3.50.0及之后版本,不僅實現了上述參數在Gateway節點上的同步,還引入了新的參數hive_aux_jars_path_gateway_only,允許您在Gateway節點上獨立使用自定義擴展的JAR文件來增強功能。
注意事項
EMR-5.14.0之前版本、EMR-3.48.0之前版本,EMR-HOOK默認開啟。
EMR-5.14.0及之后版本、EMR-3.48.0及之后版本,EMR-HOOK默認關閉,需要手動開啟。
操作步驟
進入集群服務頁面。
在頂部菜單欄處,根據實際情況選擇地域和資源組。
在EMR on ECS頁面,單擊目標集群操作列的集群服務。
配置EMR-HOOK。
在集群服務頁面,單擊Spark2或Spark3服務區域的配置。
在配置頁面的相應頁簽下,可以編輯或新增如下EMR-HOOK的配置項。
頁簽
參數
說明
spark-defaults.conf
spark.sql.queryExecutionListeners
監聽Spark服務執行的SQL信息,用于數據血緣和訪問頻次。
開啟EMR-HOOK時,參數值填寫為
com.aliyun.emr.meta.spark.listener.EMRQueryLogger
。關閉EMR-HOOK時,參數值置為空。
hive-site.xml
dlf.emrhook.webtracking
是否開啟訪問頻次上報。取值如下:
true:開啟。
false:不開啟。
說明如果關閉EMR-HOOK,則數據湖構建(DLF)控制臺數據表的數據概況頁面將不再顯示當天訪問次數、最近7天訪問次數、最近30天訪問次數的數據。
保存配置。
在配置頁面,單擊保存。
在彈出的對話框中,輸入執行原因,單擊保存。
重啟Spark。
在配置頁面,選擇更多操作> 重啟。
在彈出的對話框中,輸入執行原因,單擊確定。
在確認對話中,單擊確定。
相關文檔
配置Hive服務的EMR-HOOK詳情,請參見Hive使用擴展記錄數據血緣和訪問歷史。