gpt4 book ai didi

java - 在shell脚本中调用Java程序无法运行hadoop命令

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:10 29 4
gpt4 key购买 nike

我正在从Java程序运行Shell脚本... Shell脚本具有hadoop命令,例如“/home/chikk/hadoop-1.2.1/bin/hadoop dfs -rm test.txt”,但是当我运行Java程序...此命令从未执行过...同一脚本在终端上运行良好...因此谁能建议我我所缺少的...

我的问题与“Running Hadoop commands in a shell script”非常相似

但是即使有完整的hadoop路径,我也无法运行它。像“/home/chikk/hadoop-1.2.1/bin/hadoop dfs -ls”这样的脚本中的命令运行良好,但带有额外参数的命令却运行不佳。

那么如何给他们呢?

最佳答案

这可能是路径或环境问题。如果从 shell 程序运行hadoop,它将传递所有环境变量并使用 shell 程序已设置的路径。如果从Java内部运行,则环境将大不相同,所定义或设置的变量要少得多。为了对此进行测试,您应该创建一个shell脚本,该脚本会将环境转储到日志文件中,以便您可以检查它并确定有什么不同:

#!/bin/sh 
/usr/bin/env > /tmp/env_dump.log

chmod + x这个脚本并执行它,而不是您的hadoop命令。然后,您可以检查/tmp/env_dump.log的内容并找出不同之处。

关于java - 在shell脚本中调用Java程序无法运行hadoop命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30011219/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com