【问题标题】:How do I drop a Hive database through a Hive Action in an Oozie Workflow?如何通过 Oozie 工作流中的 Hive 操作删除 Hive 数据库?
【发布时间】:2016-02-05 05:03:12
【问题描述】:

我有一个 Hive 数据库,它由一个外部表(指向 /user/hive/warehouse 中的一个位置)和一个普通表组成。我正在使用以下命令删除数据库:

如果存在则删除数据库 DBNAME 级联;

当我在 hive 命令行上运行此命令时,该命令有效,但当我通过从 Oozie 工作流中的 Hive 操作调用的 Hive .ql 脚本运行它时无效。

任何线索都会有所帮助。

【问题讨论】:

  • 你试过用hive-e "drop database if exists dbname cascade;"执行shell脚本吗?
  • oozie 日志中的错误是什么?
  • @RajeshN - 谢谢,会试试的。
  • @RamananR - 我无权访问 Oozie 日志 :( Yarn 日志没有显示任何错误。
  • 能否打印 Hive 操作的代码?

标签: database hadoop hive oozie


【解决方案1】:

您为什么不创建一个完全执行此操作的脚本,将其保存在 HDFS 上,然后从 Hive 或 HiveServer2 操作中调用它?

 <action name="clean_temporary_tables">
    <hive2 xmlns="uri:oozie:hive2-action:0.1">
        <jdbc-url>${jdbcURL}</jdbc-url>
        <script>${hiveScript_999}</script>
        <param>TMP_TABLE=${tmp_table}</param>
    </hive2>
    <ok to="failure_email"/>
    <error to="failure_email"/>
</action>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    相关资源
    最近更新 更多