我有一个bash shell脚本,其中包含以下命令:
hadoop fs -get ${WORKING_DIRECTORY}${OUTPUT_FILE}
分解成
hadoop fs -get /tmp/out.csv
当我运行shell脚本时,这个命令不会产生任何输出,并且文件不会传输到本地示例。但是,如果我运行命令 hadoop fs -get /tmp/out.csv 直接在外壳上工作。我错过了什么?
fsi0uk1n1#
问题可能是您的脚本没有看到环境变量,例如 HADOOP_CONF ,并使用本地文件系统而不是hdfs。确保 .bashrc 以及 .bash_profile 设置正确。你也应该把 set -x 在你的脚本上面加上2,以确保变量按你认为应该的方式被解析。更喜欢在中运行脚本 strict mode 1至少在调试时,会为您节省很多时间。
HADOOP_CONF
.bashrc
.bash_profile
set -x
strict mode
1条答案
按热度按时间fsi0uk1n1#
问题可能是您的脚本没有看到环境变量,例如
HADOOP_CONF
,并使用本地文件系统而不是hdfs。确保
.bashrc
以及.bash_profile
设置正确。你也应该把
set -x
在你的脚本上面加上2,以确保变量按你认为应该的方式被解析。更喜欢在中运行脚本
strict mode
1至少在调试时,会为您节省很多时间。