从 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' /
看看你的火花代码是否有效。
我 运行 一个虚拟机,上面有 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' /
看看你的火花代码是否有效。