Error: E0902: Exception occured: [User: Root is not allowed to impersonate root

Sam picture Sam · Aug 1, 2014 · Viewed 11.1k times · Source

I am trying to follow the steps given at http://www.rohitmenon.com/index.php/apache-oozie-installation/ Note: I am not using cloudera distibution of hadoop

The above link is similar to http://oozie.apache.org/docs/4.0.1/DG_QuickStart.html but with more descriptive seems to me however while running the below command as a root user i am getting exception ./bin/oozie-setup.sh sharelib create -fs

Note: i have two live node shown at dfshealth.jsp . and i have updated the core-site.xml for all three(including namenode) with property as below

  <property>
            <name>hadoop.proxyuser.root.hosts</name>
            <value>*</value>
     </property>

    <property>
            <name>hadoop.proxyuser.root.groups</name>
            <value>*</value>
    </property>

i understand this is point where i am making mistake Could someone please guide me

Stacktrace
    org.apache.oozie.service.HadoopAccessorException: E0902: Exception occured: [User: root is not allowed to impersonate root]
            at 

    org.apache.oozie.service.HadoopAccessorService.createFileSystem(HadoopAccessorService.java:430)
                at org.apache.oozie.tools.OozieSharelibCLI.run(OozieSharelibCLI.java:144)
                at org.apache.oozie.tools.OozieSharelibCLI.main(OozieSharelibCLI.java:52)
        Caused by: org.apache.hadoop.ipc.RemoteException: User: root is not allowed to impersonate root
                at org.apache.hadoop.ipc.Client.call(Client.java:1107)
                at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
                at com.sun.proxy.$Proxy5.getProtocolVersion(Unknown Source)
                at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:411)
                at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:135)
                at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:276)
                at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:241)
                at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:100)
                at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1411)
                at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
                at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1429)
                at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254)
                at org.apache.oozie.service.HadoopAccessorService$2.run(HadoopAccessorService.java:422)
                at org.apache.oozie.service.HadoopAccessorService$2.run(HadoopAccessorService.java:420)
                at java.security.AccessController.doPrivileged(Native Method)
                at javax.security.auth.Subject.doAs(Subject.java:396)
                at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1136)
                at org.apache.oozie.service.HadoopAccessorService.createFileSystem(HadoopAccessorService.java:420)
                ... 2 more
        --------------------------------------

Note: Getting E0902: Exception occured: [User: oozie is not allowed to impersonate oozie] i have followed this link as well but not able to solve my problem

if i change the core-site.xml as below only for NameNode

<property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>[NAMENODE IP]</value>
    </property>
<property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>hadoop</value>
</property> 

I get the exception as Unauthorized connection for super-user: hadoop

Answer

K S Nidhin picture K S Nidhin · Aug 1, 2014

You need to add these properties in core-site.xml for impersonation in order to solve your whitelist error

 <property> 
 <name>hadoop.proxyuser.oozie.hosts</name> 
 <value>*</value> 
 </property> 

 <property> 
 <name>hadoop.proxyuser.oozie.groups</name> 
 <value>*</value> 
 </property>

Hope this fixes your issue.