0

我运行一个带有本地 Hadoop 实例和 Spark-JobServer 的虚拟机。我在 HDFS 上创建了一个名为“test.txt”的文件,我想从 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作为路径。如果这是 HDFS 的正确路径,为什么我无法访问 test.txt 文件?如果这是错误的路径,我怎样才能找到正确的路径?

4

1 回答 1

2

您的文件不在根目录中。

你会在下面找到你的文件hdfs:///user/<your username>/test.txt

当您在未指定位置的情况下执行 hadoop -put 时,它将进入用户的主目录,而不是根目录。

检查以下输出以验证这一点:

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

hadoop -put 'test.txt' /

看看你的火花代码是否有效。

于 2016-01-25T14:06:04.377 回答