1

Zeppelin 内で Spark から HDFS に書き込もうとすると、次のメッセージが表示されClassNotFoundExceptionますorg.apache.hadoop.mapred.DirectFileOutputCommitter:

java.lang.RuntimeException: java.lang.RuntimeException:    java.lang.ClassNotFoundException: Class org.apache.hadoop.mapred.DirectFileOutputCommitter not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2106)
at org.apache.hadoop.mapred.JobConf.getOutputCommitter(JobConf.java:725)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopFile$4.apply$mcV$sp(PairRDDFunctions.scala:983)

実行しようとしているコード:

val model = LinearRegressionWithSGD.train(someRDD, numIterations)
val modelPath = "hdfs:///some_path/LinearRegressionWithSGD"
model.save(sc, modelPath)

このクラスを検索しても、見つかりません。最も近いのはHadoop の org.apache.hadoop.mapred.FileOutputCommitter です

Zeppelinのコミット18c8c9ea512a0d87699a73e2ca26192d03748661(10 月 9 日)、YARN 上の Spark 1.5.0、および Hadoop 2.6 を使用しています。

4

1 に答える 1

0

私も同じ問題を抱えていました。「hadoop-mapreduce-client-core.XXXjar」でそのファイルを探しましたが、jar でそれを見つけることができませんでした。

org.apache.hadoop.mapred.DirectFileOutputCommitterリポジトリに追加することで問題を修正しました。そのファイルのソースはここにあります: https://gist.github.com/apivovarov

この問題の根本的な原因はまだわかりません。それを掘り下げます。答えが出たらここで更新します。

于 2016-03-06T10:09:17.100 に答える