2016-06-21 4 views
0

を与える:Javaはパスからスラッシュを削除し、後で私はこのコード行を使用して、HadoopのHDFSに記述しようとしています私に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:」の後ろにスラッシュが1つしかないので、私は解釈しています。
私は既にHDFSに書き込むためにjava.nio.Filesメソッドを使用していたことを覚えています。そのため、問題は除外します。
その例外を防ぐために何をすべきですか?

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

NO、あなたはHDFSへの書き込みにjava.nio.Filesを使用することはできません。 Javaクラスは、hadoopクラスタのNameNodeとDataNodesについて知らない。 HDFSと通信するには、hadoopライブラリを使用する必要があります。

ここで私は、Javaを使用してHDFSへの書き込みの例があります。

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

関連する問題