
Ich habe zwei Server, die ich mit diesen Befehlen ausführen muss:
cd /home/hadoop/apache-hive-3.1.1-bin/
sudo hiveserver2
Und
sudo /opt/hue/build/env/bin/hue runserver
Also habe ich beide Befehle in einSkript.sh(zusammen mit anderen Sachen):
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
cd /home/hadoop/apache-hive-3.1.1-bin/
hiveserver2 &
sudo /opt/hue/build/env/bin/hue runserver &
Wenn ich es also ausführe, bash script.sh
funktionieren nur die ersten vier Zeilen. Der Hue-Server wird nie eingeschaltet.
Warum ist das so? Liegt es daran, dass das Terminal für den Hiveserver reserviert bleibt? Wie kann ich das bitte vermeiden? Danke
BEARBEITEN 1:
Also habe ich mein Skript wie vorgeschlagen bearbeitet:
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
sudo gnome-terminal -- bash -c "cd /home/hadoop/apache-hive-3.1.1-bin; hiveserver2 &"
sudo /opt/hue/build/env/bin/hue runserver &
und ich habe es mit ausgeführt bash script.sh
. Jetzt läuft hueserver, aber nicht hiveserver. Ein zweites Terminal ist geöffnet, aber es ist nichts darin (komplett schwarzer Bildschirm).
Antwort1
Folgendes können Sie stattdessen tun:
gnome-terminal -- bash -c "$HADOOP_HOME/sbin/start-dfs.sh; $HADOOP_HOME/sbin/start-yarn.sh; cd /home/hadoop/apache-hive-3.1.1-bin; hiveserver2" &&
sudo /opt/hue/build/env/bin/hue runserver &