【问题标题】:HTrace in Hadoop 2.7.3Hadoop 2.7.3 中的 HTrace
【发布时间】:2016-11-19 16:01:00
【问题描述】:

我已经在 Ubuntu 14.04 的 2.6.0 x32 中成功使用 Zipkin 和 Hadoop Htrace。 现在我想将它与 Hadoop 2.7.3 一起使用,但我什至无法使用这个 hadoop 版本启用 Htrace 跟踪。 2.6.0 中的 HTrace 设置与 2.7.3 不同,可以在此处查看 -2.6.0 和此处 -2.7.3

在 2.6.0 中,我会在 namenode 日志文件中有这一行:

INFO org.apache.hadoop.tracing.SpanReceiverHost: SpanReceiver org.htrace.impl.ZipkinSpanReceiver was loaded successfully.

我在 2.7.3 Namenode 日志文件中没有类似的内容。

由于使用 Zipkin 没有成功,我尝试使用在线教程中描述的 LocalFileSpanReceiver:

    <property>
        <name>hadoop.htrace.sampler</name>
        <value>AlwaysSampler</value>
     </property>
     <property>
        <name>hadoop.htrace.spanreceiver.classes</name>
        <value>org.apache.htrace.impl.LocalFileSpanReceiver</value>
      </property>
      <property>
        <name>hadoop.htrace.local-file-span-receiver.path</name>
        <value>/var/log/hadoop/htrace.out</value>
      </property>

/var/log/hadoop/ 存在,上面有 777 个权限,但是什么都没有……

TracingFsShell 示例通过以下修改编译并运行:

SpanReceiverHost.get(new HdfsConfiguration(),"");

可以在hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/tracing/SpanReceiverHost.java的hadoop源代码中找到它,尽管在线教程没有使用该方法签名。 (来源diff

两个 Hadoop 版本 java 1.7 的环境相同。此外,hadoop 是从源代码编译的,因为 Ubuntu 14.04 是 x32 位。 Hadoop 以完全分布式模式部署,使用 lxc 容器。

core-site.xml 用于 Zipkin(Zipkin 参数 here):

    <property>
        <name>hadoop.htrace.spanreceiver.classes</name>
        <value>org.apache.htrace.impl.ZipkinSpanReceiver</value>
    </property>
    <property>
            <name>hadoop.htrace.zipkin.scribe.hostname</name>
            <value>10.0.3.100</value>
    </property>
    <property>
            <name>hadoop.htrace.zipkin.scribe.port</name>
            <value>9410</value>
    </property>

【问题讨论】:

    标签: java hadoop zipkin htrace


    【解决方案1】:

    感谢您试用 HTrace!抱歉,版本问题现在很痛苦。

    使用 cloudera 的 Hadoop 的 CDH5.5 发行版及更高版本中的版本配置 HTrace 要容易得多。这里有一个很好的描述:http://blog.cloudera.com/blog/2015/12/new-in-cloudera-labs-apache-htrace-incubating/ 如果你想坚持使用 Apache 版本的源代码而不是供应商版本,试试 Hadoop 3.0.0-alpha1。 http://hadoop.apache.org/releases.html

    在 Hadoop 2.6 和 2.7 中提供的 HTrace 库非常陈旧......我们从未将 HTrace 4.x 向后移植到这些分支。它们是稳定性分支,因此跟踪等新功能超出了范围。那里有一些功能,但不多。我建议使用正在积极开发的更新的 HTrace 4.x 库。 HTrace 4.x 分支也有一个稳定的 API,因此希望将来会尽量减少损坏。

    【讨论】:

      【解决方案2】:

      没错,在代码中,我看到配置键的前缀是dfs.htrace,而不是hadoop.htrace。在 dfsclient 中,它是 dfs.client.htrace。您可以将前缀更改为dfs.htrace,然后重启集群即可生效。代码在org.apache.hadoop.tracing.SpanReceiverHost 类中。希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-04
        • 2017-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-08
        相关资源
        最近更新 更多