Bei der Einrichtung eines Hadoop-Clusters möchten Sie nicht jeden einzelnen Rechner einrichten und die gesamte erforderliche Software manuell installieren. Die Idee ist, so bald wie möglich mit der Automatisierung zu beginnen. Es gibt zwar viele Tools, die Ihnen dabei helfen können, aber ich bin vor kurzem auf Cobbler und Ansible gestoßen, die eine gute Kombination darstellen und Ihnen helfen, die anstehenden Aufgaben einfach zu definieren.
In diesem Blog möchte ich Ihnen zeigen, wie wir das Betriebssystem installiert und die Software für den Betrieb eines Hadoop-Clusters auf Bare-Metal-Maschinen konfiguriert haben.
Was wir hier gemacht haben, ist nichts Neues und schon gar keine Magie. Es ist nur eine weitere Möglichkeit. Es ist auch nichts Tool-spezifisches dabei. Für die Demo-Einrichtung des Hadoop-Clusters verwenden wir den Cloudera Manager, aber es funktioniert zum Beispiel auch mit der Hortonworks Data Platform. Das Wichtigste dabei ist, dass wir alles automatisieren.
Da wir nicht alles, was wir brauchen, manuell installieren wollen und der normale Stack für den Aufbau eines solchen Clusters aus mehreren Schichten besteht, wie dem Betriebssystem, der Basiskonfiguration (Firewall, ipsec, ipv6, ntpd, Festplattenformatierung usw.), der Cluster-Installation und einigen zusätzlichen Dingen (Überwachung, zusätzliche Pakete), brauchen wir eine Möglichkeit, die Anforderungen jeder Schicht einfach zu konfigurieren.
Die Werkzeuge
Schusterjunge
Das erste Tool, das wir verwenden, ist Cobbler, das die Betriebssystem-Installations-Iso's verwaltet und mit dem wir die IP-Adressen an die Knoten des 'aufzubauenden Clusters' vergeben. Wir verwenden es hauptsächlich als unser Content Management System, in dem wir konfigurieren, welches Betriebssystem installiert werden soll und welche IP ein Rechner mit einer bestimmten MAC-Adresse erhält.
Auf unserem Installationshost läuft also der Cobbler-Daemon und wartet darauf, dass sich ein Rechner mit einer bestimmten MAC-Adresse beim Booten meldet (unter Verwendung der Netzwerk-Boot-Option). Cobbler antwortet dann mit der Übergabe eines Kickstart-Skripts an den Rechner, um die Installation des Betriebssystems durchzuführen. Dieses Skript enthält alle Anweisungen zum Einhängen und Formatieren der Festplatten und sorgt dafür, dass das Betriebssystem ordnungsgemäß installiert wird.
Ansible
Wenn das erledigt ist, kommt unser nächstes Tool Ansible ins Spiel. Ansible wird verwendet, um den Rest miteinander zu verbinden. Hier definieren wir die verschiedenen Rollen, die die Maschinen haben, und für jede Rolle können wir festlegen, welche spezifische Software installiert werden muss. Die Definition erfolgt mit einer einfach zu lesenden DSL. Dies ist zum Beispiel unsere Rollendefinition:
[cluster] node01 node02 [Schuster] Cobbler [Proxy] Cobbler [ganglia-master] node01 [ganglia-nodes:children] cluster [cloudera-manager] node01
Zwischen den spitzen Klammern wird der Rollenname definiert und darunter werden die Namen der Knoten genannt, die Teil dieser Rolle sein müssen.
Und hier ist eine Datei, die definiert, wie Sie eine yum Repo-Datei vom Installationshost auf alle Cluster-Maschinen kopieren und die Pakete jdk und cloudera-manager-deamons installieren:
--- - Name: CM4 Repo konfigurieren copy: src=cloudera-manager/files/etc/yum.repos.d/cm4.repo dest=/etc/yum.repos.d/ owner=root group=root - Name: CM4 allgemeines Zeug installieren yum: name=$Artikel state=installed with_items: - jdk - cloudera-manager-daemons
Sie können mehrere Dateien dieser Art erstellen, um alle Aufgaben zu spezifizieren, die ausgeführt werden sollen. Indem Sie mehrere dieser Dateien miteinander kombinieren, können Sie eine Gesamtmenge von Anforderungen wie diese definieren:
- include: bootstrap.yml - include: repo.yml - include: monitoring.yml - einschließen: cloudera-manager.yml
Cloudera Manager
Das letzte Tool, das wir verwenden, ist der Cloudera Manager, der von den Ansible-Skripten installiert wird und zur Installation der clusterspezifischen Tools wie Impala, HBase usw. verwendet werden kann.
Fertigstellen
- Denken Sie daran, dass es keine Zauberei ist: Herstellerspezifische Hardware kann die Dinge durcheinander bringen (z. B. seltsame Namen für Festplatten-Mounts).
- Derzeit werden Bios-Einstellungen, verschiedene RAID-Einstellungen (noch) nicht behandelt.
- Bei großen Clustern kommt es zu einem hohen anfänglichen Netzwerkverkehr (N-maliges Herunterladen derselben Softwarepakete aus den Yum-Repositories) => Repo-Spiegelung zur Rettung
- Die MAC-Adresse aller Knoten muss bekannt sein
Mitnehmen
- Automatisieren Sie von Anfang an
- Es ist ganz einfach
- Nutzen Sie unseren Open Source Code, um einen Vorsprung zu erhalten
Viel Spaß beim Proviantieren!
Unsere Ideen
Weitere Blogs
Contact




