Wie kann ich eine Ubuntu-Server-VM /etc/hostname/
beim Start automatisch auf den Wert der zugewiesenen IP-Adresse der VM einstellen lassen ?
Ich erstelle ein Ubuntu-Server-VM-Image, um Hadoop auszuführen. Wenn ein Client mit Hadoop interagiert, gibt er die Adressen der Knoten im Cluster zurück (auch wenn sich in diesem Fall alle Prozesse auf demselben Computer befinden), mit denen der Client interagieren kann. Diese Adressen werden von Javas Hostnamen-Auflösung bestimmt, die meiner Meinung nach überhaupt nicht zuverlässig ist. Es wurde mir empfohlen, dies am besten zu umgehen, indem Sie /etc/hostname/
die zugewiesene IP-Adresse der einzigen Netzwerkschnittstelle festlegen . Alternativ kann es eine Möglichkeit geben, eine Umgebungsvariable festzulegen und diese dann an die JVM weiterzuleiten, die jeden Hadoop-Prozess ausführt.
quelle
Antworten:
Ich fügte hinzu
auf "/ etc / rc.local" setzen und den Hostnamen korrekt auf die aktuell zugewiesene IP-Adresse setzen.
quelle
Die Verwendung einer festen IP wäre die einfachste Lösung. Wenn du das kannst, ändere einfach
/etc/hostname
den Gast so, dass er so aussieht (mit der richtigen IP natürlich):Wenn Sie das nicht 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:Fügen Sie nun eine neue crontab für root hinzu:
Daraufhin wird der von Ihnen definierte Editor aufgerufen. Fügen Sie diese Zeile zur crontab-Datei hinzu:
Dadurch wird der Befehl bei jedem Systemstart einmal ausgeführt und die Ausgabe (die IP) 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 es etwa alle fünf Minuten ausgeführt wird:quelle