Apache Oozie Shell行动问题
我试图通过shell操作实现一个简单的ls命令,但我遇到了一个错误 确切问题: 脚本: 标准日志: 有一个目录/home/my目录,它还有子目录Apache Oozie Shell行动问题,apache,bash,cloudera,oozie,Apache,Bash,Cloudera,Oozie,我试图通过shell操作实现一个简单的ls命令,但我遇到了一个错误 确切问题: 脚本: 标准日志: 有一个目录/home/my目录,它还有子目录 如果有人能为我提供解决方案,那就太好了。您无法控制集群中的哪个节点Oozie运行shell操作。因此,脚本不应引用集群中任何特定节点的本地文件系统 例如,假设您的集群包含两个节点NODE1和NODE2,并且您的脚本引用了NODE1的FS上的一个文件。当Oozie运行脚本时,它可以从NODE1或NODE2运行脚本(请记住——您将脚本、job.proper
如果有人能为我提供解决方案,那就太好了。您无法控制集群中的哪个节点Oozie运行shell操作。因此,脚本不应引用集群中任何特定节点的本地文件系统 例如,假设您的集群包含两个节点NODE1和NODE2,并且您的脚本引用了NODE1的FS上的一个文件。当Oozie运行脚本时,它可以从NODE1或NODE2运行脚本(请记住——您将脚本、job.properties、workflow.xml放入HDFS中,HDFS分布在NODE1和NODE2之间)。如果脚本是从NODE2运行的,那么您将得到无此类文件或目录错误,因为该文件在NODE2的本地FS上不存在
重要的一点是,通过Oozie运行的任何脚本都必须只引用HDFS中的路径和文件。如果需要引用从FS本地到一个节点的文件,请将其放入HDFS中,并使用HDFS中的路径来引用该文件。您无法控制Oozie在集群中的哪个节点上运行shell操作。因此,脚本不应引用集群中任何特定节点的本地文件系统 例如,假设您的集群包含两个节点NODE1和NODE2,并且您的脚本引用了NODE1的FS上的一个文件。当Oozie运行脚本时,它可以从NODE1或NODE2运行脚本(请记住——您将脚本、job.properties、workflow.xml放入HDFS中,HDFS分布在NODE1和NODE2之间)。如果脚本是从NODE2运行的,那么您将得到无此类文件或目录错误,因为该文件在NODE2的本地FS上不存在
重要的一点是,通过Oozie运行的任何脚本都必须只引用HDFS中的路径和文件。如果需要引用从FS本地到一个节点的文件,请将其放入HDFS中,并使用HDFS中的路径来引用该文件。是Hadoop文件系统中的/home/my目录,还是“real”文件系统
ls
不了解Hadoop。该目录在我的linux文件系统中。您解决了这个问题吗?是Hadoop文件系统中的/home/my目录,还是“真实”文件系统中的目录ls
不知道Hadoop。该目录在我的linux文件系统中。您解决了这个问题吗?
#!/bin/bash
ls /home/my-directory
>>> Invoking Shell command line now >>
Exit code of the Shell command 2
<<< Invocation of Shell command completed <<<
<<< Invocation of Main class completed <<<
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]
Oozie Launcher failed, finishing Hadoop job gracefully
Oozie Launcher ends
ls: cannot access /home/my-directory: No such file or directory
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]