我在Mac上安装了sqoop,hadoop,spark和一些python模块。 bash_profile文件添加了路径,以便可以在终端中使用sqoop和hadoop。 但是,在Talend Studio中使用tSystem时无法找到这些命令。
有谁知道如何将环境路径导入Talend Studio?
答案 0 :(得分:0)
您是否尝试在执行特定命令之前在组件中加载bash_profile?
cd && source .bash_profile && yourCommands...
关于启动作业的用户在其主目录中具有正确的bah_profile。
未经测试
答案 1 :(得分:0)
首先,检查.bash_profile中是否使用export命令正确导出了PATH,如下所示:
export SPARK_BIN=/spark/bin
export PATH=$SPARK_BIN:$PATH
如果您忘记导出变量,则应该是您遇到问题的原因
第二,根据您的系统,运行shell脚本时可能无法调用.bash_profile。 Bash也可以查看其中一个文件,只有这些文件取决于tSystem运行作业的方式:
$HOME/.profile
$HOME/.bashrc
确保PATH也在这些文件中设置。
第三次,您可以使用SPARK_BIN的完整路径在tSystem中运行命令,如果它更容易,但便携性会降低。
或者,您可以在tSystem中运行以
开头的bash脚本#!/bin/bash
export SPARK_BIN=/spark/bin
$SPARK_BIN/spark <your params here>
应该有所帮助。
第四,如果可以帮助,请在tJava中复制/粘贴此代码:
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n",
envName,
env.get(envName));
}
它将显示您的工作所见的环境变量。 不要忘记在tJava的高级设置中设置导入:
import java.util.Map;
最后,tSystem组件允许为您的作业提供额外的命令行参数,您可以尝试在此处设置$ PATH:
或者,比屏幕截图中显示的更好,在值列中传递PATH变量:
System.getenv().get("PATH")
希望它可以提供帮助。