Erstellen eines Hadoop-Clusters (Cloudera Manager unter Ubuntu 18.04)

TL;DR

Umgebung

Ein Cluster besteht aus insgesamt acht Servern, einem Server, der auch als Verwaltungsknoten und Masterknoten dient, und sieben weiteren Servern. Das Betriebssystem und die Version sind wie folgt.

Cloudera Manager- und Verwaltungsknoten, denen viele Rollen zugewiesen sind, verbrauchen viel Speicher. Es wird daher empfohlen, so viel wie möglich hinzuzufügen. Oder es sollte durch einen dedizierten Knoten geteilt werden.

In diesem Artikel wird der Masterknoten als "amdahl01.example.jp" und die anderen Slaveknoten als "amdahl [02-08] .example.jp" angezeigt.

Installation

Die Arbeit basiert im Wesentlichen auf dem Cloudera-Installationshandbuch.

Der Benutzer erstellt zum Zeitpunkt der Installation ein Konto mit dem Namen "cloudera". Jedes Konto mit Sudo-Berechtigungen reicht aus. Stellen Sie sicher, dass die sudo-Berechtigung ohne Kennwort ausgeführt werden kann.

sudo update-alternatives --config editor #Ändern Sie den Standardeditor
sudo visudo #Ermöglichen Sie Cloudera-Benutzern, sudo ohne Kennwort auszuführen

/etc/sudoers


cloudera ALL=(ALL) NOPASSWD: ALL

Installieren Sie Ubuntu 18.04 Server auf allen Knoten. Bitte passen Sie die Netzwerkeinstellungen usw. an die Umgebung an. In diesem Artikel wird "netplan" verwendet. Der Spiegelserver ist auf "http: // jp.archive.ubuntu.com / ubuntu /" eingestellt. Aktualisieren Sie das Paket nach der Installation auf die neueste Version.

sudo apt update -y && sudo apt upgrade -y

Netzwerk

Stellen Sie den Hostnamen und den vollqualifizierten Domänennamen für jeden Knoten entsprechend ein. Der Hostname wird zum Zeitpunkt der Installation angegeben oder durch einen Befehl festgelegt.

sudo hostnamectl set-hostname amdahl01.example.jp

Ermöglicht das Auflösen der IP-Adresse und des FQDN jedes Knotens. Es ist nicht erforderlich, es extern zu veröffentlichen. Bearbeiten Sie daher "/ etc / hosts" und ordnen Sie es zu. Möglicherweise möchten Sie die Zuordnung zwischen dem Hostnamen und localhost entfernen.

/etc/hosts


127.0.0.1 localhost

192.168.141.141 amdahl01.example.jp amdahl01
192.168.141.142 amdahl02.example.jp amdahl02
192.168.141.143 amdahl03.example.jp amdahl03
192.168.141.144 amdahl04.example.jp amdahl04
192.168.141.145 amdahl05.example.jp amdahl05
192.168.141.146 amdahl06.example.jp amdahl06
192.168.141.147 amdahl07.example.jp amdahl07
192.168.141.148 amdahl08.example.jp amdahl08

Vorbereitung für die Installation

Deaktivieren Sie die Firewall. Diesmal ist es systemd, sodass Sie es mit dem folgenden Befehl stoppen können.

sudo systemctl stop ufw
sudo systemctl disable ufw

Wenn SELinux aktiviert ist, deaktivieren Sie es bitte. Dieses Mal ist es nicht installiert, daher werde ich es weglassen.

Die Zeitverwaltung sollte bereits unter systemd erfolgen. Wechseln Sie daher zu ntp.

sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd

Installieren Sie ntp. Bearbeiten Sie / etc / ntp.conf, um den ntp-Server einzurichten. Ich habe ntp.nict.jp sicher eingestellt.

sudo apt install -y ntp ntpdate
sudo systemctl start ntp
sudo systemctl enable ntp

vi /etc/ntp.conf
ntpdate -u ntp.nict.jp
hwclock --systohc

Installieren Sie die erforderliche Software.

sudo apt install -y vim tmux git curl wget build-essential
sudo apt install -y make xz-utils file liblzma-dev patch zlib1g-dev g++ gcc 

MariaDB / MySQL / PostgreSQL-Installation (optional)

