Hadoop 从命令行获取ooziesqoop操作的日志

Hadoop 从命令行获取ooziesqoop操作的日志,hadoop,command-line-interface,cloudera,sqoop,oozie,Hadoop,Command Line Interface,Cloudera,Sqoop,Oozie,我有一个带有sqoop操作的oozie工作流,我希望从命令行获取这些sqoop操作的日志(stdout) 这就是我认为有效的方法: oozie作业-信息0000002-170819062150496-oozie-oozi-W 它打印操作的作业ID: -----------------------------------------------------------------------------------------------------------------------------

我有一个带有sqoop操作的oozie工作流,我希望从命令行获取这些sqoop操作的日志(stdout)

这就是我认为有效的方法:

oozie作业-信息0000002-170819062150496-oozie-oozi-W

它打印操作的作业ID:

------------------------------------------------------------------------------------------------------------------------------------
0000002-170819062150496-oozie-oozi-W@sqoop-import-shard_1                     OK        job_1503124774831_0013 SUCCEEDED  -         
------------------------------------------------------------------------------------------------------------------------------------
0000002-170819062150496-oozie-oozi-W@sqoop-import-shard_2                     OK        job_1503124774831_0014 SUCCEEDED  -         
------------------------------------------------------------------------------------------------------------------------------------
然后我使用:

映射作业-记录作业\u 150312474831\u 0013

但这只提供了mapreduce日志。Sqoop标准输出日志,我可以从
Hue
中看到,如处理的记录数,--最后一个值(在增量情况下)不可用

有办法得到它们吗

编辑:添加sqoop配置和工作流文件

sqoop_import_config.txt

import
--connect
${connect}
--username
${username}
--password
${pwd}
--hive-delims-replacement
\001
--fields-terminated-by
\003
--null-string
\\N
--null-non-string
\\N
--target-dir
/data/${table}/${shard}
--query
SELECT ${columns} from ${table} WHERE $CONDITIONS
--split-by
id
--boundary-query
select min(id), max(id) from ${table}
--m
${numMappers}
--incremental
lastmodified
--last-value
${lastValue}
--check-column
updated_at
--merge-key
id
workflow.xml

<workflow-app name="${tableName}_${type}_Sqoop" xmlns="uri:oozie:workflow:0.5">
    <credentials>
        <credential name="hive2" type="hive2">
            <property>
                <name>hive2.jdbc.url</name>
                <value>${hive2JdbcUrl}</value>
            </property>
            <property>
                <name>hive2.server.principal</name>
                <value>${hive2MetastorePrincipal}</value>
            </property>
        </credential>
    </credentials>
    <start to="sqoop-import-fork"/>
    <kill name="Kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <fork name="sqoop-import-fork">
    <path start="sqoop-import-shard_1"/>
    <path start="sqoop-import-shard_2"/></fork>

    <action name="sqoop-import-shard_1"> <sqoop xmlns="uri:oozie:sqoop-action:0.2"><arg>--options-file</arg> <arg>${tableName}_shard_1_import.txt</arg></sqoop> <ok to="sqoop-import-join"/> <error to="email-b1f2"/> </action>
    <action name="sqoop-import-shard_2"> <sqoop xmlns="uri:oozie:sqoop-action:0.2"><arg>--options-file</arg> <arg>${tableName}_shard_2_import.txt</arg></sqoop> <ok to="sqoop-import-join"/> <error to="email-b1f2"/> </action>
    <action name="move-data" cred="hive2">
    . . .

hive2.jdbc.url
${hive2JdbcUrl}
hive2.server.principal
${hive2MetastorePrincipal}
操作失败,错误消息[${wf:errorMessage(wf:lastErrorNode())}]
--选项文件${tableName}\u shard\u 1\u import.txt
--选项文件${tableName}\u shard\u 2\u import.txt
. . .

在查看了
映射作业帮助后,我们找到了获取标准输出日志的方法

从oozie处收到作业id后,使用:

oozie作业-信息0000002-170819062150496-oozie-oozi-W

使用以下命令获取作业的尝试列表:

mapred作业-列出尝试ID

  • 任务类型的有效值为REDUCE MAP
  • 任务状态的有效值正在运行、已完成
所以我运行:
mapred job-list-attempt-ids job\u 1503124774831\u 0022 MAP-completed
这给了我
attement\u 1503124774831\u 0022\u m\u 000000\u 0

现在,我可以使用以下方法获取包含sqoop数据的尝试日志:


映射作业-日志作业\u 15031247474831\u 0022尝试\u 15031247474831\u 0022\u m\u000000\u 0
在查看
映射作业帮助后,找到了获取标准日志的方法

从oozie处收到作业id后,使用:

oozie作业-信息0000002-170819062150496-oozie-oozi-W

使用以下命令获取作业的尝试列表:

mapred作业-列出尝试ID

  • 任务类型的有效值为REDUCE MAP
  • 任务状态的有效值正在运行、已完成
所以我运行:
mapred job-list-attempt-ids job\u 1503124774831\u 0022 MAP-completed
这给了我
attement\u 1503124774831\u 0022\u m\u 000000\u 0

现在,我可以使用以下方法获取包含sqoop数据的尝试日志:


mapred作业-记录作业\u 15031247474831\u 0022尝试\u 15031247474831\u 0022\u m\u000000\u 0

您可以发布Sqoop命令并添加
oozie workflow.xml
@sandepsing吗。希望能有帮助。您是否遇到过这样一个用例,需要从命令行获取sqoop操作日志?是的,但我使用的是shell操作。让我试试Sqoop操作。你能发布你的Sqoop命令并添加
oozie workflow.xml
@sandepsing吗。希望能有帮助。您是否遇到过这样一个用例,需要从命令行获取sqoop操作日志?是的,但我使用的是shell操作。让我试试Sqoop操作。