我正在使用restapi将配置单元作业提交给oozie。我尝试使用postman和curl发送请求,但收到一个错误消息:“此请求需要http身份验证。”
我试图在我的cloudera快速启动和hortonworks上运行它,但得到了相同的错误。
config.xml是:
<?xml version="2.0" encoding="UTF-8"?><configuration><property><name>fs.default.name</name><value>hdfs://localhost:8020</value></property><property><name>mapred.job.tracker</name><value>localhost:8021</value></property><property><name>user.name</name><value>cloudera</value></property><property><name>oozie.hive.script</name><value>select * from test;</value></property><property><name>oozie.libpath</name><value>hdfs://localhost:8020/user/cloudera/share/lib/hive</value></property><property><name>oozie.proxysubmission</name><value>true</value></property></configuration>
curl 是:
curl -X POST -H "Content-Type: application/xml" -d @config.xml http://localhost:11000/oozie/v1/jobs?action=start
我也试过这个:
curl -X POST -H "Content-Type: application/xml" -d @config.xml --negotiate -u cloudera:cloudera //localhost:11000/oozie/v1/jobs?action=start
或者这个:
curl -X POST -H "Content-Type: application/xml" -d "fs.default.namehdfs://localhost:8020mapred.job.trackerlocalhost:8021user.nameclouderaoozie.hive.scriptselect * from test;oozie.libpathhdfs://localhost:8020/user/cloudera/share/lib/hiveoozie.proxysubmissiontrue"//localhost:11000/oozie/v2/job
(配置是正确的xml文件)
答案是:
Apache Tomcat/6.0.44 - Error report HTTP Status 401 - type Status report message description This request requires HTTP authentication. Apache Tomcat/6.0.44
当运行get请求而不添加额外的授权时,我得到的是响应
curl -X GET "http://localhost:11000/oozie/v1/admin/status"
答案是:
{"systemMode":"NORMAL"}
我错过了什么?我应该如何通过oozierestapi提交oozie配置单元作业?
谢谢
2条答案
按热度按时间qvsjd97n1#
确保oozie.libpath声明正确并且存在,并且可以访问它应该所在的目录
ff29svar2#
我也有同样的问题。我的解决办法是修好
oozie.wf.application.path
参数值--它指向一个不存在的workflow.xml
文件。将此更改为正确的文件名解决了问题。我不得不承认,在这种情况下,oozie的api消息并不是很有帮助:
This request requires HTTP authentication.
我花了相当长的时间调试这个问题,认为这可能是一个身份验证问题——我正在一个kerberized集群上运行)。所以,仔细检查你的
job.xml
以及workflow.xml
文件夹。