当我尝试kill或suspend时,我在用户“runner”下提交了oozie coordinator作业我收到以下错误消息:
[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有一个基本的授权模型:
我是否忽略了配置中的某些内容? 我是否需要指定/配置如下内容:
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 .
答案 0 :(得分: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>
将更深入地了解如何正确解决此问题,但作为临时解决方案或开发,这可以正常工作。
答案 1 :(得分:0)
在发出oozie命令之前只需Sub Button3_Click()
Dim conn As New ADODB.Connection
With Sheets("Sheet1")
conn.Open "Provider=SQLNCLI11;Server=myServer;Database=myDatabase;Trusted_Connection=yes;"
iRowNo = 6
Do Until .Cells(iRowNo, 1) = ""
dtDateTime = .Cells(iRowNo, 1)
sTag = .Cells(iRowNo, 10)
If sTag <> "" Then
conn.Execute "insert into RawData(oDateTime,oTag) values ('" & dtDateTime & "', '" & sTag & "')"
End If
iRowNo = iRowNo + 1
Application.StatusBar = "Processing..."
Loop
MsgBox "Upload success!", vbInformation, "AOA"
Sheet1.Range("A6", "L100000").ClearContents
Sheet1.Cells(6, 1).Select
conn.Close
Set conn = Nothing
End With
End Sub
就可以解决它。