GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Hadoop unter RHEL 8 / CentOS 8 Linux

Apache Hadoop ist ein Open-Source-Framework, das für die verteilte Speicherung sowie die verteilte Verarbeitung von Big Data auf Computerclustern verwendet wird, die auf handelsüblicher Hardware ausgeführt werden. Hadoop speichert Daten im Hadoop Distributed File System (HDFS) und die Verarbeitung dieser Daten erfolgt mit MapReduce. YARN bietet eine API zum Anfordern und Zuweisen von Ressourcen im Hadoop-Cluster.

Das Apache Hadoop-Framework besteht aus den folgenden Modulen:

  • Hadoop Common
  • Hadoop Distributed File System (HDFS)
  • GARN
  • MapReduce

In diesem Artikel wird erläutert, wie Hadoop Version 2 auf RHEL 8 oder CentOS 8 installiert wird. Wir werden HDFS (Namenode und Datanode), YARN, MapReduce auf dem Einzelknoten-Cluster im pseudoverteilten Modus installieren, bei dem es sich um eine verteilte Simulation auf einem einzelnen Computer handelt. Jeder Hadoop-Daemon wie hdfs, Garn, Mapreduce usw. wird als separater/individueller Java-Prozess ausgeführt.

In diesem Tutorial lernen Sie:

  • So fügen Sie Benutzer für die Hadoop-Umgebung hinzu
  • So installieren und konfigurieren Sie das Oracle JDK
  • So konfigurieren Sie passwortloses SSH
  • So installieren Sie Hadoop und konfigurieren die erforderlichen zugehörigen XML-Dateien
  • So starten Sie den Hadoop-Cluster
  • Zugriff auf die Web-Benutzeroberfläche von NameNode und ResourceManager

HDFS-Architektur.

Softwareanforderungen und verwendete Konventionen

Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System RHEL 8 / CentOS 8
Software Hadoop 2.8.5, Oracle JDK 1.8
Andere Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl.
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

Fügen Sie Benutzer für die Hadoop-Umgebung hinzu

Erstellen Sie den neuen Benutzer und die neue Gruppe mit dem Befehl:

# useradd hadoop
# passwd hadoop
[root@hadoop ~]# useradd hadoop
[root@hadoop ~]# passwd hadoop
Changing password for user hadoop.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@hadoop ~]# cat /etc/passwd | grep hadoop
hadoop:x:1000:1000::/home/hadoop:/bin/bash

Installieren und konfigurieren Sie das Oracle JDK

Laden Sie das offizielle Paket jdk-8u202-linux-x64.rpm herunter und installieren Sie es, um das Oracle JDK zu installieren.

[root@hadoop ~]# rpm -ivh jdk-8u202-linux-x64.rpm
warning: jdk-8u202-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8-2000:1.8.0_202-fcs        ################################# [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...

Führen Sie nach der Installation die folgenden Befehle aus, um zu überprüfen, ob Java erfolgreich konfiguriert wurde:

