3

当我尝试杀死或暂停时,我在用户“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 .
4

2 回答 2

1

老问题,但是,我遇到了同样的问题。似乎与https://issues.apache.org/jira/browse/OOZIE-800有关

rm ~/.oozie-auth-token在发出 oozie 命令之前为我解决了它。

于 2018-03-23T07:54:33.300 回答
0

通过禁用安全模型暂时解决。在设置禁用的安全模型之后,一切都按预期工作。

<property>
    <name>oozie.service.AuthorizationService.security.enabled</name>
    <value>false</value>
    <description>
        Specifies whether security (user name/admin role) is enabled or not.
        If disabled any user can manage Oozie system and manage any job.
    </description>
</property>

将更深入地研究如何正确解决此问题,但作为临时解决方案或用于开发,这可以正常工作。

于 2014-07-29T08:39:25.120 回答