2016-11-28 2 views
-1

Я работаю прикладная Спарк-Скал и я построил проект с SBT, мои древовидный является: projectFilms/src/main/scala/AppFilms У меня есть 3 файлов в HDFS, эти каталоги являются: hdfs/tmp/projetFilms/<my_3_Files>, Когда я запускаю мой код этой командной строки «SBT выполнения», это ошибка жанрам:java.lang.IllegalArgumentException: java.net.UnknownHostException: TMP

java.lang.IllegalArgumentException: java.net.UnknownHostException: tmp 

и это:

[trace] Stack trace suppressed: run last compile:run for the full output. 
ERROR Utils: uncaught error in thread SparkListenerBus, stopping SparkContext 
java.lang.InterruptedException 

Это мой код:

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 
import org.apache.spark.rdd._ 

object appFilms { 

val conf = new SparkConf().setAppName("system of recommandation").setMaster("local[*]") 
val sc = new SparkContext(conf) 
def main(args: Array[String]) { 

val files = sc.wholeTextFiles("hdfs://tmp/ProjetFilm/*.dat") 
//val nbfiles = files.count 
println("Hello my application!") 
sc.stop() 
} 
} 

Я не могу читать мои файлы из HDFS, но когда я пишу

[email protected] projectFilms# hadoop fs -cat /tmp/ProjetFilms/* 

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

Пожалуйста, вы можете ответить мне!

ответ

0

ошибка IllegalArgumentException: java.net.UnknownHostException: tmp потому, что в wholeTextFiles стоимости его принятия tmp как имя хоста. Заменить значение hdfs:///tmp/ProjetFilm/*.dat

+0

Благодарим за ответы! – sirine

+0

Я написал полное имя файла HDFS: val files = sc.wholeTextFiles ("hdfs: //sandbox.hortonworks.com: 8020/tmp/ProjetFilm/*. Dat") – sirine

+0

Работало правильно? –

1

Использование:

val files = sc.wholeTextFiles("hdfs:///tmp/ProjetFilm/*.dat") 

Существует один дополнительный/после hdfs://, который является имя протокола. Вы должны перейти к /tmp/... через протокол hdfs: //, поэтому URL-адрес нуждается в дополнительном /. Без этого, Спарк пытается достичь хозяина tmp, а не папку