Erfahren Sie, wie Sie einen Hadoop 3.x-Pseudocluster auf der Tencent Cloud erstellen

Erfahren Sie, wie Sie einen Hadoop 3.x-Pseudocluster auf der Tencent Cloud erstellen

1. Umweltvorbereitung

CentOS Linux Version 7.5.1804 (Core)

Installieren

Erstellen eines Ordners

$ cd /home/centos
$ mkdir Software
$ mkdir-Modul

Importieren Sie das Installationspaket in den Softwareordner

$ CD-Software
# Ziehen Sie dann die Datei in

Das hier verwendete Installationspaket ist

/home/centos/software/hadoop-3.1.3.tar.gz

/home/centos/software/jdk-8u212-linux-x64.tar.gz

$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C ../Modul
$ tar -zxvf hadoop-3.1.3.tar.gz -C ../Modul

Konfigurieren von Umgebungsvariablen

$ cd /etc/profile.d/
$ vim meine_umgebung.sh

Um die Systemvariablen nicht zu verschmutzen, erstellen wir selbst ein Umgebungsvariablenskript. Der Konfigurationsinhalt lautet wie folgt

#JAVA_HOME,PFAD 
# export wird zu einer globalen Variable hochgestuft. Wenn Ihr Pfad von meinem abweicht, denken Sie daran, hier Ihren eigenen Pfad zu verwenden export JAVA_HOME=/home/centos/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

#HADOOP_HOME
exportiere HADOOP_HOME=/home/centos/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

Dann speichern und beenden (wenn Sie nicht wissen, wie man vim verwendet, können Sie die grundlegende Verwendung von vim lesen, ich werde hier nicht ins Detail gehen).

Lassen Sie es als Quelle verwenden, damit die Umgebungsvariablen wirksam werden

$ Quelle /etc/Profil

Testen Sie es, um zu sehen, ob es funktioniert

$ Hadoop-Version 

$ Java 

Wenn die obige Schnittstelle angezeigt wird, liegt kein Problem vor. Wenn es immer noch nicht erfolgreich ist, können Sie die folgenden beiden Prüfungen durchführen:

  • Gehen Sie zum Bin-Verzeichnis unter dem Installationsverzeichnis von Java und Hadoop, führen Sie sie jeweils aus und prüfen Sie, ob sie erfolgreich sind. Wenn dies fehlschlägt, liegt ein Problem bei der Dekomprimierung des Installationspakets vor und die Software selbst wurde nicht erfolgreich installiert. Löschen und neu installieren.
  • Wenn der Vorgang erfolgreich ist, bedeutet dies, dass die Umgebungsvariablen nicht erfolgreich konfiguriert wurden. Anschließend können Sie die Pfadeinstellung der Umgebungsvariable überprüfen. Wenn kein Problem vorliegt, versuchen Sie einen Neustart.

ssh ohne passwort

Obwohl es sich um einen Pseudocluster handelt, ist bei der Verbindung des lokalen Computers mit dem lokalen Computer immer noch ein Kennwort erforderlich. Sie müssen daher SSH ohne Kennwort einrichten.

$ ssh-keygen -t rsa

Drücken Sie einfach die Eingabetaste, wenn die Eingabeaufforderung angezeigt wird. Nach der Generierung des geheimen Schlüssels

$ ssh-copy-id lokaler Hostname

Hosts-Datei konfigurieren

vi /etc/hosts
#Die Konfiguration, die ich hier behalte, ist, dass der Master mit dem Intranet von Tencent Cloud konfiguriert ist. Wenn das externe Netzwerk konfiguriert ist, kann der Eclipse-Client keine Verbindung zu Hadoop herstellen
::1 lokaler Host.lokale Domäne lokaler Host
::1 localhost6.localdomain6 localhost6
172.16.0.3 Meister
127.0.0.1 lokaler Host

Ändern des Hostnamens

vi /etc/sysconfig/netzwerk 
#HOSTNAME in Master ändern
HOSTNAME=master

Hostnamen ändern

$ hostnamectl --static set-hostname master

Firewall deaktivieren

$ systemctl Firewall deaktivieren #Permanent

2. Konfigurieren Sie Hadoop

Konfigurationsdateien

Geben Sie den Hadoop-Konfigurationsdateibereich ein. Alle Konfigurationsdateien befinden sich in diesem Ordner

$ cd /home/centos/module/hadoop-3.1.3/etc/hadoop

