gpt4 book ai didi

java - Hadoop 命令不从 java prcoessbuilder 执行

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:07 25 4
gpt4 key购买 nike

我有这个脚本。

log_file_name=dataProcessor
export pwd=`pwd`
echo "in data processing"
log_file_path=LOGS/data-processor/
logfile=$log_file_path$log_file_name.log
log_file_home_path=LOGS
export LOG_FILE_HOME_PATH=$log_file_home_path
export DATA_EXTRACTION_CONFIG_FILE_LOCATION=$pwd/config.properties
export LIBJARS=/home/data-extraction/2.12.2.1/data-extraction/lib/*.jar
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/abc/lib/*.jar
echo `$HADOOP_CLASSPATH`
hadoop jar data-processor-*.jar com.impl.JobSubmission -libjars ${LIBJARS} &> $log_file_home_path/process.log
echo "in data processing done"

当我从 putty 执行它时,它工作正常,但是当我们使用 java ProcessBuilder 执行它时它失败了。它因“找不到 Hadoop 命令”错误而失败。下面是我用来执行脚本的 Java 代码。

ProcessBuilder builder = new ProcessBuilder(command.trim());
//builder.redirectErrorStream(true);
Process process = builder.start();
exitStatus = process.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));

String line = "";
while ((line = reader.readLine()) != null) {
output.append(line + "\n");
System.out.print(line);
}

最佳答案

问题出在另一个脚本上。脚本 one(1) 启动 Java 应用程序,它在内部调用正在下降的第二个脚本(s2)。脚本一 (S1) 设置了无效的 PATH,而不是 PATH,使用了路径,这造成了整个问题。

关于java - Hadoop 命令不从 java prcoessbuilder 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41748099/

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