从 Spark-JobServer(本地实例)连接到 Hadoop

Connect from Spark-JobServer (local instance) to Hadoop

我 运行 一个虚拟机,上面有 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 getconf -confKey fs.defaultFS 查找了 HDFS 的路径,它向我显示了 hdfs://quickstart.cloudera:8020 作为路径。如果这是 HDFS 的正确路径,为什么我不能访问 test.txt 文件?如果这是错误的路径,我怎样才能找到正确的路径?

您的文件不在根目录中。

您将在 hdfs:///user/<your username>/test.txt

下找到您的文件

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

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

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

hadoop -put 'test.txt' /

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