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

Implementierung der Graustufenversion mit Nginx und Lua

Installieren Sie memcached yum install -y memcach...

js, um die Rotation von Webseitenbildern zu realisieren

In diesem Artikel wird der spezifische Code von j...

Eine kurze Analyse der MySQL-Kardinalitätsstatistiken

1. Was ist die Kardinalität? Mit Kardinalität wir...

Analyse des HTML-Schreibstils und Gründe erfahrener Leute

1. Navigation: Ungeordnete Liste vs. andere Besch...

Implementierung des CSS-Quellcodes für herzförmige Ladeanimationen

Lassen Sie mich Ihnen ohne weitere Umschweife den...

Fallstudie zum Unterschied zwischen JavaScript parseInt() und Number()

Lernziele: Die beiden Funktionen parseInt() und N...

Lösung zum Ändern des Datenspeicherorts der Datenbank in MySQL 5.7

Da die in der MySQL-Datenbank gespeicherten Daten...

Eine detaillierte Erklärung, wie React Fiber funktioniert

Inhaltsverzeichnis Was ist React Fiber? Warum Rea...