spark/hadoop无法读取根文件

kkbh8khc  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(374)

我试图通过spark读取只有我(和root)可以读/写的文件夹中的文件,首先我从以下内容开始shell:

spark-shell --master yarn-client

然后我:

val base = sc.textFile("file///mount/bases/FOLDER_LOCKED/folder/folder/file.txt")
base.take(1)

出现以下错误:

2018-02-19 13:40:20,835 WARN scheduler.TaskSetManager:
Lost task 0.0 in stage 0.0 (TID 0, mydomain, executor 1): 
java.io.FileNotFoundException: File file: /mount/bases/FOLDER_LOCKED/folder/folder/file.txt does not exist
at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:611)
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:824)
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:601)
...

我怀疑由于yarn/hadoop是用用户hadoop启动的,因此无法在这个文件夹中进一步获取文件。我怎样才能解决这个问题?
obs:此文件夹不能对其他用户打开,因为它有私人数据。
edit1:此/mount/base是一个网络存储,使用cifs连接。
edit2:hdfs和yarn与用户一起发布 hadoop

kqlmhetl

kqlmhetl1#

好吧,如果是与文件的访问相关的问题,那么“拒绝访问”就是一个错误。在这个特定场景中,我认为您试图读取的文件根本不存在,或者可能有其他名称[输入错误]。只需检查文件名。

nnt7mjpx

nnt7mjpx2#

由于hadoop是启动hdfs和yarn的用户,他是尝试在作业中打开文件的用户,因此必须获得访问此文件夹的授权,幸运的是hadoop首先检查执行作业的用户是什么,以允许访问文件夹/文件,因此您不会承担任何风险。

相关问题