[root@hadoop ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

[root@hadoop ~]# update-alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/java/jdk1.8.0_202-amd64/jre/bin/java

Passwortloses SSH konfigurieren

Installieren Sie den Open SSH-Server und den Open SSH-Client oder, falls bereits installiert, werden die folgenden Pakete aufgelistet.

[root@hadoop ~]# rpm -qa | grep openssh*
openssh-server-7.8p1-3.el8.x86_64
openssl-libs-1.1.1-6.el8.x86_64
openssl-1.1.1-6.el8.x86_64
openssh-clients-7.8p1-3.el8.x86_64
openssh-7.8p1-3.el8.x86_64
openssl-pkcs11-0.4.8-2.el8.x86_64

Generieren Sie öffentliche und private Schlüsselpaare mit dem folgenden Befehl. Das Terminal fordert zur Eingabe des Dateinamens auf. Drücken Sie ENTER und fortfahren. Danach kopieren Sie die öffentlichen Schlüssel aus id_rsa.pub zu authorized_keys .

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 640 ~/.ssh/authorized_keys
[hadoop@hadoop ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:H+LLPkaJJDD7B0f0Je/NFJRP5/FUeJswMmZpJFXoelg [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|     .. ..++*o .o|
|  o   .. +.O.+o.+|
|   + .  . * +oo==|
|  . o o  . E  .oo|
|   . = .S.* o    |
|    . o.o= o     |
|     . .. o      |
|       .o.       |
|       o+.       |
+----[SHA256]-----+
[hadoop@hadoop ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@hadoop ~]$ chmod 640 ~/.ssh/authorized_keys

Überprüfen Sie die passwortlose SSH-Konfiguration mit dem Befehl :

$ ssh 
[hadoop@hadoop ~]$ ssh hadoop.sandbox.com
Web console: https://hadoop.sandbox.com:9090/ or https://192.168.1.108:9090/

Last login: Sat Apr 13 12:09:55 2019
[hadoop@hadoop ~]$

Installieren Sie Hadoop und konfigurieren Sie die zugehörigen XML-Dateien

Laden Sie Hadoop 2.8.5 von der offiziellen Apache-Website herunter und extrahieren Sie sie.

# wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
# tar -xzvf hadoop-2.8.5.tar.gz
[root@rhel8-sandbox ~]# wget https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
--2019-04-13 11:14:03--  https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
Resolving archive.apache.org (archive.apache.org)... 163.172.17.199
Connecting to archive.apache.org (archive.apache.org)|163.172.17.199|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 246543928 (235M) [application/x-gzip]
Saving to: ‘hadoop-2.8.5.tar.gz’

hadoop-2.8.5.tar.gz                       100%[=====================================================================================>] 235.12M  1.47MB/s    in 2m 53s

2019-04-13 11:16:57 (1.36 MB/s) - ‘hadoop-2.8.5.tar.gz’ saved [246543928/246543928]

Einrichtung der Umgebungsvariablen

Bearbeiten Sie den bashrc für den Hadoop-Benutzer durch Einrichten der folgenden Hadoop-Umgebungsvariablen:

export HADOOP_HOME=/home/hadoop/hadoop-2.8.5
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

Sourcen Sie die .bashrc in der aktuellen Anmeldesitzung.

$ source ~/.bashrc

Bearbeiten Sie hadoop-env.sh Datei, die sich in /etc/hadoop befindet innerhalb des Hadoop-Installationsverzeichnisses und nehmen Sie die folgenden Änderungen vor und prüfen Sie, ob Sie andere Konfigurationen ändern möchten.

export JAVA_HOME=${JAVA_HOME:-"/usr/java/jdk1.8.0_202-amd64"}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/home/hadoop/hadoop-2.8.5/etc/hadoop"}

Konfigurationsänderungen in der Datei core-site.xml

Bearbeiten Sie die core-site.xml mit vim oder Sie können einen der Editoren verwenden. Die Datei befindet sich unter /etc/hadoop innerhalb von hadoop Home-Verzeichnis und fügen Sie folgende Einträge hinzu.

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop.sandbox.com:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadooptmpdata</value>
</property>
</configuration>

Erstellen Sie außerdem das Verzeichnis unter hadoop Home-Ordner.

$ mkdir hadooptmpdata

Konfigurationsänderungen in der Datei hdfs-site.xml

Bearbeiten Sie die hdfs-site.xml die unter demselben Speicherort vorhanden ist, d. h. /etc/hadoop innerhalb von hadoop Installationsverzeichnis und erstellen Sie den Namenode/Datanode Verzeichnisse unter hadoop Benutzer-Home-Verzeichnis.

$ mkdir -p hdfs/namenode
$ mkdir -p hdfs/datanode
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hdfs/datanode</value>
</property>
</configuration>

Konfigurationsänderungen in der mapred-site.xml-Datei

Kopieren Sie die mapred-site.xml aus mapred-site.xml.template mit cp Befehl und bearbeiten Sie dann die mapred-site.xml abgelegt in /etc/hadoop unter hadoop Installationsverzeichnis mit den folgenden Änderungen.

$ cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

Konfigurationsänderungen in der Datei wool-site.xml

Bearbeiten Sie yarn-site.xml mit den folgenden Einträgen.

<configuration>
<property>
<name>mapreduceyarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

Starten des Hadoop-Clusters

Formatieren Sie den Namensknoten, bevor Sie ihn zum ersten Mal verwenden. Führen Sie als Hadoop-Benutzer den folgenden Befehl aus, um den Namenode.

zu formatieren
$ hdfs namenode -format
[hadoop@hadoop ~]$ hdfs namenode -format
19/04/13 11:54:10 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   user = hadoop
STARTUP_MSG:   host = hadoop.sandbox.com/192.168.1.108
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.8.5
19/04/13 11:54:17 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033
19/04/13 11:54:17 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0
19/04/13 11:54:17 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension     = 30000
19/04/13 11:54:18 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
19/04/13 11:54:18 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
19/04/13 11:54:18 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
19/04/13 11:54:18 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
19/04/13 11:54:18 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
19/04/13 11:54:18 INFO util.GSet: Computing capacity for map NameNodeRetryCache
19/04/13 11:54:18 INFO util.GSet: VM type       = 64-bit
19/04/13 11:54:18 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB
19/04/13 11:54:18 INFO util.GSet: capacity      = 2^15 = 32768 entries
19/04/13 11:54:18 INFO namenode.FSImage: Allocated new BlockPoolId: BP-415167234-192.168.1.108-1555142058167
19/04/13 11:54:18 INFO common.Storage: Storage directory /home/hadoop/hdfs/namenode has been successfully formatted.
19/04/13 11:54:18 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 using no compression
19/04/13 11:54:18 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 of size 323 bytes saved in 0 seconds.
19/04/13 11:54:18 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
19/04/13 11:54:18 INFO util.ExitUtil: Exiting with status 0
19/04/13 11:54:18 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop.sandbox.com/192.168.1.108
************************************************************/

Sobald der Namenode formatiert ist, starten Sie das HDFS mit start-dfs.sh Skript.

$ start-dfs.sh 
[hadoop@hadoop ~]$ start-dfs.sh
Starting namenodes on [hadoop.sandbox.com]
hadoop.sandbox.com: starting namenode, logging to /home/hadoop/hadoop-2.8.5/logs/hadoop-hadoop-namenode-hadoop.sandbox.com.out
hadoop.sandbox.com: starting datanode, logging to /home/hadoop/hadoop-2.8.5/logs/hadoop-hadoop-datanode-hadoop.sandbox.com.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts.
[email protected]'s password:
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/hadoop-2.8.5/logs/hadoop-hadoop-secondarynamenode-hadoop.sandbox.com.out

Um die YARN-Dienste zu starten, müssen Sie das Garn-Startskript ausführen, z. B. start-yarn.sh

$ start-yarn.sh
[hadoop@hadoop ~]$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-2.8.5/logs/yarn-hadoop-resourcemanager-hadoop.sandbox.com.out
hadoop.sandbox.com: starting nodemanager, logging to /home/hadoop/hadoop-2.8.5/logs/yarn-hadoop-nodemanager-hadoop.sandbox.com.out

Um zu überprüfen, ob alle Hadoop-Dienste/Daemons erfolgreich gestartet wurden, können Sie den jps verwenden Befehl.

$ jps
2033 NameNode
2340 SecondaryNameNode
2566 ResourceManager
2983 Jps
2139 DataNode
2671 NodeManager

Jetzt können wir die aktuelle Hadoop-Version überprüfen, die Sie mit dem folgenden Befehl verwenden können:

$ hadoop version

oder

$ hdfs version
[hadoop@hadoop ~]$ hadoop version
Hadoop 2.8.5
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 0b8464d75227fcee2c6e7f2410377b3d53d3d5f8
Compiled by jdu on 2018-09-10T03:32Z
Compiled with protoc 2.5.0
From source with checksum 9942ca5c745417c14e318835f420733
This command was run using /home/hadoop/hadoop-2.8.5/share/hadoop/common/hadoop-common-2.8.5.jar

[hadoop@hadoop ~]$ hdfs version
Hadoop 2.8.5
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 0b8464d75227fcee2c6e7f2410377b3d53d3d5f8
Compiled by jdu on 2018-09-10T03:32Z
Compiled with protoc 2.5.0
From source with checksum 9942ca5c745417c14e318835f420733
This command was run using /home/hadoop/hadoop-2.8.5/share/hadoop/common/hadoop-common-2.8.5.jar
[hadoop@hadoop ~]$

HDFS-Befehlszeilenschnittstelle

Um auf das HDFS zuzugreifen und einige Verzeichnisse oberhalb von DFS zu erstellen, können Sie die HDFS CLI verwenden.

$ hdfs dfs -mkdir /testdata
$ hdfs dfs -mkdir /hadoopdata
$ hdfs dfs -ls /
[hadoop@hadoop ~]$ hdfs dfs -ls /
Found 2 items
drwxr-xr-x   - hadoop supergroup          0 2019-04-13 11:58 /hadoopdata
drwxr-xr-x   - hadoop supergroup          0 2019-04-13 11:59 /testdata

Greifen Sie über den Browser auf Namenode und YARN zu

Sie können sowohl auf die Web-UI für NameNode als auch auf YARN Resource Manager über einen beliebigen Browser wie Google Chrome/Mozilla Firefox zugreifen.

Namenode-Web-UI – http://<hadoop cluster hostname/IP address>:50070

Namenode Web-Benutzeroberfläche.

HDFS-Detailinformationen.

HDFS-Verzeichnissuche.

Die YARN Resource Manager (RM)-Weboberfläche zeigt alle laufenden Jobs im aktuellen Hadoop-Cluster an.

Resource Manager-Webbenutzeroberfläche – http://<hadoop cluster hostname/IP address>:8088

Web-Benutzeroberfläche von Resource Manager (YARN).

Schlussfolgerung

Die Welt verändert ihre derzeitige Arbeitsweise und Big Data spielt in dieser Phase eine große Rolle. Hadoop ist ein Framework, das uns das Leben bei der Arbeit mit großen Datensätzen erleichtert. Es gibt Verbesserungen an allen Fronten. Die Zukunft ist spannend.


Cent OS
  1. So installieren Sie Redmine unter RHEL 8 / CentOS 8 Linux

  2. So installieren Sie Perl unter RHEL 8 / CentOS 8 Linux

  3. So installieren Sie Apache Tomcat unter Linux RHEL 8 / CentOS 8

  4. So installieren Sie den DNS-Server unter RHEL 8 / CentOS 8 Linux

  5. So installieren Sie PostgreSQL unter CentOS 8 / Rocky Linux 8 / RHEL 8

So installieren Sie wget unter RHEL 8 / CentOS 8 Linux

So installieren Sie die bin-Datei in RHEL 8 / CentOS 8 Linux

So installieren Sie den VLC Player unter CentOS 8 / RHEL 8 Linux

So installieren Sie WordPress unter RHEL 8 / CentOS 8 Linux

So installieren Sie GIMP unter CentOS 8 / RHEL 8 Linux

So installieren Sie Foreman unter CentOS 7 / RHEL 7 / Oracle Linux 7