So führen Sie Hadoop aus und erstellen Images in Docker

So führen Sie Hadoop aus und erstellen Images in Docker

Wir erfinden das Rad neu: Hier verwenden wir Neuverpackung, um ein Docker-basiertes Hadoop-Image zu generieren.

Die Software, von der der Hadoop-Cluster abhängt, ist: JDK, SSH usw., solange diese beiden Elemente und Hadoop-bezogene Pakete in das Image gepackt sind;

Vorbereitung der Konfigurationsdatei

1. Hadoop-bezogene Konfigurationsdateien: core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml, slaves, hadoop-env.sh
2. SSH-Konfigurationsdatei: ssh_config
3. Startdatei des Hadoop-Clusters: start-hadoop.sh

Erstellen Sie ein Bild

1. Installationsabhängigkeiten

Führen Sie apt-get update && \ aus.
 apt-get install -y openssh-server openjdk-8-jdk wget

2. Laden Sie das Hadoop-Paket herunter

Führen Sie wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz && \ aus.
tar -xzvf hadoop-2.10.0.tar.gz && \
mv hadoop-2.10.0 /usr/local/hadoop && \
rm hadoop-2.10.0.tar.gz && \
rm /usr/local/hadoop/share/doc -rf

3. Umgebungsvariablen konfigurieren

ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
ENV HADOOP_HOME=/usr/local/hadoop 
ENV PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

4. SSH-Schlüssel für passwortfreie Node-Anmeldung generieren

Führen Sie den Befehl ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' && \ aus.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/autorisierte_schlüssel

5. Erstellen Sie Hadoop-bezogene Verzeichnisse, kopieren Sie die zugehörigen Konfigurationsdateien, fügen Sie den zugehörigen Dateien Ausführungsberechtigungen hinzu und formatieren Sie schließlich den Namenode-Knoten. Starten Sie den SSH-Dienst, wenn jeder Knoten gestartet wird.

RUN mkdir -p ~/hdfs/namenode && \ 
mkdir -p ~/hdfs/datanode && \
mkdir $HADOOP_HOME/logs
KOPIEREN Sie config/* /tmp/
#SSH kopieren, Hadoop-Konfiguration bezogen RUN mv /tmp/ssh_config ~/.ssh/config && \
mv /tmp/hadoop-env.sh /usr/local/hadoop/etc/hadoop/hadoop-env.sh && \
mv /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml && \ 
mv /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && \
mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
mv /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && \
mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves && \
mv /tmp/start-hadoop.sh ~/start-hadoop.sh && \
mv /tmp/run-wordcount.sh ~/run-wordcount.sh
#Ausführungsberechtigung hinzufügen RUN chmod +x ~/start-hadoop.sh && \
chmod +x ~/run-wordcount.sh && \
chmod +x $HADOOP_HOME/sbin/start-dfs.sh && \
chmod +x $HADOOP_HOME/sbin/start-yarn.sh 
#Format Namenknoten
RUN /usr/local/hadoop/bin/hdfs namenode -format 


Ausführen eines Hadoop-Clusters in Docker

Nachdem das Image über die obige Docker-Datei generiert wurde, können Sie das oben generierte Image zum Erstellen eines Hadoop-Clusters verwenden. Starten Sie hier einen Master- und zwei Slave-Knoten.

Fügen Sie ein Bridge-Netzwerk hinzu:

Docker-Netzwerk erstellen --driver=bridge solinx-hadoop

Starten Sie den Masterknoten:

docker run -itd --net=solinx-hadoop -p 10070:50070 -p 8088:8088 --name solinx-hadoop-master --hostname solinx-hadoop-master solinx/hadoop:0.1

Starten Sie den Slave1-Knoten:

docker run -itd --net=solinx-hadoop --name solinx-hadoop-slave1 --hostname solinx-hadoop-slave1 solinx/hadoop:0.1

Starten Sie den Slave2-Knoten:

docker run -itd --net=solinx-hadoop --name solinx-hadoop-slave2 --hostname solinx-hadoop-slave1 solinx/hadoop:0.1

Rufen Sie den Master-Knoten auf und führen Sie das Skript aus, um den Hadoop-Cluster zu starten:

Zusammenfassen

Oben habe ich Ihnen das Ausführen von Hadoop und die Imageerstellung in Docker vorgestellt. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Detailliertes Beispiel für die parallele Verarbeitung mehrerer Jobs in Hadoop
  • Detaillierte Erläuterung häufiger Hadoop-Fehler und -Lösungen
  • So konfigurieren Sie Hadoop zur Verwendung von IntelliJ IDEA zum Remote-Debuggen von Code
  • Detailliertes Tutorial zur Verwendung von Hadoop in Spring (Schnellstart mit Big Data)
  • Detaillierte Methode zur Verwendung von IDEA zum Erstellen einer Hadoop-Entwicklungsumgebung unter Windows
  • Erfahren Sie, wie Sie einen Hadoop 3.x-Pseudocluster auf der Tencent Cloud erstellen
  • CentOS 7 erstellt Hadoop 2.10 mit hoher Verfügbarkeit (HA)
  • Lernen Sie, wie Sie mit Hadoop bestimmte Inhalte aus einer Datei extrahieren

<<:  Zusammenfassung der in MySQL häufig verwendeten Typkonvertierungsfunktionen (empfohlen)

>>:  Tencent-Interview: Was sind die Gründe, warum eine SQL-Anweisung sehr langsam ausgeführt wird? ---Sehen Sie sich die Serie „Regret“ nicht an (empfohlen)

Artikel empfehlen

Vue + Element zur dynamischen Anzeige von Hintergrunddaten zu Optionen

brauchen: Implementieren Sie die dynamische Anzei...

Detaillierte Erläuterung der MySQL-Hochverfügbarkeitsarchitektur

Inhaltsverzeichnis Einführung MySQL-Hochverfügbar...

Spezifische Verwendung von Nginx Keepalive

Der Standardanforderungsheader des http1.1-Protok...

Mehrere Methoden zum Ausführen von SQL-Dateien unter der MySQL-Befehlszeile

Inhaltsverzeichnis Die erste Methode: Wenn die My...

Zusammenfassung der XHTML-Tags auf Blockebene

* Adresse - Adresse * Blockzitat - Blockzitat * Mi...

Vue implementiert Chat-Schnittstelle

In diesem Artikelbeispiel wird der spezifische Co...

Hinweise zur Verwendung der verknüpften Liste des Linux-Kernel-Gerätetreibers

/******************** * Anwendung von verknüpften...

Erste Schritte mit benutzerdefinierten Anweisungen in Vue 3.0

Inhaltsverzeichnis 1. Benutzerdefinierte Anweisun...

Docker generiert Bilder über Container und übermittelt DockerCommit im Detail

Inhaltsverzeichnis Nachdem Sie einen Container lo...

Detaillierte Erklärung, wie zwei Node.js-Prozesse kommunizieren

Inhaltsverzeichnis Vorwort Kommunikation zwischen...

Detaillierte Erklärung der MySQL-Instanz mit aktiviertem SSD-Speicher

Detaillierte Erklärung der MySQL-Instanz mit akti...

So greifen Sie in Docker auf den lokalen Computer (Hostcomputer) zu

Frage Wie greife ich in Docker auf die lokale Dat...

Der Button ist im IE auf beiden Seiten gestreckt

Wenn Sie Schaltflächen (Eingabe, Schaltfläche) sch...