我正在尝试遵循http://www.rohitmenon.com/index.php/apache-oozie-installation/中给出的步骤 注意:我没有使用hadoop的cloudera distibution
以上链接类似于http://oozie.apache.org/docs/4.0.1/DG_QuickStart.html 但在我看来,更具描述性 然而,当以root用户身份运行以下命令时,我将获得异常 ./bin/oozie-setup.sh sharelib create -fs
注意:我在dfshealth.jsp上显示了两个实时节点。我已经使用以下属性更新了所有三个(包括namenode)的core-site.xml
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
我明白这是我犯错误的地方。有人可以指导我吗
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
--------------------------------------
注意:Getting E0902: Exception occured: [User: oozie is not allowed to impersonate oozie]我也关注了这个链接,但无法解决我的问题
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>
我得到了例外 超级用户未经授权的连接:hadoop
答案 0 :(得分:1)
您需要在core-site.xml中添加这些属性以进行模拟,以解决白名单错误
<property>
<name>hadoop.proxyuser.oozie.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>*</value>
</property>
希望这可以解决您的问题。
答案 1 :(得分:1)
将属性文件添加到core-site.xml后重新启动hadoop并尝试。即使它不起作用格式化namenode并启动hadoop它也会起作用。
答案 2 :(得分:0)
请遵循以下文章中的建议。 1.1.0之前的Hadoop不支持通配符,因此您必须明确指定主机和组
答案 3 :(得分:0)
我通过在core-site.xml
- 文件
hadoop.proxyuser.root.hosts
value = *
hadoop.proxyuser.root.groups
value = *
它完美地运行了我的所有数据库和表格。
答案 4 :(得分:0)
./oozie-setup.sh sharelib create -fs hdfs://localhost:9000
尝试使用sudo运行此命令。
检查hdfs是否已经退出该路径,即/user/user_name/share/lib
,如果存在则使用
hadoop fs -rmr /user/user_name
之后运行sudo ./oozied.sh
。 oozie将开始。然后检查您的localhost:11000
。