Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 在HDFS上找不到Oozie作业配置应用程序目录_Hadoop_Workflow_Hdfs_Cloudera_Oozie - Fatal编程技术网

Hadoop 在HDFS上找不到Oozie作业配置应用程序目录

Hadoop 在HDFS上找不到Oozie作业配置应用程序目录,hadoop,workflow,hdfs,cloudera,oozie,Hadoop,Workflow,Hdfs,Cloudera,Oozie,我在Linux机器上安装了Cloudera的伪分布式版本,并成功地运行了一些简单的MapReduce示例。然而,我正在努力让Oozie工作,当我试图执行一个简单的工作流程时,我完全被收到的错误所迷惑: tim@phocion:~$ oozie version Oozie client build version: 3.1.3-cdh4.0.1 将预打包的示例复制到HDFS并按照文档执行: tim@phocion:~$ oozie job -oozie http://phocion:11000/

我在Linux机器上安装了Cloudera的伪分布式版本,并成功地运行了一些简单的MapReduce示例。然而,我正在努力让Oozie工作,当我试图执行一个简单的工作流程时,我完全被收到的错误所迷惑:

tim@phocion:~$ oozie version
Oozie client build version: 3.1.3-cdh4.0.1
将预打包的示例复制到HDFS并按照文档执行:

