【问题标题】:org.apache.hadoop.security.AccessControlException: Permission denied: user=test-user, access=EXECUTE, inode="system":hadoop:test-user:rwx------org.apache.hadoop.security.AccessControlException: 权限被拒绝: user=test-user, access=EXECUTE, inode="system":hadoop:test-user:rwx------
【发布时间】:2020-03-24 02:15:11
【问题描述】:

以前的 test-user 曾经驻留在失去连接的边缘服务器上。因此,我们重建了边缘服务器并一直在尝试启动并运行它,但我不断收到以下错误。

Job initialization failed: 
org.apache.hadoop.security.AccessControlException:
org.apache.hadoop.security.AccessControlException: Permission denied:
user=test-user, access=EXECUTE,
inode="system":hadoop:test-user:rwx------ at
sun.reflect.GeneratedConstructorAccessor20.newInstance(Unknown Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at
org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
at
org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:57)
at
org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.<init>(DFSClient.java:3371)
at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:743) at
org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:182)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:557) at
org.apache.hadoop.fs.FileSystem.create(FileSystem.java:538) at
org.apache.hadoop.fs.FileSystem.create(FileSystem.java:445) at
org.apache.hadoop.fs.FileSystem.create(FileSystem.java:437) at
org.apache.hadoop.security.Credentials.writeTokenStorageFile(Credentials.java:169)
at
org.apache.hadoop.mapred.JobInProgress.generateAndStoreTokens(JobInProgress.java:3802)
at
org.apache.hadoop.mapred.JobInProgress.initTasks(JobInProgress.java:970)
at org.apache.hadoop.mapred.JobTracker.initJob(JobTracker.java:4237)
at
org.apache.hadoop.mapred.FairScheduler$JobInitializer$InitJob.run(FairScheduler.java:301)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724) Caused by:
org.apache.hadoop.ipc.RemoteException:
org.apache.hadoop.security.AccessControlException: Permission denied:
user=report_generator, access=EXECUTE,
inode="system":hadoop:report_generator:rwx------ at
org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:199)
at
org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:155)

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    hadoop:test-user:rwx------ 权限意味着只有 hadoop 用户可以访问这些文件。消息中的test-user 是一个组,而不是一个用户。并且没有组可以访问指定的路径

    如果test-user不在自己的组中,则需要chown路径,否则,可以chmod 770

    另一个帐户最后出现类似错误

    hadoop:report_generator:rwx------

    并且这些用户和组需要首先存在于namenode上,其次是edge节点

    【讨论】:

    • @Bd 正如这里所解释的,您的用户(分析)没有以管理员或超级组身份访问的正确权限
    • @Bd 我不知道你的代码是做什么的。但我确实认为 /tmp 下的任何内容都应该是全局可读写的,因此您可以使用hadoop fs -chmod -R 777 /tmp(作为管理员用户)来修复它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多