Java 在shell脚本中运行Hadoop命令

Java 在shell脚本中运行Hadoop命令,java,shell,hadoop,Java,Shell,Hadoop,我有一个简单的shell脚本,可以用来将日志文件移动到Hadoop集群中 当我在Java程序中调用shell脚本时,在“Hadoop命令”中找不到该脚本,我也不采取任何行动 例如,我想运行以下命令: #!/bin/bash hadoop fs -put /home/can/workspace2/myWebApp/tweets.txt /user/training/tweetFolder 如何以简单的方式解决这个问题?我认为这是一个路径问题。检查hadoop的路径,其中: which hadoo

我有一个简单的shell脚本,可以用来将日志文件移动到Hadoop集群中

当我在Java程序中调用shell脚本时,在“Hadoop命令”中找不到该脚本,我也不采取任何行动

例如,我想运行以下命令:

#!/bin/bash
hadoop fs -put /home/can/workspace2/myWebApp/tweets.txt /user/training/tweetFolder

如何以简单的方式解决这个问题?

我认为这是一个路径问题。检查hadoop的路径,其中:

which hadoop

然后将完整路径放在脚本上。

如果您使用一些可执行文件(如CDH、HDP等)安装了Hadoop,它应该可以工作。但是,如果是通过Apache的tarball设置的,则需要使用完整路径和bin/,因为bin目录包含所有可执行文件

HADOOP_HOME/bin/HADOOP fs-put /home/can/workspace2/myWebApp/tweets.txt/user/training/tweetFolder


另外,设置HADOOP_HOME变量始终是一个好的做法。

/code>/full/path/to/HADOOP fs…?祝你好运,是的!非常感谢你,我很高兴它起了作用。请随意选择作为正确答案:)很高兴您能让它工作。如果您完全满意,您可能会接受它或@Tiago的回复作为答案,以便其他人可以从中受益。