2015-10-30 7 views
0

В моем случае использования требуется доступ к файлу, хранящемуся в HDFS, из функции искры. В используемом случае используется пользовательский формат ввода, который не предоставляет никаких данных для функции карты, тогда как функция карты получает входной распад и доступ к данным. Я использую следующий код, чтобы сделать этоПроблема при доступе к файлу HDFS внутри функции искроберической карты

val hConf: Configuration = sc.hadoopConfiguration 
hConf.set("fs.hdfs.impl", classOf[org.apache.hadoop.hdfs.DistributedFileSystem].getName) 
hConf.set("fs.file.impl", classOf[org.apache.hadoop.fs.LocalFileSystem].getName) 
var job = new Job(hConf)   
    FileInputFormat.setInputPaths(job,new Path("hdfs:///user/bala/MyBinaryFile")); 


    var hRDD = new NewHadoopRDD(sc, classOf[RandomAccessInputFormat], 
     classOf[IntWritable], 
     classOf[BytesWritable], 
     job.getConfiguration() 
     )  

    val count = hRDD.mapPartitionsWithInputSplit{ (split, iter) => myfuncPart(split, iter)}.collect() 

В настоящее время, я ничего внутри myfuncPart не делаю. Эта простая возвращает карту, как показано ниже

iter.map { tpl ⇒ (tpl._1, tpl._2.getCapacity) } 

Когда я представить работу вместе с зависимостями, я получаю ошибку ниже

15/10/30 11:11:39 WARN scheduler.TaskSetManager: Lost task 0.0 in stage 0.0 (TID 0, 40.221.94.235): java.io.IOException: No FileSystem for scheme: spark 
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584) 
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591) 
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91) 

На первый взгляд, кажется, небольшая ошибка, связанные с искру банки, но не мог взломать. Любая помощь будет оценена.

ответ

0

Это оказалось ошибкой со стороны, когда я запускал работу. Команда, которую я использовал, не имела надлежащего варианта. Следовательно, проблема. Я использую команду ниже

spark-submit --class org.myclass --jars myjar spark://myhost:7077 myjob.jar 

Ниже является правильным

spark-submit --class org.myclass --jars myjar --master spark://myhost:7077 myjob.jar 

Это небольшая ошибка, но я как-то пропустил. Сейчас он работает

Смежные вопросы