我在Ubuntu 14.04上成功地将Zipkin与2.6.0 x32中的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 / exists,有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容器。
Zipkin的{p>core-site.xml
(Zipkin params 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>
答案 0 :(得分:0)
感谢您试用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,因此希望将来最大限度地减少破损。
答案 1 :(得分:0)
确切地说,在代码中,我看到配置密钥的前缀是dfs.htrace
,而不是hadoop.htrace
。在dfsclient中,它是dfs.client.htrace
。您可以将前缀更改为dfs.htrace
,然后重新启动群集并使其生效。代码在类org.apache.hadoop.tracing.SpanReceiverHost
中。希望这有帮助!