我有一个在远程服务器上运行的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文件系统。我不知道如何启用这样的东西。
任何建议都会非常有用。
答案 0 :(得分:1)
您可以尝试:
sc.textFile("hdfs://DNS:PORT/test.csv")
其中DNS
是Hadoop集群的名称节点的地址,PORT
是HDFS正在侦听的端口,其中默认值取决于Hadoop分发。共同价值是8020
。您可以在参数core-site.xml
或fs.default.name
中的fs.defaultFS
中查看,具体取决于您的Hadoop版本。
示例请求可能如下所示:
sc.textFile("hdfs://address:8020/test.csv")
答案 1 :(得分:1)
如果您尝试在zeppelin中读取本地文件,请确保将该文件放在zeppelin文件夹(zeppelin安装文件夹)中,因为zeppelin无法访问zeppelin文件夹之外的文件。