tim@phocion:~$ oozie job -oozie http://phocion:11000/oozie -config /user/tim/examples/apps/map-reduce/job.properties -run
Error: E0504 : E0504: App directory [hdfs://phocion:8020/user/tim/examples/apps/map-reduce] does not exist
检查文件是否存在:

tim@phocion:~$ hdfs dfs -ls /user/tim/examples/apps/map-reduce
Found 3 items
-rwxr-xr-x   1 tim tim        995 2012-10-03 14:47 /user/tim/examples/apps/map-reduce/job.properties
drwxrwxr-x   - tim tim       4096 2012-10-03 14:47 /user/tim/examples/apps/map-reduce/lib
-rwxr-xr-x   1 tim tim       2559 2012-10-03 14:47 /user/tim/examples/apps/map-reduce/workflow.xml
是的。我可以接phocion:8020吗

tim@phocion:~$ telnet phocion 8020
Trying 127.0.1.1...
Connected to phocion.
Escape character is '^]'.
我可以。所以,基本上,我完全不知道这个错误想告诉我什么——这个文件夹确实存在。我假设错误太模糊,无法完全传达问题所在,但我发现事实上没有任何东西可以为我指明正确的方向

我还可以在其他第三方教程中复制此错误

花了很多时间浏览配置文件,以至于不想再看一次计算机。也许我在这里考虑的太多了,但是如果有任何帮助,我将不胜感激

编辑:添加完整的job.properties(与默认值没有太大区别):

更多编辑:当文件夹不存在时,我会得到同样的错误,并且在我将if放回hdfs之后。chmod 777虽然认为这是一个权限问题,但仍然会出现相同的错误。在命令行上传递的完整HDFS路径无法解决此问题。在oozie甚至根帐户下运行它都不起作用:

tim@phocion:~$ oozie job -oozie http://phocion:11000/oozie -run -config /home/tim/examples/apps/map-reduce/job.properties -Doozie.wf.application.path=hdfs://phocion:8020/user/tim/examples/apps/map-reduce
Error: E0504 : E0504: App directory [hdfs://phocion:8020/user/tim/examples/apps/map-reduce] does not exist
tim@phocion:~$ hdfs dfs -put examples/ /user/tim/
12/10/04 13:26:43 INFO util.NativeCodeLoader: Loaded the native-hadoop library
tim@phocion:~$ oozie job -oozie http://phocion:11000/oozie -run -config /home/tim/examples/apps/map-reduce/job.properties -Doozie.wf.application.path=hdfs://phocion:8020/user/tim/examples/apps/map-reduce
Error: E0504 : E0504: App directory [hdfs://phocion:8020/user/tim/examples/apps/map-reduce] does not exist
tim@phocion:~$ hdfs dfs -chmod -R 777 /user/tim/examples/
12/10/04 13:28:16 INFO util.NativeCodeLoader: Loaded the native-hadoop library
tim@phocion:~$ oozie job -oozie http://phocion:11000/oozie -run -config /home/tim/examples/apps/map-reduce/job.properties -Doozie.wf.application.path=hdfs://phocion:8020/user/tim/examples/apps/map-reduce
Error: E0504 : E0504: App directory [hdfs://phocion:8020/user/tim/examples/apps/map-reduce] does not exist
tim@phocion:~$ sudo -u oozie oozie job -oozie http://phocion:11000/oozie -run -config /home/tim/examples/apps/map-reduce/job.properties -Doozie.wf.application.path=hdfs://phocion:8020/user/tim/examples/apps/map-reduce
[sudo] password for tim: 
Error: E0504 : E0504: App directory [hdfs://phocion:8020/user/tim/examples/apps/map-reduce] does not exist
tim@phocion:~$ sudo -u root oozie job -oozie http://phocion:11000/oozie -run -config /home/tim/examples/apps/map-reduce/job.properties -Doozie.wf.application.path=hdfs://phocion:8020/user/tim/examples/apps/map-reduce
Error: E0504 : E0504: App directory [hdfs://phocion:8020/user/tim/examples/apps/map-reduce] does not exist
这个命令在理论上是否有效

tim@phocion:~$ hdfs dfs -ls hdfs://phocion:8020/user/tim/examples/apps/map-reduce
ls: `hdfs://phocion:8020/user/tim/examples/apps/map-reduce': No such file or directory
执行oozie命令后,hadoop hdfs日志中会显示:

2012-10-04 13:50:00,152 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLog: Starting log segment at 113297
2012-10-04 13:50:00,874 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Opening connection to http://localhost.localdomain:50090/getimage?getimage=1&txid=113296&storageInfo=-40:2092007576:0:cluster8
2012-10-04 13:50:00,875 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hdfs (auth:SIMPLE) cause:java.net.ConnectException: Connection refused
2012-10-04 13:50:00,876 WARN org.mortbay.log: /getimage: java.io.IOException: GetImage failed. java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:529)
        at java.net.Socket.connect(Socket.java:478)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
        at sun.net.www.http.HttpClient.New(HttpClient.java:307)
        at sun.net.www.http.HttpClient.New(HttpClient.java:324)
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
2012-10-04 13:50:00152信息org.apache.hadoop.hdfs.server.namenode.FSEditLog:从113297开始日志段
2012-10-04 13:50:00874 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage:正在打开与的连接http://localhost.localdomain:50090/getimage?getimage=1&txid=113296&storageInfo=-40:2092007576:0:cluster8
2012-10-04 13:50:00875错误org.apache.hadoop.security.UserGroupInformation:PriviledEdActionException as:hdfs(身份验证:简单)原因:java.net.ConnectException:连接被拒绝
2012-10-04 13:50:00876警告org.mortbay.log:/getimage:java.io.IOException:getimage失败。java.net.ConnectException:连接被拒绝
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
位于java.net.socksocketimpl.connect(socksocketimpl.java:366)
位于java.net.Socket.connect(Socket.java:529)
位于java.net.Socket.connect(Socket.java:478)
位于sun.net.NetworkClient.doConnect(NetworkClient.java:163)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
位于sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
http.HttpClient.(HttpClient.java:234)
http.HttpClient.New(HttpClient.java:307)
http.HttpClient.New(HttpClient.java:324)
位于sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
位于sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
位于sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)

除了HarshJ的评论之外,请检查您的错误消息:

Error: E0504 : E0504: App directory [hdfs://phocion:8020/user/tim/examples/apps/demo] does not exist
以及您提供的hadoop fs-ls清单:

/user/tim/examples/apps/map-reduce/
并找出差异:

/user/tim/examples/apps/demo
/user/tim/examples/apps/map-reduce/
尝试按如下方式配置:

oozie.wf.application.path=/user/tim/examples/apps/map-reduce

您需要做的是
-copyFromLocal
将示例文件夹复制到作业配置中指定的位置。

我也遇到了同样的问题,并通过导出正确的oozie url将其修复

要导出,应使用以下命令

export OOZIE_URL=http://someip:11000/oozie

要获取此oozie url,您需要使用色调连接集群并导航到工作流,在那里可以找到名为
oozie
的选项卡。在这里面,您应该看到仪表,其中列出了许多属性。查找属性oozie.servers

正如Oozie文档中的“运行示例”部分所述,您是否可以尝试在CLI中向-config传递正确的本地路径,而不是HDFS样式的路径?-config要求属性是本地可用的可配置文件,而不是在HDFS中。@Harsh-J感谢您的帮助。我让-config指向HDFS外部的配置文件。同样的错误:tim@phocion:~$oozie job-oozie-config/home/tim/examples/apps/map reduce/job.properties-运行错误:E0504:E0504:App目录[hdfs://phocion:8020/user/tim/examples/apps/map-reduce]不存在您可以检查Hadoop配置(
/etc/Hadoop/conf/*-site.xml
)对于以下属性:
fs.defaultFS
>>这是当您没有明确提到hdfs://host:port/home/dir/“或”hdfs://HA_alias/home/dir/“顺便说一句,您应该检查边缘节点(运行HDFS命令行的节点)上的配置,如果不同,还应该检查运行Oozie server的节点上的配置,还有可能正在运行Oozie操作的所有集群节点……感谢您的响应。我的错-我测试了两个不同的示例,并将输出粘贴到了这里。我用map reduce/和demo/都得到了错误,它们都存在。我还尝试了修改应用程序路径,就像您建议的那样,修改了许多不同的路径—HDF和not。同样的错误。您能将job.properties文件的内容粘贴到原始问题中吗?您是否尝试过
oozie job-run-Doozie.wf.application.path=/user/tim/examples/apps/map reduce
通过命令行传入参数时出现相同错误:tim@phocion:~$oozie job-oozie-run-Doozie.wf.application.path=/user/tim/examples/apps/map reduce-config/home/tim/examples/apps/map reduce/job.properties错误:E0504:E0504:
export OOZIE_URL=http://someip:11000/oozie