0
私はこのスクリプトを持っています。Hadoopコマンドはjava prcoessbuilderから実行されません
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"
パテから実行すると正常に動作しますが、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);
}
Javaの 'ProcessBuilder'でどのように実行しているのですか? –
コードの例で余分な空白を削除しました – jwvh