在我的代码中,我试图将本地计算机中的文件加载到spark应用程序中, sc.textFile(“ file:/// home / testpath / file1”)。
当我在命令行上提交作业时
场景1:spark提交--class…本地主
工作顺利完成,没有任何问题。
方案2:火花提交--class…。 -主纱线-部署模式群集
作业失败,抛出file:/// home / testpath / file1文件未找到异常。
但是当我测试file1时...。文件存在于本地。
场景3:spark提交-class…-master yarn-部署模式客户端
作业失败,抛出file:/// home / testpath / file1文件未找到异常。
但是当我测试file1时,文件存在于本地。
方案4:spark-shell —master = yarn
Val file1 = sc.textFile(“ file:/// home / testpath / file1”)。
作业失败,抛出file:/// home / testpath / file1文件未找到异常。
在core-site.xml中,将fs.default.name属性设置为hdfs:// mynamenode:9000
请帮助我如何在spark应用程序中加载本地文件(使用spark 2.X版本)
有什么想法吗?预先感谢。
答案 0 :(得分:0)
当Spark执行模式为本地时,Spark执行程序作业安排在同一本地节点上,因此可以找到该文件。但是,在纱线模式下,执行程序作业会在任何群集节点上随机安排。因此,您可以将文件移至HDFS或在每个节点上维护此文件的副本