Java从路径中删除斜杠,后来给了我NoSuchFileException

时间:2016-06-21 12:45:37

标签: java hadoop path java.nio.file nosuchfileexception

我正在尝试使用以下代码行编写Hadoop HDFS:

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

Spark应用程序给了我这个例外:

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

我正在解释,因为“hdfs:”之后只有一个斜杠,所以会出错 我记得我已经使用java.nio.Files方法在HDFS中编写,所以我会排除这是问题。
我该怎么做才能防止这种异常?

编辑:导入部分

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;

1 个答案:

答案 0 :(得分:1)

不,你不能用java.nio.Files写入HDFS。 Java类不了解hadoop集群中的NameNode和DataNodes。您需要使用hadoop库与HDFS进行通信。

这里我有一个使用Java写入HDFS的例子:

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