【发布时间】: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>
【问题讨论】: