2016-06-21 12 views
0

Я пытаюсь написать в Hadoop HDFS, используя следующую строку кода:Java удаляет слеш от пути, а затем дает мне NoSuchFileException

Files.write(Paths.get("hdfs:////localhost:9000/user/cloudera/trial/"+ "cat.txt","miao miao!".getBytes()); 

Искра Применение дает мне это исключение:

java.nio.file.NoSuchFileException: hdfs:/quickstart.cloudera:9000/user/cloudera/trial/cat2 

Который, я интерпретирую, дает ошибку, потому что после «hdfs:» есть только одна косая черта.
Я помню, что уже использовал методы java.nio.Files для записи в HDFS, поэтому я бы исключил, что это проблема.
Что мне делать, чтобы предотвратить это исключение?

EDIT: Секция импорта

import java.io.File; 
import java.nio.file.Files; 
import java.nio.file.Paths; 

import org.apache.spark.SparkConf; 
import org.apache.spark.api.java.JavaPairRDD; 
import org.apache.spark.api.java.JavaRDD; 
import org.apache.spark.api.java.JavaSparkContext; 
+0

Пожалуйста, покажите заявление импорта – Jens

ответ

1

НЕТ, вы не можете использовать java.nio.Files написать HDFS. Классы Java не знают о NameNode и DataNodes в кластере hadoop. Вы должны использовать библиотеки hadoop для связи с HDFS.

Здесь у меня есть пример, чтобы написать в HDFS с помощью Java:

https://github.com/lalosam/HadoopInExamples/blob/master/src/main/java/rojosam/utils/hdfs/CreateTestsFiles.java