1
我需要在Apache Hive中掛鉤自定義執行鉤子。請讓我知道如果有人知道如何做到這一點。Hive執行鉤子
我使用的當前環境中給出如下:
的Hadoop:Cloudera的版本4.1.2 操作系統:Centos的
感謝, 阿倫
我需要在Apache Hive中掛鉤自定義執行鉤子。請讓我知道如果有人知道如何做到這一點。Hive執行鉤子
我使用的當前環境中給出如下:
的Hadoop:Cloudera的版本4.1.2 操作系統:Centos的
感謝, 阿倫
有幾種類型取決於掛鉤您想在哪個階段注入您的自定義代碼:
如果你運行一個腳本的處理流程看起來像如下:
HiveDriverRunHook.preDriverRun()
HiveConf.ConfVars.HIVE_DRIVER_RUN_HOOKS
)AbstractSemanticAnalyzerHook.preAnalyze()
HiveConf.ConfVars.SEMANTIC_ANALYZER_HOOK
)AbstractSemanticAnalyzerHook.postAnalyze()
HiveConf.ConfVars.SEMANTIC_ANALYZER_HOOK
)ExecuteWithHookContext.run()
HiveConf.ConfVars.PREEXECHOOKS
)ClientStatsPublisher.run()
被稱爲發佈的統計數據HiveConf.ConfVars.CLIENTSTATSPUBLISHERS
)ExecuteWithHookContext.run()
HiveConf.ConfVars.ONFAILUREHOOKS
)ExecuteWithHookContext.run()
HiveConf.ConfVars.POSTEXECHOOKS
)HiveDriverRunHook.postDriverRun()
HiveConf.ConfVars.HIVE_DRIVER_RUN_HOOKS
)對於每個鉤子,我指出了您必須實現的接口。在括號 中有相應的conf。支柱。鍵,您必須設置爲在腳本的開頭註冊 類。 E.g:設置執行前鉤(工作流程的第9級)
HiveConf.ConfVars.PREEXECHOOKS -> hive.exec.pre.hooks :
set hive.exec.pre.hooks=com.example.MyPreHook;
不幸的是這些功能是不是真的記錄,但你總是可以窺視Driver類看掛鉤的計算順序。
備註:我認爲這裏蜂巢0.11.0,我不認爲Cloudera的分佈 不同(太多)
非常感謝@Lorand彎曲。它確實有助於實現:) –
只是爲了記錄,HiveDriverRunHook不適用於大多數已部署的配置單元版本:https://issues.apache.org/jira/browse/HIVE-14343 – tribbloid