在 YARN 上管理的 Zeppelin 上带有 Scalding 的 ClassNotFoundException
ClassNotFoundException with Scalding on Zeppelin managed on YARN
我正在尝试让 Scalding 在使用 YARN 的同时在 Zeppelin 上工作。我按照文档 here 中的步骤构建解释器并设置类路径覆盖。当我 运行 处于本地模式时,代码可以正常执行。但是,当我通过 YARN 在我的集群上 运行 时,我的作业失败了:
Error: java.lang.ClassNotFoundException: cascading.CascadingException
或
Error: java.lang.ClassNotFoundException: cascading.tuple.TupleException
更让我感到奇怪的是,我可以进入 Zeppelin 并执行:
import cascading.tuple.TupleException
import cascading.CascadingException
而且两者似乎都能轻松找到 类。只有当我尝试实际使用 scalding(在 YARN 上)时,比如将数据加载到类型化管道并转储时,我才得到 ClassNotFoundException。关于如何调试或修复什么的任何想法?
看起来级联 jar 没有分发到 YARN 集群。请将"zeppelin/interpreter/scalding/*"添加到args.string 属性 烫解器
这是我们使用的args.string:
-libjars /home/zeppelin-user/zeppelin/interpreter/scalding/,/home/zeppelin-user/deploy-bundle-201608111417/libs/ -Dscalding.reducer.estimator.classes=com.twitter.scalding.reducer_estimation.InputSizeReducerEstimator -Delephantbird.use.combine.input.format=true -Delephantbird.combine.split.size=134217728 --hdfs --repl
tmpjars 包含分发到 YARN 集群的 jar。您可以使用以下命令查看其内容:
%scalding
mode.asInstanceOf[Hdfs].conf.get("tmpjars").split(",").foreach(println)
我正在尝试让 Scalding 在使用 YARN 的同时在 Zeppelin 上工作。我按照文档 here 中的步骤构建解释器并设置类路径覆盖。当我 运行 处于本地模式时,代码可以正常执行。但是,当我通过 YARN 在我的集群上 运行 时,我的作业失败了:
Error: java.lang.ClassNotFoundException: cascading.CascadingException
或
Error: java.lang.ClassNotFoundException: cascading.tuple.TupleException
更让我感到奇怪的是,我可以进入 Zeppelin 并执行:
import cascading.tuple.TupleException
import cascading.CascadingException
而且两者似乎都能轻松找到 类。只有当我尝试实际使用 scalding(在 YARN 上)时,比如将数据加载到类型化管道并转储时,我才得到 ClassNotFoundException。关于如何调试或修复什么的任何想法?
看起来级联 jar 没有分发到 YARN 集群。请将"zeppelin/interpreter/scalding/*"添加到args.string 属性 烫解器
这是我们使用的args.string:
-libjars /home/zeppelin-user/zeppelin/interpreter/scalding/,/home/zeppelin-user/deploy-bundle-201608111417/libs/ -Dscalding.reducer.estimator.classes=com.twitter.scalding.reducer_estimation.InputSizeReducerEstimator -Delephantbird.use.combine.input.format=true -Delephantbird.combine.split.size=134217728 --hdfs --repl
tmpjars 包含分发到 YARN 集群的 jar。您可以使用以下命令查看其内容:
%scalding
mode.asInstanceOf[Hdfs].conf.get("tmpjars").split(",").foreach(println)