Hive 执行钩子

2024-01-12

我需要在 Apache Hive 中挂钩自定义执行挂钩。如果有人知道该怎么做,请告诉我。

我当前使用的环境如下:

Hadoop:Cloudera 版本 4.1.2 操作系统:Centos

谢谢, 阿伦


有多种类型的挂钩,具体取决于您要在哪个阶段注入自定义代码:

  • 驱动程序运行挂钩(前/后)
  • 语义分析器挂钩(前/后)
  • 执行挂钩(前/失败/后)
  • 客户统计发布者

如果运行脚本,处理流程如下所示:

  1. Driver.run() 接受命令
  2. HiveDriverRunHook.preDriverRun()
    (HiveConf.ConfVars.HIVE_DRIVER_RUN_HOOKS)
  3. Driver.compile()开始处理命令:创建抽象语法树
  4. AbstractSemanticAnalyzerHook.preAnalyze()
    (HiveConf.ConfVars.SEMANTIC_ANALYZER_HOOK)
  5. 语义分析
  6. AbstractSemanticAnalyzerHook.postAnalyze()
    (HiveConf.ConfVars.SEMANTIC_ANALYZER_HOOK)
  7. 创建并验证查询计划(物理计划)
  8. Driver.execute() :准备运行作业
  9. ExecuteWithHookContext.run()
    (HiveConf.ConfVars.PREEXECHOOKS)
  10. ExecDriver.execute() 运行所有作业
  11. 对于每个 HiveConf.ConfVars.HIVECOUNTERSPULLINTERVAL 间隔的每个作业:
    ClientStatsPublisher.run()被要求发布统计数据
    (HiveConf.ConfVars.CLIENTSTATSPUBLISHERS)
    如果任务失败:ExecuteWithHookContext.run()
    (HiveConf.ConfVars.ONFAILUREHOOKS)
  12. 完成所有任务
  13. ExecuteWithHookContext.run()
    (HiveConf.ConfVars.POSTEXECHOOKS)
  14. 返回结果之前HiveDriverRunHook.postDriverRun()
    ( HiveConf.ConfVars.HIVE_DRIVER_RUN_HOOKS)
  15. 返回结果。

对于每个钩子,我都指出了您必须实现的接口。括号内 有相应的conf。支柱。您必须设置密钥才能注册 脚本开头的类。 例如:设置 PreExecution 挂钩(工作流程的第九阶段)

HiveConf.ConfVars.PREEXECHOOKS -> hive.exec.pre.hooks :
set hive.exec.pre.hooks=com.example.MyPreHook;

不幸的是,这些功能并没有真正记录下来,但您可以随时查看Driver http://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java类来查看钩子的评估顺序。

备注:我这里假设 Hive 0.11.0,我不认为 Cloudera 发行版 不同(太多)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive 执行钩子 的相关文章

