Ich fügte hinzu
hostname `hostname -I`
auf "/ etc / rc.local" und setzen den Hostnamen korrekt auf die aktuell zugewiesene IP-Adresse.
Wie kann ich eine Ubuntu-Server-VM /etc/hostname/
beim Start automatisch auf den Wert der zugewiesenen IP-Adresse der VM setzen lassen?
Ich erstelle ein Ubuntu-Server-VM-Image, um Hadoop auszuführen. Wenn ein Client mit Hadoop interagiert, gibt er Adressen von Knoten im Cluster zurück (selbst wenn sich in diesem Fall alle Prozesse auf demselben Computer befinden), mit denen der Client interagieren kann. Diese Adressen werden durch die Auflösung des Hostnamens von Java bestimmt, die ich überhaupt nicht zuverlässig finde. Es wurde mir empfohlen, die beste Möglichkeit zu finden /etc/hostname/
, die zugewiesene IP-Adresse der einzigen Netzwerkschnittstelle festzulegen. Alternativ kann es möglich sein, eine Umgebungsvariable festzulegen und diese dann an die JVM zu übergeben, die jeden Hadoop-Prozess ausführt.
Ich fügte hinzu
hostname `hostname -I`
auf "/ etc / rc.local" und setzen den Hostnamen korrekt auf die aktuell zugewiesene IP-Adresse.
Die Verwendung einer festen IP-Adresse wäre die einfachste Lösung. Wenn Sie das tun können, ändern Sie einfach /etc/hostname
den Gast so, dass er folgendermaßen aussieht (natürlich mit der richtigen IP):
192.168.1.10
Wenn Sie das nicht verwenden können / wollen, können Sie einen Cronjob einrichten, der die IP des Systems liest und entsprechend aktualisiert /etc/hostname
. Dieser Befehl gibt Ihnen Ihre IP:
ifconfig | grep Bcast | awk '' | sed 's/addr://'
Fügen Sie nun eine neue Crontab für root hinzu:
sudo crontab -e
Dadurch wird der von Ihnen definierte Editor angezeigt. Fügen Sie diese Zeile zur Crontab-Datei hinzu:
@reboot ifconfig | grep Bcast | awk '' | sed 's/addr://' > /etc/hostname
Dadurch wird der Befehl bei jedem Start des Computers einmal ausgeführt und seine Ausgabe (die IP) wird in gespeichert /etc/hostname
. Ein mögliches Problem ist, dass der Cron-Daemon gestartet wird, bevor eine IP zugewiesen wird. In diesem Fall können Sie festlegen, dass der Vorgang alle fünf Minuten ausgeführt wird:
*/5 * * * * ifconfig | grep Bcast | awk '' | sed 's/addr://' > /etc/hostname