Hadoop fs命令在命令行上运行,但不在shell脚本中运行

时间:2020-06-24 13:22:08

标签: bash shell hadoop hdfs

我有一个bash shell脚本,其中包含以下命令:

hadoop fs -get ${WORKING_DIRECTORY}${OUTPUT_FILE}

解析为

hadoop fs -get /tmp/out.csv

当我运行shell脚本时,此命令不会产生任何输出,并且文件不会传输到本地实例。但是,如果我直接在shell上运行命令hadoop fs -get /tmp/out.csv,它将起作用。

我想念什么?

1 个答案:

答案 0 :(得分:1)

问题可能出在您的脚本没有看到诸如HADOOP_CONF之类的环境变量,而是使用本地文件系统而不是HDFS。

确保正确设置.bashrc.bash_profile

此外,您还应该在脚本的顶部放置set -x 2,以确保变量按照您认为的方式解析。

至少在调试时,最好在strict mode 1中运行脚本,这样可以节省大量时间。