Die Dateien, die wir konfigurieren möchten, sind hauptsächlich

core-site.xml

  • fs.defaultFS ist der Zugriffspfad der lokalen Maschine;
  • hadoop.tmp.dir ist der Datenspeicherpfad
  • Wenn Sie die Intranetadresse nicht kennen, überprüfen Sie sie auf der Tencent Cloud-Website.

hdfs-site.xml

  • dfs.replication bezieht sich auf die Anzahl der Kopien der Daten, der Standardwert ist 3
  • Wir setzen es auf 1, weil es ein Pseudocluster ist.

yarn-site.xml
mapred-site.xml
hadoop-umgebung.sh

  • expert JAVA_HOME=Ihr JDK-Installationspfad

Dann folgen Sie einfach den Schritten!

$ vim core-site.xml

<Konfiguration>
  <Eigenschaft>
    <name>fs.defaultFS</name>
    <value>hdfs://Tencent Cloud Intranet-IP-Adresse:9820</value>
  </Eigenschaft>
 
  <Eigenschaft>
    <name>hadoop.tmp.dir</name>
    <Wert>/home/centos/module/hadoop-3.1.3/data/tmp</Wert>
  </Eigenschaft>
	<!-- Berechtigungen zum Bedienen von HDFS über die Weboberfläche -->
  <Eigenschaft>
    <name>hadoop.http.staticuser.benutzer</name>
    <Wert>Wurzel</Wert>
  </Eigenschaft>
    <!-- Hive-Kompatibilitätskonfiguration später -->
  <Eigenschaft>
    <name>hadoop.proxyuser.root.hosts</name>
    <Wert>*</Wert>
  </Eigenschaft>
  <Eigenschaft>
    <name>hadoop.proxyuser.root.groups</name>
    <Wert>*</Wert>
    </Eigenschaft>
</Konfiguration>

$ vim hdfs-site.xml

<Konfiguration>
  <Eigenschaft>
    <name>dfs.replikation</name>
    <Wert>1</Wert>
  </Eigenschaft>
  <Eigenschaft>
    <name>dfs.namenode.secondary.http-Adresse</name>
    <value>Tencent Cloud Intranet-IP-Adresse: 9868</value>
  </Eigenschaft>
</Konfiguration>

$ vim hadoop-env.sh

exportiere JAVA_HOME=/home/centos/module/jdk1.8.0_212

$ vim yarn-site.xml

<Konfiguration>

  <!-- Reducer erhält Daten -->
  <Eigenschaft>
    <name>yarn.nodemanager.aux-services</name>
    <Wert>mapreduce_shuffle</Wert>
  </Eigenschaft>
  <!-- Geben Sie die Adresse des ResourceManagers von YARN an -->
  <Eigenschaft>
    <name>garn.resourcemanager.hostname</name>
    <Wert>Meister</Wert>
  </Eigenschaft>
<!-- Umgebungsvariablen werden aus den Containerumgebungseigenschaften der NodeManager geerbt. Für MapReduce-Anwendungen sollte zusätzlich zum Standardwert hadoop op_mapred_home hinzugefügt werden. Die Attributwerte lauten wie folgt -->
  <Eigenschaft>
    <name>yarn.nodemanager.env-whitelist</name>
 <Wert>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</Wert>
    </Eigenschaft>
    <!-- Lösen Sie das Problem, dass Yarn beim Ausführen des Programms das virtuelle Speicherlimit überschreitet und der Container beendet wird -->
  <Eigenschaft>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <Wert>falsch</Wert>
  </Eigenschaft>
  <Eigenschaft>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <Wert>falsch</Wert>
  </Eigenschaft>
    <!-- Hive-Kompatibilitätskonfiguration später -->
  <Eigenschaft>
    <name>Garn.scheduler.Minimum-Allocation-MB</name>
    <Wert>512</Wert>
  </Eigenschaft>
  <Eigenschaft>
    <name>Garn.scheduler.maximale-Zuweisung-mb</name>
    <Wert>4096</Wert>
  </Eigenschaft>
  <Eigenschaft>
    <name>Garn.NodeManager.Ressource.Speicher-MB</name>
    <Wert>4096</Wert>
    </Eigenschaft>
  
  <!-- Protokollaggregation aktivieren-->
  <Eigenschaft>
    <name>yarn.log-aggregation-enable</name>
    <Wert>wahr</Wert>
  </Eigenschaft>
  <!-- Zugriffspfad -->
  <Eigenschaft> 
    <name>yarn.log.server.url</name> 
    <Wert>http://172.17.0.13:19888/jobhistory/logs</Wert>
  </Eigenschaft>
  <!-- 7 Tage lang sparen -->
  <Eigenschaft>
    <name>yarn.log-aggregation.retain-seconds</name>
    <Wert>604800</Wert>
  </Eigenschaft>
