Eine Einführung in die Hadoop-Verwaltung

Eine Einführung in die Hadoop-Verwaltung

  • ITOps & DevOps
6 Minuten Lesezeit Aktualisiert Apr 25, 2017

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.

play

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.

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus ITOps & DevOps

Interessieren Sie sich für mehr von BMC?

The Brief ist unsere monatliche E-Mail zum Mainframe und zur Enterprise-Orchestrierung: Recherchen, Kundenberichte, Produktnachrichten, Events.

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Sie haben The Brief abonniert

Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.