当我尝试杀死或暂停时,我在用户“runner”下提交了 oozie 协调器作业,我收到以下错误消息:
[runner@hadooptools ~]$ oozie job -oozie http://localhost:11000/oozie -kill 0000005-140722025226945-oozie-oozi-C
Error: E0509 : E0509: User [?] not authorized for Coord job [0000005-140722025226945-oozie-oozi-C]
从 oozie 服务器上的日志中,我看到以下消息:
2014-07-25 03:10:07,324 INFO oozieaudit:539 - USER [runner], GROUP [null], APP [cron-coord], JOBID [0000005-140722025226945-oozie-oozi-C], OPERATION [start], PARAMETER [null], STATUS [SUCCESS], HTTPCODE [200], ERRORCODE [null], ERRORMESSAG
E [null]
有时甚至我发出命令的用户也没有正确记录。
我正在使用 CentOS 6.3 和 Oozie Oozie 客户端构建版本:4.0.0.2.0.6.0-101,Oozie 服务器构建版本:4.0.0.2.0.6.0-101
我什至无法在运行服务器的用户 oozie 下停止它。在提交作业的用户下,我无法执行暂停、终止等操作。我只能执行通过流程或信息的提交运行。
任何提示/技巧还是我错误配置了一些明显的东西?
更新:我正在使用的实例的安全设置。
<property>
<name>oozie.authentication.type</name>
<value>simple</value>
</property>
<property>
<name>oozie.authentication.simple.anonymous.allowed</name>
<value>true</value>
</property>
我的 conf/adminusers.txt 包含:
# Admin Users, one user by line
runner
Hadoop core-site.xml
<property>
<name>hadoop.security.authentication</name>
<value>simple</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>users</value>
</property>
其中 runner 是用户组的成员。根据 Oozie 文档:Oozie 有一个基本的授权模型:
- 用户对所有作业具有读取权限
- 用户对自己的作业具有写入权限
- 用户对基于访问控制列表(用户和组列表)的作业具有写入权限
- 用户拥有管理员操作的读取权限 Admin
- 用户对所有作业具有写入权限 管理员用户对管理操作具有写入权限
我是否忽略了配置中的某些内容?我是否需要指定/配置如下内容:
Pseudo/simple authentication requires the user to specify the user name on the request, this is done by the PseudoAuthenticator class by injecting the user.name parameter in the query string of all requests. The user.name parameter value is taken from the client process Java System property user.name .