Installieren Sie die Datenbanksoftware. Da der integrierte PostgreSQL-Server bei der Installation von Cloudera Manager erstellt wird, richten Sie ihn entsprechend der Verwendungsumgebung ein. Weitere Informationen finden Sie im Offiziellen Handbuch.

Das folgende Beispiel zeigt das Einrichten von MySQL. Die in der Tabelle angezeigte Datenbank und die Benutzer werden erstellt.

Service Database User
Cloudera Manager Server scm scm
Acrivity Monitor amon amon
Hue hue hue
Hive hive hive
Oozie oozie oozie
sudo apt install -y mysql-server libmysql-java
sudo /usr/bin/mysql_secure_installation
mysql -u root -p
create database <database> default character set utf8 default collate utf8_general_ci;
GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';

Die für Cloudera Manager verwendete Datenbank wird mit dem folgenden Skript festgelegt. Andere Ökosystemdatenbanken werden beim Erstellen eines Clusters über die Web-GUI festgelegt.

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm

Wenn Sie die integrierte Datenbank nicht verwenden, sind die folgenden Dienste nicht erforderlich. Wenn es läuft, können Sie es stoppen.

sudo systemctl stop cloudera-scm-server-db.service
sudo systemctl disable cloudera-scm-server-db.service

Cloudera Manager Installation

Installieren Sie Cloudera Manager (nur Verwaltungsknoten). Laden Sie das Installationsprogramm herunter und erteilen Sie ihm die Ausführungsberechtigung. Wenn Sie es ausführen, wird das TUI-Installationsprogramm gestartet, aber Sie müssen sich keine Sorgen machen. Fahren Sie also so fort, wie es ist. Wenn die Installation normal abgeschlossen ist, können Sie von Ihrem Browser aus mit "amdahl01.example.jp: 7180" darauf zugreifen.

wget https://archive.cloudera.com/cm6/6.3.0/cloudera-manager-installer.bin
chmod u+x cloudera-manager-installer.bin
sudo ./cloudera-manager-installer.bin

Cluster-Installation

Melden Sie sich bei der Cloudera Manager-Webkonsole an. Der Benutzername / das Passwort lautet standardmäßig "admin / admin". Befolgen Sie die Anweisungen auf dem Bildschirm, um mit der Einrichtung fortzufahren. Wenn Sie die Einstellungen nicht ändern, sind Sie möglicherweise ratlos.

Der verwaltete Host (das Ziel für die Installation des Ökosystems) wird vom vollqualifizierten Domänennamen angegeben. Dieses Mal habe ich "amdahl [01-08] .example.jp" gesucht und ausgewählt, um es auf allen Knoten zu installieren. Um die Software auf jedem Knoten zu installieren, ist es erforderlich, SSH vom Verwaltungsknoten zu anderen Knoten ausführen zu können und den Befehl sudo ohne Kennwort ausführen zu können. Es ist eine gute Idee, das zuerst erstellte Cloudera-Konto zu verwenden. Der SSH-Berechtigungsnachweis legt das Kennwort und den öffentlichen Schlüssel fest.

Geben Sie außerdem das Ökosystem, die Datenbank usw. entsprechend der gewünschten Umgebung an. Schnellere Netzwerkgeschwindigkeiten sind besser, da das Herunterladen und Installieren des Ökosystems viel Zeit in Anspruch nimmt.

Wenn die Einrichtung abgeschlossen ist, wechselt der Bildschirm zum Dashboard-Bildschirm. Wahrscheinlich werden viele Warnungen angezeigt. Überprüfen Sie daher die Einstellungen nacheinander.

2020-09-12_064436_221584607.png

Das ist alles zum Einrichten des Clusters. Danke für deine harte Arbeit.

Recommended Posts

Erstellen eines Hadoop-Clusters (Cloudera Manager unter Ubuntu 18.04)
[Ruby] Erstellen einer Ruby-Entwicklungsumgebung unter Ubuntu
Erstellen von WebGIS unter Ubuntu20.04 LTS
Erstellen Sie eine XAMPP-Umgebung unter Ubuntu
Aufbau einer Deep Learning-Umgebung (Ubuntu 20.04 LTS)
Aufbau eines DLNA-Servers unter Ubuntu (vorerst nur verschieben)
Schreiben Sie eine Docker-Datei, um jupyter-lab auf Ubuntu zu starten
So erstellen Sie eine Pytorch-Umgebung unter Ubuntu