Ich verwende dieses Bash-Skript:Problem mit Bash-Skript
for a in `sort -u $HADOOP_HOME/conf/slaves`; do
rsync -e ssh -a "${HADOOP_HOME}/conf" ${a}:"${HADOOP_HOME}"
done
for a in `sort -u $HBASE_HOME/conf/regionservers`; do
rsync -e ssh -a "${HBASE_HOME}/conf" ${a}:"${HBASE_HOME}"
done
Als ich das Skript von Shell direkt aufrufen, gibt es keine Probleme und es funktioniert gut. Aber wenn ich rufe das Skript von einem anderen Skript, obwohl das Skript macht seinen Job, bekomme ich diese Meldung am Ende:
sort: open failed: /conf/slaves: No such file or directory
sort: open failed: /conf/regionservers: No such file or directory
ich gesetzt haben $ HADOOP_HOME und $ HBASE_HOME in/etc/profile und das Skript funktioniert das Job richtig. Aber ich verstehe nicht, warum es am Ende diese Nachricht gibt.
Ich bestätigte das Problem, dies zu sein, aber BASH_ENV export immer noch nicht lösen .. –
jetzt gelöst .. Ich wurde verwendet sh ./call/to/your/HADOOP/script.sh, also wurde eine neue Shell erstellt. Wenn ich es einfach als ./call/to/your/HADOOP/script.sh nenne, funktioniert es. :) –