sudo oozie-setup sharelib create -fs hdfs://cdh1:8020 -locallib /usr/lib/oozie/ 报错

本文详细记录了在配置Oozie过程中遇到的权限错误,并提供了具体的解决方案,包括修改oozie-site.xml和core-site.xml文件,以及如何刷新超级用户组配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在配置ooize,执行oozie-setup时,报出下面的错误,

 因为忽略了下面的配置,导致排错了好长时间,请大家注意!

sudo oozie-setup sharelib create  -fs hdfs://cdh1:8020 -locallib /usr/lib/oozie/oozie-sharelib-yarn.tar.gz

by: java.lang.IllegalArgumentException: Server has invalid Kerberos principal: hdfs/cdh1@TEST.COM
        at org.apache.hadoop.security.SaslRpcClient.getServerPrincipal(SaslRpcClient.java:334)
        at org.apache.hadoop.security.SaslRpcClient.createSaslClient(SaslRpcClient.java:231)
        at org.apache.hadoop.security.SaslRpcClient.selectSaslClient(SaslRpcClient.java:159)
        at org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:396)
        at org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:553)
        at org.apache.hadoop.ipc.Client$Connection.access$1800(Client.java:368)
        at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:722)
        at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:718)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671)
        at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:717)
        ... 27 more
--------------------------------------

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: oozie/cdh1@TEST.COM is not allowed to impersonate oozie

解决方法

vi  /etc/oozie/conf/oozie-site.xml

<property>
        <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
        <value>*=/etc/hadoop/conf/</value>

</property>

vi /etc/hadoop/conf/core-site.xml

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

增加以上配置后,无需重启集群,执行下面的命令,重新加载这两个属性

hdfs dfsadmin –refreshSuperUserGroupsConfiguration
yarn rmadmin –refreshSuperUserGroupsConfiguration12

如果集群配置了HA,需要在为主备namenode

hadoop dfsadmin -fs hdfs://CDH1:9000 –refreshSuperUserGroupsConfiguration
hadoop dfsadmin -fs hdfs://CDH2:9000 –refreshSuperUserGroupsConfiguration

<think>嗯,用户遇到了Hadoop HDFS问题,具体是NameNode格式化成功但启动时报错,提示“file:/// has no authority”。首先,我需要回忆一下Hadoop的配置和相关错误。根据用户提供的引用,特别是引用[1]和[3],问题可能与core-site.xml或hdfs-site.xml中的配置有关。 用户提到格式化成功但启动失败,说明格式化步骤没问题,但启动时无法正确访问某些路径或URI。错误信息中的“file:///”可能意味着配置中使用了本地文件系统URI而不是HDFS的。比如,fs.defaultFS或者hadoop.tmp.dir的配置可能包含了错误的URI格式。 在引用[1]中,问题是由于core-site.xml中的hadoop.tmp.dir配置包含了“file:”前缀,导致URI解析错误。正确的做法应该是去掉这个前缀,只保留绝对路径。同样,引用[3]提到fs.default.name被设置为hdfs://...,但可能端口或主机名不正确,或者配置项名称有误,应该是fs.defaultFS。 接下来需要检查的配置文件包括core-site.xml和hdfs-site.xml。重点查看fs.defaultFS的配置是否正确,是否使用了hdfs://协议,以及端口是否正确。同时,确认hadoop.tmp.dir的路径是否有效,且Hadoop进程有读写权限。 另外,权限问题也可能导致此类错误。需要确保Hadoop的数据存储目录(如/opt/hadoop/tmp)的权限正确,用户以正确的用户身份运行Hadoop,并且目录存在。还有SELinux或防火墙设置是否干扰了服务启动。 可能的解决步骤包括:修正core-site.xml中的配置项,检查并修改hdfs-site.xml中的NameNode和DataNode路径,确保路径权限正确,最后重新格式化和启动服务。同时,查看日志文件可以更准确地定位问题,比如查看NameNode的日志文件以获取详细的错误信息。 用户可能需要逐步排查这些配置项,确保所有URI格式正确,并且相关目录权限设置正确。如果配置修改后仍存在问题,可能需要进一步检查网络设置或主机名解析是否正确,因为HDFS依赖于正确的主机名配置来通信。</think>### Hadoop NameNode启动失败解决方案 根据报错信息"file:/// has no authority"和引用内容分析,该问题通常与HDFS配置文件中的URI格式和权限设置有关。以下是逐步排查和解决方案: **1. 检查core-site.xml配置** ```xml <!-- 错误配置示例 --> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/tmp</value> </property> <!-- 正确配置应移除file://前缀 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property> ``` * 必须确保路径不包含`file://`前缀,否则会导致URI解析错误[^1] **2. 验证fs.defaultFS配置** ```xml <property> <name>fs.defaultFS</name> <value>hdfs://your-hostname:8020</value> </property> ``` * 主机名必须与系统实际主机名一致 * 端口号需保持默认8020或与hdfs-site.xml配置一致[^3] **3. 检查hdfs-site.xml配置** ```xml <property> <name>dfs.namenode.name.dir</name> <value>/opt/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop/hdfs/datanode</value> </property> ``` * 路径需要预先创建并设置权限: ```bash sudo chown -R hadoop:hadoop /opt/hadoop sudo chmod 755 /opt/hadoop/tmp ``` **4. 完整处理流程** 1. 停止所有Hadoop服务 2. 删除临时目录: ```bash rm -rf /opt/hadoop/tmp/* rm -rf /opt/hadoop/hdfs/* ``` 3. 修改配置文件后同步到所有节点 4. 重新格式化: ```bash hdfs namenode -format ``` 5. 启动HDFS: ```bash start-dfs.sh ``` **5. 常见其他问题排查** - 检查JAVA_HOME环境变量是否配置正确 - 确认防火墙未屏蔽50070/8020等端口 - 查看完整日志定位错误: ```bash tail -n 100 $HADOOP_HOME/logs/hadoop-*-namenode-*.log ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值