Подключиться от Spark-JobServer (локальный экземпляр) к Hadoop

Я запускаю виртуальную машину с локальным экземпляром Hadoop и Spark-JobServer. Я создал файл с именем «test.txt» в HDFS, который я хочу открыть с Spark-JobServer. Для этого я написал следующий код:

val test1 = sc.textFile("hdfs://quickstart.cloudera:8020/test.txt")
val test2 = test1.count
return test2

Однако, когда я хочу запустить эти строки, я получаю сообщение об ошибке в Spark-JobServer:

"Input path does not exist: hdfs://quickstart.cloudera:8020/test.txt"

Я посмотрел путь к HDFS с помощью hdfs getconf -confKey fs.defaultFS, и он показал мне путь hdfs://quickstart.cloudera:8020. Почему я не могу получить доступ к файлу test.txt, если это правильный путь к HDFS? Если это неправильный путь, как я могу найти правильный путь?


person Jan Janiszewski    schedule 25.01.2016    source источник
comment
Скорее всего, вы выполнили установку hadoop, но сделали ли вы это в корневом каталоге HDFS? файл доступен для чтения пользователю, выполняющему задание spark?   -  person Havnar    schedule 25.01.2016
comment
-put был следующим: hadoop fs -put 'test.txt' значит это домашний каталог. Что вы подразумеваете под читаемостью файла? Это определенно читается из локально-локальной искровой оболочки на моем компьютере.   -  person Jan Janiszewski    schedule 25.01.2016


Ответы (1)


Ваш файл находится не в корневом каталоге.

Вы найдете свой файл под hdfs:///user/<your username>/test.txt

Когда вы делаете hadoop -put без указания местоположения, он будет находиться в домашнем каталоге вашего пользователя, а не в корневом каталоге.

проверьте вывод следующего, чтобы убедиться в этом:

hadoop fs -cat test.txt 
hadoop fs -cat /test.txt

do hadoop -put 'test.txt' /

и посмотрите, работает ли ваш искровой код.

person Havnar    schedule 25.01.2016