将文件从远程服务器上的 Apache Zeppelin 运行 传输到 HDFS

Transferring a file to HDFS from Apache Zeppelin running on a remote server

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

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

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

我试过使用标准

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

声明,但returns出现以下错误:

org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 19.0 failed 4 times, most recent failure: Lost task 0.3 in stage 19.0 (TID 64, 10.244.79.7): java.io.FileNotFoundException: File file:/test.csv does not exist

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

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

你可以试试:

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

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

示例请求可能如下所示:

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

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