我运行一个虚拟机,其中包含Hadoop和Spark-JobServer的本地实例。我创建了一个名为' test.txt'在我想从Spark-JobServer打开的HDFS上。我编写了以下代码来执行此操作:
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 getconf -confKey fs.defaultFS
查找了HDFS的路径,它显示了hdfs://quickstart.cloudera:8020
作为路径。如果这是HDFS的正确路径,为什么我不能访问test.txt文件?如果这是inccorect路径,我该如何找到正确的路径?
答案 0 :(得分:2)
您的文件不在根目录中。
您会在PrintWriter out = response.getWriter();
response.setContentType("text/plain");
out.println(html);
out.close();
当您在没有指定位置的情况下执行hadoop -put时,它将进入用户的主目录,而不是根目录。
检查以下内容的输出以验证这一点:
hdfs:///user/<your username>/test.txt
做hadoop fs -cat test.txt
hadoop fs -cat /test.txt
并查看您的火花代码是否有效。