我在scala中创建了一个spark应用程序。我从shell脚本中调用了spark提交命令由于目录级别上的权限问题导致Spark作业失败
我的spark应用程序正在从HDFS输入目录读取文件。
我用用户作为构建运行spark工作。我的火花的工作是试图读取并处理所有文件/数据/出版/源/乌龟/ tracking_id_log/TRACKING_ID_LOG_FULL
/数据/出版/源/欧米茄/ omega_tracking_log/OMEGA_LOG_FULL是由用户的地铁创建的目录
地铁和建造是在同一组名为hadoop
我可以清楚地看到,建立用户有读取访问该HDFS目录,那么为什么我会得到下面的错误?
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=build, access=READ_EXECUTE,\
inode="/data/published/source/omega/omega_tracking_log/OMEGA_LOG_FULL":metro:hadoop:drwxr-----
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:257)
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:238)
at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkPermission(DefaultAuthorizationProvider.java:151)
at org.apache.sentry.hdfs.SentryAuthorizationProvider.checkPermission(SentryAuthorizationProvider.java:174)
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:138)
以下是一个HDFS目录
bash-4.1$ hdfs dfs -ls /data/published/source/omega/omega_tracking_log
Found 3 items
drwxr----- - metro hadoop 0 2017-06-12 13:12 /data/published/source/omega/omega_tracking_log/OMEGA_LOG_FULL
如果火花想从一个HDFS目录读取所有文件,并进行处理,然后它我们需要有EXECUTE对HDFS目录的访问的访问引发用户以及?
HDFS作品完全像一个Linux文件系统:目录上的READ权限只是让你读取它的*名称*。要*浏览内容*您需要EXECUTE特权。 –
@Samson:这是否意味着如果一个Spark应用程序正在读取HDFS目录中的所有文件,那么我们应该对该HDFS目录执行EXECUTE访问,并且可以读取该HDFS目录中的所有文件? –
是的,目录中的'r'和'x'以及内部文件中的'r'。只是运行测试! –