2016-11-19 66 views
0

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

在2.6.0我有这条线在NameNode的日志文件:

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

我在2.7.3没有这样的Namenode日志文件。

因为没有与基普金的成功,我试图用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 /日志/ Hadoop的/存在,上面有777分的权利,但没有...

的TracingFsShell示例编译并使用以下修改运行:

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

因为它可以在Hadoop中的源代码在中找到虽然在线教程不使用该方法签名。 (来源diff

对于两个Hadoop版本java 1.7来说,环境是一样的。另外,hadoop是从源代码编译的,因为Ubuntu 14.04是x32位的。 Hadoop以全分布模式部署,使用lxc容器。

core-site.xml为基普金(基普金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

感谢您试用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,所以希望未来可以尽量减少破坏。

0

准确地说,在代码中,我看到配置密钥的前缀是dfs.htrace,而不是hadoop.htrace。而在dfsclient中,它是dfs.client.htrace。您可以将前缀更改为dfs.htrace,然后重新启动群集并使其生效。代码在org.apache.hadoop.tracing.SpanReceiverHost。希望这个帮助!