我已经在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和here- 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位。使用lxc容器以完全分布式模式部署Hadoop。
Zipkin的
core-site.xml
(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>
最佳答案
感谢您试用HTrace!抱歉,版本问题现在是如此困扰。
使用Cloudera的CDH5.5 Hadoop发行版和更高版本中的版本配置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,因此希望将来可以最大程度地减少损坏。
关于java - Hadoop 2.7.3中的HTrace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40694955/