2016-12-16 51 views
0

我試圖在使用YARN時讓Scalding在Zeppelin上工作。我按照文檔here中的步驟構建瞭解釋器並設置了類路徑覆蓋。當我以本地模式運行時,代碼正確執行。然而,當我通過YARN我的集羣上運行我的作業失敗:ClassNotFoundException在Zeppelin上燙傷在Yarn上管理

Error: java.lang.ClassNotFoundException: cascading.CascadingException 

Error: java.lang.ClassNotFoundException: cascading.tuple.TupleException 

更奇怪的對我來說,我可以進入飛艇和執行:

import cascading.tuple.TupleException 
import cascading.CascadingException 

而這兩者似乎都沒有發現這些類的問題。它只是當我試圖實際使用燙傷(在YARN上),例如將數據加載到一個類型化的管道和傾倒,我得到ClassNotFoundException。任何想法如何調試或解決什麼?

回答

1

它看起來像級聯罐沒有分配到YARN集羣。請將「zeppelin/interpreter/scalding/*」添加到燙印解釋器的args.string屬性中。

下面是我們使用args.string:

-libjars /家庭/飛艇用戶/飛艇/解釋/燙傷/ ,/家庭/飛艇用戶/部署束-201608111417 /庫/ - Dscalding.reducer.estimator.classes = com.twitter.scalding.reducer_estimation.InputSizeReducerEstimator -Delephantbird.use.combine.input.format =真-Delephantbird.combine.split.size = 134217728 --hdfs --repl

tmpjars包含分發到YARN羣集的罐子。您可以使用以下命令查看其內容:

%scalding 
mode.asInstanceOf[Hdfs].conf.get("tmpjars").split(",").foreach(println)