我有一个scala文件,它执行类似于此的hdfs命令:
hdfs dfs -mkdir /test/
当我在shell中运行它时,该命令运行正常,因为我在.bashrc文件中设置了以下别名:
alias hdfs='/usr/local/hadoop-2.7.0/bin/hdfs'
...但是当我使用SBT构建在我的Scala代码中运行shell命令的代码时,我收到以下错误:
java.io.IOException: Cannot run program "hdfs": error=2, No such file or directory
是否有方法可以识别别名?我无法更改代码,因为我希望程序在安装了hdfs的任何系统上运行,无论目录如何,唯一应该更改的是别名。
更多信息: 我在带有hadoop的docker镜像中运行我的测试(不应该改变任何东西),图像运行一个脚本,每次容器启动时执行以下两行:
source ~/.bashrc # To get the alias
shopt -s expand_aliases # To allow alias expansion in your script
答案 0 :(得分:1)
修复了我的.bashrc文件中的以下行
export PATH=$PATH:/usr/local/hadoop/bin/