spark读取不了本地文件

环境:ubuntu16.04

spark读取不了本地文件

在spark集群中想要获取本地文件数据集iris.txt,但是却报了上图这样的错误,显示这个文件在这个路径不存在 。然后我在本地这个文件路径查看是否有这个txt文件

spark读取不了本地文件

结果发现本地有这个文件啊,这就有点问题了

然后上网查资料,资料如下:

在spark-shell里执行textFile方法时,如果total-executor-cores设置为N,哪N台机有CoarseGrainedExecutorBackend进程的,读取的文件需要在这N台机都存在如果设置为1,就读取指定的master spark的文件如果只执行   ./spark-shell  就读取启动命令的主机的文件,即在哪台机启动就读取哪台机

但问题是我之前启动就是直接用的 ./spark-shell 命令(如下),应该没问题啊。

spark读取不了本地文件

然后我再试着用更精确的命令?./bin/spark-shell  --master spark://master:7077 --executor-memory 1G --total-executor-cores 1

spark读取不了本地文件 但是还是报本地文件不存在的错误,接着我又试着让每个Worker节点的相应位置都有要读取的数据文件,结果还是报这个错误。没办法只好用最后一招,直接把iris.txt文件上传到hdfs,达到数据共享。

spark读取不了本地文件

spark读取不了本地文件

一开始我直接上传到根目录(如上图) 

spark读取不了本地文件

结果它默认路径是hdfs://master:9000/user/ubuntu/,好吧,那我把文件传到/user/ubuntu/下

 

spark读取不了本地文件

 然后最终问题解决!!!

spark读取不了本地文件

参考:https://www.cnblogs.com/dummyly/p/10000421.html

https://ask.csdn.net/questions/689513