【问题标题】:oozie sqoop action with hive importoozie sqoop 操作与配置单元导入
【发布时间】:2015-02-28 17:06:21
【问题描述】:

我有一个 sqoop 操作,它从 postgres 数据库中提取数据,然后导入到 hive 表中。当我执行 oozie 工作流时,scoop 将数据从 postgres 拉入 HDFS。但它无法将数据导入配置单元表。日志没有任何用处,因为我只是从 oozie Web 控制台 UI 获得主类 [org.apache.oozie.action.hadoop.SqoopMain],退出代码 [1]。我们真的可以在 sqoop 操作中进行配置单元导入吗?还是在 sqoop 导入 HDFS 后我必须单独执行 Hive 操作?

<action name="ads-sqoop-import">
    <sqoop xmlns="uri:oozie:sqoop-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node>
        <configuration>
            <property>
                <name>dbIP</name>
                <value>${dbIP}</value>
            </property>
            <property>
                <name>dbPort</name>
                <value>${dbPort}</value>
            </property>
            <property>
                <name>dbUserName</name>
                <value>${dbUserName}</value>
            </property>
            <property>
                <name>dbPassword</name>
                <value>${dbPassword}</value>
            </property>
            <property>
                <name>hive_db_name</name>
                <value>${hive_db_name}</value>
            </property>
            <property>
                <name>scoop_target_dir</name>
                <value>${scoop_target_dir}</value>
            </property>
            <property>
                <name>dbName</name>
                <value>${dbName}</value>
            </property>
        </configuration>
        <command>import --connect jdbc:postgresql://${dbIP}:${dbPort}/${dbName} --username ${dbUserName} --password &quot;${dbPassword}&quot; --table ads --hive-table ${hive_db_name}.ads --create-hive-table --hive-import -m 1 --target-dir ${scoop_target_dir}/ads
        </command>
    </sqoop>
    <ok to="orders-sqoop-import"/>
    <error to="kill"/>
</action>

【问题讨论】:

  • 如果您在作业跟踪器(或纱线)中找到 sqoop 的 oozie:launcher 作业,您应该能够找到该作业的 strout。你会知道这是正确的工作,因为它会说它是成功的,即使它失败了(这是一个 oozie 机制)。
  • 嗨 Anand 我面临类似的问题,但我已经添加了 hive-site xml 我的纱线日志显示 sqoop.hive.HiveImport - 原因:java.io.FileNotFoundException:文件不存在:hdfs :/user/yarn 如果你能提出一些建议
  • @chhayavishwakarma 你能发一些日志吗?

标签: hive sqoop oozie


【解决方案1】:

我必须将 hive-site.xml 的位置添加到 sqoop 操作中才能使 hive 导入工作。 Oozie 需要配置单元默认值,例如元存储目录等,才能将数据导入配置单元。在全局部分下添加以下代码,或者在要执行配置单元功能的任何位置添加操作。将 hive-site.xml 复制到 HDFS 并包含它。

<job-xml>hdfs://namenode/hive-site.xml</job-xml>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    相关资源
    最近更新 更多