【问题标题】:Transferring a file to HDFS from Apache Zeppelin running on a remote server将文件从远程服务器上运行的 Apache Zeppelin 传输到 HDFS
【发布时间】:2017-11-24 19:00:13
【问题描述】:

我有一个在远程服务器上运行的 Apache Zeppelin 实例,我正在使用 Scala 通过 Spark 解释器与之通信。

我想将存储在该服务器目录中的 csv 文件传输到同样位于远程服务器上的 HDFS (Hadoop)。

我无权访问服务器上的任何配置文件,我无法安装任何东西,我只能在 Zeppelin 中发出命令。

我尝试过使用标准

sc.textFile("file:///test.csv") 

语句,但它返回以下错误:

org.apache.spark.SparkException:作业因阶段失败而中止:阶段 19.0 中的任务 0 失败 4 次,最近一次失败:阶段 19.0 中丢失任务 0.3(TID 64、10.244.79.7):java.io。 FileNotFoundException:文件文件:/test.csv 不存在

有人告诉我,我收到此错误的原因是 Spark 无法看到我的 Zeppelin 文件系统。我不确定如何启用类似的功能。

任何建议都会非常有帮助。

【问题讨论】:

  • 我认为如果它不在 hdfs 中,它需要在集群的所有节点上。 (hadoop fs -put 或类似命令)。

标签: scala hadoop apache-spark hdfs apache-zeppelin


【解决方案1】:

你可以试试:

sc.textFile("hdfs://DNS:PORT/test.csv")

DNS 是 Hadoop 集群的名称节点地址,PORT 是 HDFS 正在侦听的端口,其中默认值取决于 Hadoop 分布。常用值为8020。您可以在参数fs.default.namefs.defaultFS 中查看core-site.xml,具体取决于您的Hadoop 版本。

示例请求如下所示:

sc.textFile("hdfs://address:8020/test.csv")

【讨论】:

    【解决方案2】:

    如果您尝试在 zeppelin 中读取本地文件,请确保将该文件放在 zeppelin 文件夹(zeppelin 安装文件夹)中,因为 zeppelin 无法访问 zeppelin 文件夹之外的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多