</Konfiguration>

Konfigurieren des Verlaufsservers

$ vim mapred-site.xml

<!-- Adresse des Verlaufsservers-->
<Eigenschaft>
  <name>mapreduce.jobhistory.adresse</name>
  <value>Tencent Cloud Intranet IP:10020</value>
</Eigenschaft>

<!-- Webadresse des Verlaufsservers-->
<Eigenschaft>
  <name>mapreduce.jobhistory.webapp.adresse</name>
  <value>Tencent Cloud Intranet IP:19888</value>
</Eigenschaft>

Initialisierung

Der NameNode muss beim ersten Start formatiert werden, danach ist dies jedoch nicht mehr erforderlich.

$ hdfs namenode -format

Nach der Initialisierung können Sie sehen, dass im Hadoop-Installationsordner zwei Ordner, Daten und Protokolle, angezeigt werden. Dies bedeutet, dass die Initialisierung erfolgreich war.

Als nächstes starten wir den Cluster.

$ start-dfs.sh

Start abgeschlossen, keine abnormalen Informationen, überprüfen Sie den Vorgang

[root@VM_0_13_centos hadoop]# jps
20032 Jps
30900 Datenknoten
31355 Sekundärer NameNode
30559 NameNode

Alles erfolgreich gestartet~!

Ein-Klick-Start

Wenn alles oben genannte in Ordnung ist, können Sie ein Skript erstellen, um den Cluster mit einem Klick zu starten und ein neues im Bin-Verzeichnis zu erstellen.

$ vim meincluster

Fügen Sie den folgenden Inhalt hinzu

#!/bin/bash
Fall $1 in
"Start")
#dfs Garnverlauf
start-dfs.sh
start-yarn.sh
mapred --daemon startet Historyserver
;;
"stoppen")
# DFS-Garnverlauf
stop-dfs.sh
stop-garn.sh
mapred --daemon stoppt Historyserver
;;
*)
echo "Argumente sind fehlerhaft! Bitte geben Sie Start oder Stopp ein"
;;
esac

Konfigurieren von Skriptberechtigungen

$ chmod u+x meincluster

Beginnen Sie mit der Verwendung eines Skripts

$ mycluster starten

$ jps
23680 KnotenManager
24129 JobHistoryServer
22417 Datenknoten
24420 Jps
22023 NameNode
23384 RessourcenManager
22891 SekundärerNamensknoten

3. HDFS anzeigen

Konfigurieren von Sicherheitsgruppenregeln

Bevor Sie die folgenden Vorgänge ausführen, fügen Sie die folgenden Ports hinzu, die im Protokollport in den Sicherheitsgruppenregeln verwendet werden sollen:

Portnummer:

  • Namenode-Ports: 9870
  • Sekundäre NN-Ports: 9868
  • Berufserfahrung: 19888

Hadoop-Webseite

Geben Sie im Browser Folgendes ein:騰訊云公網地址:端口號zum Aufrufen der entsprechenden Weboberfläche

Wir haben festgestellt, dass die Anzeige der sekundären NameNode-Schnittstelle nicht normal war. Dies lag an der falschen Verwendung der Zeitfunktion von dfs-dust.js in hadoop3. Lassen Sie es uns manuell korrigieren.

Fahren Sie zuerst den Cluster herunter

$ meinCluster stoppen

Ändern der Datei

$ vim /home/centos/module/hadoop-3.1.3/share/hadoop/hdfs/webapps/static/dfs-dust.js

Ändern Sie ungefähr in Zeile 61, wie in der Abbildung gezeigt, Folgendes:

gib ein neues Datum (Zahl (v)).toLocaleString() zurück;

Nun starten wir den Cluster neu

$ mycluster starten

Sie können sehen, dass die Weboberfläche des sekundären NameNode normal ist.

Testen von HDFS

Lassen Sie uns die Datei hochladen und etwas Spaß haben.

