Lor*_*dig 17
根据您要注入自定义代码的阶段,有几种类型的挂钩:
如果您运行脚本,则处理流程如下所示:
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.支柱.您必须设置的密钥才能在脚本的开头注册该类.例如:设置PreExecution挂钩(工作流程的第9个阶段)
HiveConf.ConfVars.PREEXECHOOKS -> hive.exec.pre.hooks :
set hive.exec.pre.hooks=com.example.MyPreHook;
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这些功能并未真正记录,但您可以随时查看Driver类以查看钩子的评估顺序.
备注:我在这里假设Hive 0.11.0,我不认为Cloudera分布不同(太多)
| 归档时间: |
|
| 查看次数: |
3776 次 |
| 最近记录: |