2015-11-04 1 views
1

При попытке записи в HDFS от искры в Цеппелина, я получаю эту ClassNotFoundException для org.apache.hadoop.mapred.DirectFileOutputCommitter:Исключение при попытке записать файл в HDFS из Зеппелин

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) 

При поиске этого класса я даже не могу его найти. Ближайший я могу найти org.apache.hadoop.mapred.FileOutputCommitter in Hadoop.

Я использую фиксацию 18c8c9ea512a0d87699a73e2ca26192d03748661 (окт. 9) от Zeppelin, Spark 1.5.0 на YARN и Hadoop 2.6.

ответ

0

У меня была та же проблема. Посмотрел этот файл в «hasoop-mapreduce-client-core.X.X.X.jar», но не смог найти его в банке.

Я исправил проблему, добавив org.apache.hadoop.mapred.DirectFileOutputCommitter в мой репозиторий. Источник этого файла находится здесь: https://gist.github.com/apivovarov

Не уверен, в чем причина этой проблемы. Копаем в нее. Будет обновляться здесь, как только у меня будет ответ.