【问题标题】:How to output Hadoop EL counters from streaming Map Reduce job triggered by Oozie?如何从 Oozie 触发的流式 Map Reduce 作业中输出 Hadoop EL 计数器?
【发布时间】:2015-10-22 19:00:01
【问题描述】:

我正在使用 Oozie 触发流式 MapReduce 作业,我想为此收集以下 Hadoop EL 常量:

MAP_IN:Hadoop 映射器输入记录计数器名称。

MAP_OUT:Hadoop 映射器输出记录计数器名称。

REDUCE_IN:Hadoop reducer 输入记录计数器名称。

REDUCE_OUT:Hadoop reducer 输入记录计数器名称。

我看到这些可以使用

${ hadoop:counters('mr-action')[RECORDS][REDUCE_OUT]}

但是,我不知道如何将这些值通过 STDOUT 输出回屏幕,或者输出到我启动 Oozie 工作流程的服务器上 HDFS 中的文件。
我尝试将这些值传递给 shell 操作,然后回显/附加到文件,但我相信这是在数据节点上处理的,所以我看不到该输出。正如一个线程所建议的那样,我还尝试将 oozie.action.external.stats.write 设置为 true,然后调用

oozie job -info -verbose

但我仍然没有看到这些计数器显示在外部统计字段下。有关如何获得这些计数器输出的任何建议都会非常有帮助。

【问题讨论】:

    标签: hadoop oozie hadoop-streaming


    【解决方案1】:

    在我做 oozie job -info job-id -verbose 之前,它没有显示外部统计信息。关键是进行以下更改。

    在 workflow.xml 文件中,在我要为其收集计数器的操作下,将以下内容添加到配置中:

    <action name="mr-action">
        <configuration>
            <property>
                <name>oozie.action.external.stats.write</name>
                <value>true</value>
            </property>
        </configuration>
    </action>
    

    然后,在作业运行后,在命令行中执行以下操作:

    oozie job -info job-id@mr-action -verbose

    这给了我我正在寻找的计数器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多