随机推荐

  • 使用要删除的列的参数从 R data.table 中删除多列

    我正在尝试以类似的方式操作多个 data tables 并且想编写一个函数来完成此操作 我想传递一个参数 其中包含将执行操作的列列表 当列的向量声明位于 运算符的左侧时 此方法可以正常工作 但如果它是较早声明的 或传递到函数中 则效果不佳
  • Bootstrap:居中 col-md-5?

    我觉得这是一个很奇怪的问题 但我似乎无法在网上找到解决方案 如果我有一个col md 5 我似乎无法将其居中 据我了解网格系统 如果我选择列大小 1 12 为了控制列的位置 我使用 col offset 所以如果我有一个col md 4 我
  • Dart 运行时检查 switch 语句中的类型

    我在尝试检查 Dart 中某些对象的运行时类型时发现了一些奇怪的行为 让我们举一个简单的例子 main List
  • 如何以编程方式将最小化的无模式 WinForm 带到之前显示的位置?

    为了在单击事件时将无模式 Windows 窗体恢复到其先前的位置 我尝试使用下面所示的代码 但它不起作用 如果我遗漏了什么 请告诉我 public void SetFocus this Focus this BringToFront if
  • MVC 3 从 web.config 中的 AppSettings 获取值

    在普通的 ASP NET Web 表单站点中 我会使用 web configs appsettings 将应用程序设置数据添加到站点 但是 在使用 MVC 3 时 我无法以这种方式检索设置值 首先 有 2 个 web config 文件 第
  • wx.TextCtrl(或底层 GTK+)的多线程问题

    我正在开发一个GUI来启动外部长期运行的后台程序 该后台程序可以通过 stdin 给出输入命令 并使用 stdout 和 stderr 来保持打印输出和错误消息 我在 GUI 中使用 wx TextCtrl 对象来提供输入和打印输出 我当前
  • 允许图像缩小,但不允许拉伸

    我的网站有 4 000 多个页面 每页有 10 个或更多不同大小的 jpeg 图像 我正在努力使该网站对移动设备更加友好 为此 我希望能够缩小图像以适应较小的屏幕 我知道我可以做这样的事情来表明图像可以缩小 img bodyImg widt
  • 下载图像并在 BlackBerry 上显示

    我必须开发一个网址 其中涉及从网址下载图像并在黑莓刺激器中显示 任何人都可以在这方面帮助我吗 此代码将连接给定的 URL 并返回 Bitmap 对象 public static Bitmap connectServerForImage St
  • LINQ 表达式> 相当于 .Contains()

    有谁知道如何使用 Linq 表达式创建 Contains string 函数 甚至创建谓词来完成此操作 public static Expression
  • 如何仅使用 CSS 制作选项卡? [复制]

    这个问题在这里已经有答案了 我正在寻找像这样的选项卡系统jQuery 选项卡 http jqueryui com tabs 用户可以在不同的面板之间切换以查看不同的内容 但是 我需要在不使用 JavaScript 的情况下完成此操作 以便未
  • C/C++ 是否有允许任意精度指数的任意精度浮点库?

    我正在寻找 C C 的任意精度浮点库 首选普通 C 我需要任意精度的指数 GMP 和 MPFR 使用固定大小的指数 因此它们不符合条件 我有一些解决方法的想法 但我更喜欢开箱即用的解决方案 如果指数精度可以自动调整以防止无穷大值 那将是一个
  • Django DRF,如何使用 DRF 操作正确注册自定义 URL 模式

    背景 我有一个定义了多个自定义操作的 ModelViewSet 我正在使用我的默认路由器urls py注册 URL 现在 我的视图使用默认创建的路由 例如 images images pk 为了让用户能够使用他们熟悉的资源名称来使用 API
  • Matlab 中 += 相当于什么?

    在Matlab中是否可以增加变量的值而不在语句的右侧重新声明它 AFAIK MATLAB 中没有这样的东西 这是可以理解的 http groups google com group comp soft sys matlab browse f
  • ForEach-Object -Parallel 参数集无法解析

    使用 powershell 并执行以下操作时本文 https devblogs microsoft com powershell powershell foreach object parallel feature 运行以下示例会引发错误
  • ColdFusion 并从 MySQL 获取数据

    我正在 CF 网站上工作 需要从 MySQL 表中获取数据 我可以很好地创建 CFQuery 并检查返回的记录 但如何获取返回的记录并循环它们并从每行中的特定字段获取数据 我可以写 while if end if 等 我只是不记得如何访问数
  • 指向索引处向量的指针与迭代器

    我有一个矢量 myvec我在代码中使用它来保存内存中的对象列表 我在 正常 向量中保留一个指向当前对象的指针C时尚通过使用 Object pObj myvec index 如果 myvec 没有变得足够大以至于无法在某个过程中移动 那么这一
  • 使用 NodeJS 的 IExpress 安装后批处理未立即找到 NPM

    我正在尝试使用 iExpress 在我在 NodeJS 上创建的小脚本上安装依赖项 iExpress 包只需安装 Node 包 msiexec i node msi 然后运行安装后批处理 将 Javascript 放入 UserProfil
  • API 级别 19 上 grantUriPermission 中的 IllegalArgumentException

    下面这行代码 context getApplicationContext grantUriPermission packageName uri Intent FLAG GRANT PERSISTABLE URI PERMISSION 在 A
  • 为什么 mypy 拒绝我的“混合联合”类型声明?

    While 解决 Python 聊天中的半相关问题 https chat stackoverflow com transcript message 49920836 49920836 我在 mypy 中发现了一些我不理解的行为 from t
  • Hive 执行钩子

    我需要在 Apache Hive 中挂钩自定义执行挂钩 如果有人知道该怎么做 请告诉我 我当前使用的环境如下 Hadoop Cloudera 版本 4 1 2 操作系统 Centos 谢谢 阿伦 有多种类型的挂钩 具体取决于您要在哪个阶段注