Festlegen des Hostnamens als IP unter Linux für Hadoop VM

2066
EngineerBetter_DJ

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.

3
Wie ist die IP eingestellt? DHCP? Wäre die Verwendung einer festen IP-Adresse eine Option? terdon vor 11 Jahren 0

2 Antworten auf die Frage

6
EngineerBetter_DJ

Ich fügte hinzu

hostname `hostname -I` 

auf "/ etc / rc.local" und setzen den Hostnamen korrekt auf die aktuell zugewiesene IP-Adresse.

Jetzt fühle ich mich dumm. +1 terdon vor 11 Jahren 0
Dies funktioniert auch für JMeter Paul Nelson Baker vor 9 Jahren 0
3
terdon

Die Verwendung einer festen IP-Adresse wäre die einfachste Lösung. Wenn Sie das tun können, ändern Sie einfach /etc/hostnameden 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