Hadoop的Job执行MR的时候抛AccessControlException异常,详情如下:
org.apache.hadoop.hdfs.DFSClient: Short circuit access failed org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Can't continue with getBlockLocalPathInfo() authorization. The user XXX is not allowed to call getBlockLocalPathInfo at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
产生问题的原因定位:
org.apache.hadoop.hdfs.server.datanode.DataNode; public BlockLocalPathInfo getBlockLocalPathInfo(Block block, Token<BlockTokenIdentifier> token) throws IOException ;
具体的执行如下:
private boolean shouldTryShortCircuitRead(InetSocketAddress targetAddr) throws IOException { if (shortCircuitLocalReads && isLocalAddress(targetAddr)) { return true; } return false; }
1.读取DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY对应的值如果是true那么走getLocalBlockReader(...)如果是false那么走getBlockReader(...)
2.如果走getLocalBlockReader(...)那么需要通过BlockReaderLocal.newBlockReader(...)创建BlockReader
3.执行getBlockPathInfo(...)的时候会执行DataNode的getBlockLocalPathInfo方法从而在checkBlockLocalPathAccess的时候告知权限不足.
解决方式:
1.直接禁用
conf.setBoolean(DFSConfigKeys.DFS_CLIENT_READ_SHORTCIRCUIT_KEY, false);
相关推荐
Exception in thread main org.apache.hadoop.security.AccessControlException: Permission denied: user=L.MOON, access=WRITE, inode=/user/lsy/result1/_temporary/0:lsy:supergroup:drwxr-xr-x Caused by: org....
在linux下,开发一个web应用,期间调用数据库时总是不成功,如果单独写一个类,并编译执行访问数据库,正常... java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
标签:ant-eclipse-jvm1.2-1.0.jar.zip,ant,eclipse,jvm1.2,1.0,jar.zip包下载,依赖包
org.apache.hadoop.security.AccessControlException: Permission denied.
org.apache.hadoop.security.AccessControlException: Permission denied: user=xudsa, access=WRITE, inode="/uploaddemo1.txt":hadoop:supergroup:-rw-r--r--
AccessControlException:访问被拒绝(“ java.lang.RuntimePermission”“ getClassLoader”) 输出轨迹: [2018-06-13T18:47:26,737][INFO ][c.e.e.s.a.MyAuthenticationBackend] Starting up authentication ...
引起的 java.security.AccessControlException: access denied ("java.net.NetPermission" "setDefaultAuthenticator")at java.security.AccessControlContext.checkPermission(AccessControlContext.java:375)设置...
* ERROR at line 1: ORA-29532: Java call terminated by uncaught Java exception: java.security.AccessControlException: th (java.io.FilePermission D:OCCdboratrace ack read) has not been granted to ...
org.apache.hadoop.security.AccessControlException: Permission denied: user=ASUS, access=WRITE, inode 今天在windows连接虚拟机的hdfs,通过IDEA上传文件到虚拟机的hdfs上,出现了权限不足问题,原因是以...
简单介绍了在linux下创建和调用静态和动态函数库
你可以在JVM启动参数增加 -Djava.security.manager 启用安全管理器,如果有该参数,它将检测正在关闭接入检测的代码是否许可了这样做,上述代码执行时会抛出 java.security.AccessControlException异常。 评论对您...