Auf einen Blick: Eine Einführung in die Hadoop-Verwaltung behandelt wichtige Verwaltungsaufgaben für Hadoop-Cluster mit Fokus auf Sicherheit, Leistungsoptimierung und Datenknotenverwaltung. Sie hebt die Bedeutung der Aufrechterhaltung hoher Verfügbarkeit hervor und bietet Hinweise zur Nutzung von Weboberflächen zur Überwachung.
- Häufige Aufgaben sind die Überwachung der Cluster-Gesundheit und das Hinzufügen von Datenknoten.
- Sicherheitsfunktionen umfassen Kerberos-Authentifizierung und Datenverschlüsselungskonfigurationen.
Hier erklären wir einige der häufigsten administrativen Aufgaben von Hadoop. Es gibt viele, daher sprechen wir nur über einige der Hauptaufgaben. Der Leser wird ermutigt, die Apache Hadoop-Dokumentation zu konsultieren, um jedes Thema genauer zu untersuchen.
Während du einige Admin-Befehle und Aufgaben durcharbeitest, solltest du wissen, dass jede Version von Hadoop leicht unterschiedlich ist. Sie neigen dazu, einige der Befehlsskriptnamen zu ändern. In diesem Beispiel verwenden wir Hadoop 2.7.3.
Sie benötigen eine Hadoop-Cluster-Einrichtung, um dieses Material durchzugehen. Folgen Sie unseren Anweisungen hier , wie man einen Cluster aufbaut. Es reicht nicht aus, eine rein lokal installierte Hadoop-Installation zu betreiben, wenn Sie einige Admin-Aufgaben lernen möchten.
Häufige Verwaltungsaufgaben
Hier sind einige häufige Verwaltungsaufgaben:
- Überwachen Sie die Gesundheit des Clusters
- Neue Datenknoten bei Bedarf hinzufügen
- Schalten Sie optional die Sicherheit ein
- Optional die Verschlüsselung aktivieren
- Empfohlen, aber optional, um die hohe Verfügbarkeit einzuschalten
- Optional, den Job History Tracking Server MapReduce einzuschalten
- Beheben Sie beschädigte Datenblöcke, wenn nötig
- Tune-Performance
Einige dieser Aufgaben besprechen wir im Folgenden.
Schalte die Sicherheit ein
Standardmäßig ist Hadoop ohne Sicherheit eingerichtet. Um Hadoop im sicheren Modus zu betreiben, authentifiziert sich jeder Benutzer und jeder Dienst mit Kerberos. Kerberos ist in Windows integriert und lässt sich leicht zu Linux hinzufügen.
Was Hadoop selbst betrifft, so verwenden die Knoten RPC (Remote Procedure Calls), um Befehle auf anderen Servern auszuführen. Du kannst dfs.encrypt.data.transfer und hadoop.rpc.protection so einstellen, dass sie Datenübertragung und Remote Procedure Calls verschlüsseln.
Um ruhende Daten zu verschlüsseln, müsste der Administrator einen Verschlüsselungsschlüssel, eine HDFS-Verschlüsselungszone und Ranger-Schlüsselmanager-Dienste einrichten sowie Benutzer und Rollen einrichten.
Hadoop-Webinterface-URLs
Die häufigsten URLs, die du mit Hadoop verwendest, sind:
| NameNode | http://localhost:50070 |
| Garnressourcenmanager | http://localhost:8088 |
| MapReduce JobHistory-Server | http://localhost:19888 |
Diese Bildschirme sind unten dargestellt.
NameNode-Hauptbildschirm
Garnressourcenmanager
MapReduce Job History Server
MapReduce-Job-History-Server
Hochverfügbarkeit konfigurieren
High Availability setzt zwei redundante NameNodes in eine Active/Passiv-Konfiguration mit einem Hot-Standby. Ohne diese kann der Cluster, falls der NameNode abstürzt, nicht genutzt werden, bis der NameNode wiederhergestellt ist. Mit HA kann der Administrator im Falle eines Ausfalls auf den zweiten NameNode umschalten.
Beachten Sie, dass der SecondaryNameNode, der auf dem Clustermaster läuft, kein HA NameNode-Server ist. Der primäre und der sekundäre NameNode-Server arbeiten zusammen, sodass der sekundäre nicht als Failover-Mechanismus verwendet werden kann.
Beim Einrichten von HA setzt du dfs.nameservices und dfs.ha.namenodes. [nameservice-ID] in hdfs-site.xml sowie ihre IP-Adresse ein und portierst und mountest ein NFS-Verzeichnis zwischen den Rechnern, damit sie einen gemeinsamen Ordner teilen können.
Sie führen administrative Befehle mit der CLI aus:
hdfs haadmin
Der MapReduce-Server für den Jobverlauf ist standardmäßig nicht installiert. Die Konfiguration und den Start sind unten dargestellt.
cat /usr/local/hadoop/hadoop-2.7.3//etc/hadoop/mapred-site.xml
mapred.job.tracker
localhost:9001
mapreduce.jobhistory.address
localhost:10020
mapreduce.jobhistory.webapp.address
localhost:19888
Starte den MapReduce-Job-Verlaufsserver mit folgendem Befehl:
$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh --config
$HADOOP_HOME/etc/hadoop start historyserver
starting historyserver, logging to
/usr/local/hadoop/hadoop-2.7.3//logs/mapred-hadoop-historyserver-hp.out
Und frage es so ab:
curl http://localhost:19888/ws/v1/history/info
{"historyInfo":{"startedOn":1492004745263,"hadoopVersion":"2.7.3","hadoopBuildVersion":"2.7.3 from baa91f7c6bc9cb92be5982de4719c1c8af91ccff by root source checksum 2e4ce5f957ea4db193bce3734ff29ff4","hadoopVersionBuiltOn":"2016-08-18T01:41Z"}}
Oder einfach auf der Webseite anmelden.
Datenknoten hinzufügen
Du kannst einen Datanode hinzufügen, ohne Hadoop stoppen zu müssen.
Die grundlegenden Schritte sind, den Hadoop-Benutzer zu erstellen und dann SSH-Schlüssel ohne Passcode zu konfigurieren, sodass der Benutzer von einem Server zum anderen ssh-en wechseln kann, ohne ein Passwort eingeben zu müssen. Aktualisieren Sie die /etc/hosts-Dateien, um den Hostnamen auf alle Rechner im Cluster hinzuzufügen. Dann zippt und kopiert man das gesamte $HADOOP_HOME-Verzeichnis des Masters auf denselben Zielrechner im selben Verzeichnis.
Dann fügt man den neuen Datanode zu $HADOOP_HOME/etc/hadoop/slaves hinzu.
Führen Sie dann diesen Befehl auf dem neuen Datenknoten aus:
hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start datanode
Jetzt solltest du sehen können, dass es angezeigt wird, wenn du die Topologie ausdruckst:
hdfs dfsadmin -printTopology
192.168.1.83:50010 (hadoop-slave-1)
192.168.1.85:50010 (hadoop-slave-2)
Führen Sie den Pig Mapreduce Job aus
Hier ist ein Pig-Skript, das du ausführen kannst, um einen MapReduce-Job zu generieren, damit du einen Job verfolgen kannst. (Wenn du Pig nicht installiert hast, kannst du auf https://www.bmc.com/blogs/hadoop-apache-pig/ zurückgreifen)
Erstelle zuerst diese Datei sales.csv
Dallas,Jane,20000
Houston,Jim,75000
Houston,Bob,65000
New York,Earl,40000
Dallas,Fred,40000
Dallas,Jane,20000
Houston,Jim,75000
Du kannst die Datei mehrfach auf sich selbst kopieren, um eine sehr große Datei zu erstellen, sodass du einen Job hast, der für ein paar Minuten läuft.
Dann kopiere es vom lokalen Dateisystem zu Hadoop.
hadoop fs -copyFromLocal /data
Überprüfen Sie, ob es dort ist:
hadoop fs -cat /user/sales.csv
Führe Pig aus. Pig ohne Kommandozeilenoptionen läuft Pig im Cluster-Modus (auch MapReduce genannt).
Füge dieses Skript ein:
a = LOAD '/data/sales.csv' USING PigStorage(',') AS (shop:chararray,employee:chararray,sales:int);
Dump a
Describe a
b = group a by employee;
results = FOREACH b generate SUM(a.sales) as sum, a.employee;
Dann kannst du die verschiedenen Bildschirme auf Jobdaten überprüfen.
Gängige CLI-Befehle
| Stopp und fang an, Hadoop. |
start_dfs.sh start_yarn.sh
|
| HDFS formatieren. |
$HADOOP_HOME/bin/hdfs namenode -format
|
| Schalte den abgesicherten Modus aus. |
hadoop dfsadmin -safemode leave
|
| Listen Sie die Prozesse auf. |
jps
Namenode jobs:
26961 RunJar
28916 SecondaryNameNode
24121 JobHistoryServer
29403 Jps
28687 NameNode
29135 ResourceManagerDatanode-Jobs;
4231 Jps
3929 DataNode
4077 NodeManager
|
| Beschädigte Datenblöcke. Finde fehlende Blöcke. |
hdfs fsck /
|
Überwachung der Gesundheit von Knotenmanagern
yarn.nodemanager.health-checker.script.path
|
Skriptpfad und Dateiname. |
yarn.nodemanager.health-checker.script.opts
|
Kommandozeilenoptionen. |
Command line options.
|
Laufzeit |
checker.script.interval-ms
|
|
checker.script.interval-ms
|
Auszeit. |
Weitere häufige Verwaltungsaufgaben
| Log-Aggregation einrichten. |
| Konfigurieren Sie das Rack-Bewusstsein. |
| Konfigurieren Sie die Lastverteilung zwischen Datenknoten. |
| Upgrade auf eine neuere Version. |
| Verwenden Sie Cacheadmin, um den zentralisierten Cache von Hadoop zu verwalten. |
| Mach Schnappschüsse. |
| Konfigurieren Sie Benutzerberechtigungen und Zugriffskontrolle. |
Häufige Probleme
Es wird nicht empfohlen, localhost als URL für das Hadoop-Dateisystem auf dem localhost zu verwenden. Das führt dazu, dass es auf 127.0.0.1 bindet, anstatt auf die routbare IP-Adresse des Rechners. Dann erhalten Sie in Pig diesen Fehler:
pig java.net.connectexception connection refused localhost:9000
Setzen Sie also die Bind-IP-Adresse auf 0.0.0.0 in etc/hadoop/core-site.xml:
fs.defaultFS
hdfs://0.0.0.0:9000/
WebAppProxy-Server
Das Einrichten des WebAppProxy-Servers ist ein Sicherheitsproblem. Man kann ihn nutzen, um einen Proxy-Server zwischen Mastern und Slaves einzurichten. Er blockiert Nutzer daran, die Yarn-URL für Hacking zu verwenden. Der Yarn-Nutzer hat erhöhte Rechte, weshalb das ein Risiko darstellt. Er wirft eine Warnung aus, wenn jemand darauf zugreift und Cookies entfernen, die bei einem Angriff verwendet werden könnten.
Wie geht es jetzt weiter?
Der Nutzer wird ermutigt, die in diesem Dokument genannten Themen und insbesondere im Abschnitt "Andere häufige Admin-Aufgaben" weiter zu lesen, da dort Tuning- und Wartungswerkzeuge und Probleme gefunden werden, die beim Warten eines Produktionssystems und der Behebung aller damit verbundenen Probleme sicher zu Problemen werden.
Hadoop-Leitfaden
- Hadoop-Tutorial für Anfänger: Hadoop-Basics
- Eine Einführung in die Hadoop-Verwaltung
- Einführung in die Hadoop-Sicherheit
- Einführung in den Apache Flume
- Eine Einführung in Hive
- Eine Einführung in HDFS
- Einführung in Hbase
- Hadoop-Beispiele: 5 reale Anwendungsfälle
- Hadoop-Karrieren: Einstellung
- Hadoop-Interviewfragen
- Eine Einführung in die Hadoop-Analyse
- Einführung in Apache Pig
- Eine Einführung in Apache-Garn
- Eine Einführung in die Hadoop-Architektur
- Vorteile und Vorteile von Hadoop
- Hadoop mit Apache Cassandra verwenden
- Hadoop vs Kubernetes: Werden K8s & Cloud Native Hadoop beenden?
- Hadoop-Zertifizierungen
- Hadoop-Cluster: Eine Einführung
- Hadoop-Ökosystem und Komponenten
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.