2016-12-16 54 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)