2016-11-19 71 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。希望這個幫助!