【问题标题】:Connect from Spark-JobServer (local instance) to Hadoop从 Spark-JobServer(本地实例)连接到 Hadoop
【发布时间】:2016-01-25 13:53:07
【问题描述】:

我运行一个带有本地 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 文件?如果这是不正确的路径,我怎样才能找到正确的路径?

【问题讨论】:

  • 很可能你已经做了一个 hadoop -put,但是你有没有在 HDFS 的根目录下做过呢?运行 spark 作业的用户是否可以读取文件?
  • -put 如下:hadoop fs -put 'test.txt' 所以它是主目录。 “文件可读”是什么意思?它绝对可以从我计算机上的“本地本地”火花外壳中读取。

标签: hadoop apache-spark spark-jobserver


【解决方案1】:

您的文件不在根目录中。

您将在hdfs:///user/<your username>/test.txt 下找到您的文件

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

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

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

hadoop -put 'test.txt' /

看看你的 spark 代码是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2015-07-02
    • 2019-10-16
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多