Erstellen Sie einen neuen Ordner im Hadoop-Verzeichnis

$ mkdir temdatas

Rufen Sie den Ordner auf und erstellen Sie eine neue Testdatei

$ vim text.txt

Schreiben Sie einfach, was Sie möchten, speichern Sie es und dann können wir mit dem Hochladen der Dateien beginnen.

$ hdfs dfs -put text.txt /

Überprüfen Sie die Webseite und laden Sie sie erfolgreich hoch~

Versuchen Sie, diese Datei erneut herunterzuladen

$ hdfs dfs -get /text.txt ./text1.txt

Erfolg ~
Nachdem der Hadoop-Cluster erstellt wurde, können Sie selbst einige lustige Dinge tun~!

WordCount-Fallstudie

Erstellen Sie einen neuen Ordnereintrag im Web

Laden Sie eine Datei mit den verschiedenen Wörtern hoch, die Sie geschrieben haben, und erstellen Sie eine Wortstatistik.

#Oder Sie können es in vim schreiben und selbst hochladen $ hdfs dfs -put wordcount.txt /input

Testen Sie dann den Fall der Wortanzahl. Beachten Sie, dass der Ausgabeordner nicht existieren kann.

$ hadoop jar /home/centos/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar Wortanzahl /Eingabe /Ausgabe

Schauen wir uns nach dem Ausführen die Ergebnisse an

#HDFS-Datei abrufen [root@master mydata]# hdfs dfs -get /output ./
# Ergebnisse anzeigen [root@master output]# cat part-r-00000 
eine 2
b 3
c 2
T 1
e 1
f 1

An diesem Punkt können Sie frei mit Hadoop herumexperimentieren.

Wer es probiert hat, wird natürlich feststellen, dass es noch ein kleines Problem gibt, das nicht gelöst ist: Wenn man im Web auf die Datei klickt, um den Anfang oder das Ende anzuzeigen, kann sie nicht angezeigt werden und auch das Herunterladen ist nicht möglich. Dies ist bei der Installation der virtuellen Maschine nicht passiert und ich untersuche noch immer, was passiert ist. Wenn jemand weiß, was los ist, hinterlassen Sie bitte eine Nachricht.

Dies ist das Ende dieses Artikels zum Erstellen eines Hadoop 3.x-Pseudoclusters auf Tencent Cloud. Weitere Informationen zum Erstellen eines Hadoop 3.x-Pseudoclusters auf Tencent Cloud finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

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
  • CentOS 7 erstellt Hadoop 2.10 mit hoher Verfügbarkeit (HA)
  • So führen Sie Hadoop aus und erstellen Images in Docker
  • Lernen Sie, wie Sie mit Hadoop bestimmte Inhalte aus einer Datei extrahieren

<<:  Vue realisiert den Fortschrittsbalken-Änderungseffekt

>>:  Ausführliche Erläuterung der Konzepte und Verwendung von MySQL-Transaktionen

Artikel empfehlen

Unterschied und Prinzipanalyse des Nginx-Forward- und Reverse-Proxy

1. Der Unterschied zwischen Forward-Proxy und Rev...

JavaScript ist unzuverlässig undefiniert

undefined Wenn wir in JavaScript feststellen möch...

Verwenden von CSS3 zum Erstellen von Header-Animationseffekten

Die offizielle Website von Netease Kanyouxi (http...

Eine kurze Diskussion über die VUE Uni-App-Entwicklungsumgebung

Inhaltsverzeichnis 1. Über die visuelle Schnittst...

Detaillierte Erläuterung des Befehls zum Bereinigen des MySQL-Datenbank-Binlogs

Überblick Heute werde ich hauptsächlich erklären,...

Lösung für das Problem der adaptiven Höhe und Breite der CSS-Anzeigetabelle

Definition und Verwendung Die Anzeigeeigenschaft ...

Die Bilder in HTML werden direkt durch base64-kodierte Strings ersetzt

Kürzlich stieß ich auf eine Webseite, die zwar Bil...

Beheben des Problems, dass Notizendetails auf Webseiten grau werden

1. Wenn im Internet Explorer die relative Position...

Abkürzung für HTML DOCTYPE

Wenn Ihr DOCTYPE wie folgt ist: Code kopieren Der ...

So kennzeichnen Sie die Quelle und Herkunft von CSS3-Zitaten

Wegen der Epidemie werde ich zu Hause fast schimm...