我正在尝试使用以下代码行编写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;
答案 0 :(得分:1)
不,你不能用java.nio.Files写入HDFS。 Java类不了解hadoop集群中的NameNode和DataNodes。您需要使用hadoop库与HDFS进行通信。
这里我有一个使用Java写入HDFS的例子: