Apache Hadoop è composto da più pacchetti software open source che funzionano insieme per lo storage distribuito e l'elaborazione distribuita di big data. Ci sono quattro componenti principali di Hadoop:
- Hadoop comune – le varie librerie software da cui Hadoop dipende per l'esecuzione
- File system distribuito Hadoop (HDFS) – un file system che consente la distribuzione e l'archiviazione efficienti di big data su un cluster di computer
- Hadoop MapReduce – utilizzati per il trattamento dei dati
- FILATO Hadoop – un'API che gestisce l'allocazione delle risorse di calcolo per l'intero cluster
In questo tutorial, esamineremo i passaggi per installare Hadoop versione 3 su Ubuntu 20.04. Ciò comporterà l'installazione di HDFS (Namenode e Datanode), YARN e MapReduce su un cluster a nodo singolo configurato in modalità pseudo-distribuita, che è una simulazione distribuita su una singola macchina. Ciascun componente di Hadoop (HDFS, YARN, MapReduce) verrà eseguito sul nostro nodo come processo Java separato.
In questo tutorial imparerai:
- Come aggiungere utenti per Hadoop Environment
- Come installare il prerequisito Java
- Come configurare SSH senza password
- Come installare Hadoop e configurare i file XML correlati necessari
- Come avviare il cluster Hadoop
- Come accedere all'interfaccia utente Web NameNode e ResourceManager
Apache Hadoop su Ubuntu 20.04 Focal Fossa
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Installato Ubuntu 20.04 o aggiornato Ubuntu 20.04 Focal Fossa |
Software | Apache Hadoop, Java |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Crea utente per l'ambiente Hadoop
Hadoop dovrebbe avere un proprio account utente dedicato sul tuo sistema. Per crearne uno, apri un terminale e digita il seguente comando. Ti verrà anche richiesto di creare una password per l'account.
$ sudo adduser hadoopCrea un nuovo utente Hadoop
Installa il prerequisito Java
Hadoop è basato su Java, quindi dovrai installarlo sul tuo sistema prima di poter utilizzare Hadoop. Al momento della stesura di questo articolo, l'attuale versione 3.1.3 di Hadoop richiede Java 8, quindi è quello che installeremo sul nostro sistema.
Usa i due comandi seguenti per recuperare gli ultimi elenchi di pacchetti in apt
e installa Java 8:
$ sudo apt update $ sudo apt install openjdk-8-jdk openjdk-8-jre
Configura SSH senza password
Hadoop si affida a SSH per accedere ai suoi nodi. Si collegherà a macchine remote tramite SSH e alla tua macchina locale se hai Hadoop in esecuzione su di essa. Quindi, anche se in questo tutorial stiamo solo configurando Hadoop sul nostro computer locale, dobbiamo comunque avere installato SSH. Dobbiamo anche configurare SSH senza password
in modo che Hadoop possa stabilire connessioni silenziosamente in background.
- Avremo bisogno sia del pacchetto OpenSSH Server che OpenSSH Client. Installali con questo comando:
$ sudo apt install openssh-server openssh-client
- Prima di continuare oltre, è meglio accedere a
hadoop
account utente che abbiamo creato in precedenza. Per cambiare gli utenti nel tuo attuale terminale, usa il seguente comando:$ su hadoop
- Con questi pacchetti installati, è ora di generare coppie di chiavi pubbliche e private con il seguente comando. Nota che il terminale ti chiederà più volte, ma tutto ciò che devi fare è continuare a premere
ENTER
per procedere.$ ssh-keygen -t rsa
Generazione di chiavi RSA per SSH senza password - Quindi, copia la chiave RSA appena generata in
id_rsa.pub
passa aauthorized_keys
:$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- Puoi assicurarti che la configurazione sia andata a buon fine tramite SSH in localhost. Se sei in grado di farlo senza che ti venga richiesta una password, sei a posto. Entrare in SSH nel sistema senza che venga richiesta la password significa che ha funzionato
Installa Hadoop e configura i file XML correlati
Vai al sito Web di Apache per scaricare Hadoop. Puoi anche usare questo comando se vuoi scaricare direttamente il binario Hadoop versione 3.1.3:
$ wget https://downloads.apache.org/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
Estrai il download in hadoop
home directory dell'utente con questo comando:
$ tar -xzvf hadoop-3.1.3.tar.gz -C /home/hadoop
Impostazione della variabile d'ambiente
La seguente export
i comandi configureranno le variabili di ambiente Hadoop richieste sul nostro sistema. Puoi copiare e incollare tutto questo sul tuo terminale (potrebbe essere necessario modificare la riga 1 se hai una versione diversa di Hadoop):
export HADOOP_HOME=/home/hadoop/hadoop-3.1.3
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"
Fonte il .bashrc
file nella sessione di accesso corrente:
$ source ~/.bashrc
Successivamente, apporteremo alcune modifiche a hadoop-env.sh
file, che può essere trovato nella directory di installazione di Hadoop in /etc/hadoop
. Usa nano o il tuo editor di testo preferito per aprirlo:
$ nano ~/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
Modifica il JAVA_HOME
variabile in cui è installato Java. Sul nostro sistema (e probabilmente anche sul tuo, se stai usando Ubuntu 20.04 e ci hai seguito finora), cambiamo quella riga in:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64Modifica la variabile di ambiente JAVA_HOME
Sarà l'unico cambiamento che dovremo apportare qui. Puoi salvare le modifiche al file e chiuderlo.
Modifiche alla configurazione nel file core-site.xml
La prossima modifica che dobbiamo apportare è all'interno di core-site.xml
file. Aprilo con questo comando:
$ nano ~/hadoop-3.1.3/etc/hadoop/core-site.xml
Immettere la seguente configurazione, che indica a HDFS di essere eseguito sulla porta localhost 9000 e imposta una directory per i dati temporanei.
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
/home/hadoop/hadooptmpdata
modifiche al file di configurazione core-site.xml Salva le modifiche e chiudi questo file. Quindi, crea la directory in cui verranno archiviati i dati temporanei:
$ mkdir ~/hadooptmpdata
Modifiche alla configurazione nel file hdfs-site.xml
Crea due nuove directory per Hadoop per memorizzare le informazioni Namenode e Datanode.
$ mkdir -p ~/hdfs/namenode ~/hdfs/datanode
Quindi, modifica il seguente file per dire ad Hadoop dove trovare quelle directory:
$ nano ~/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
Apporta le seguenti modifiche a hdfs-site.xml
file, prima di salvarlo e chiuderlo:
dfs.replication
1
dfs.name.dir
file:///home/hadoop/hdfs/namenode
dfs.data.dir
file:///home/hadoop/hdfs/datanode
modifiche al file di configurazione hdfs-site.xml Modifiche alla configurazione nel file mapred-site.xml
Aprire il file di configurazione XML di MapReduce con il seguente comando:
$ nano ~/hadoop-3.1.3/etc/hadoop/mapred-site.xml
E apporta le seguenti modifiche prima di salvare e chiudere il file:
mapreduce.framework.name
yarn
modifiche al file di configurazione mapred-site.xml Modifiche alla configurazione nel file yarn-site.xml
Apri il file di configurazione YARN con il seguente comando:
$ nano ~/hadoop-3.1.3/etc/hadoop/yarn-site.xml
Aggiungi le seguenti voci in questo file, prima di salvare le modifiche e chiuderlo:
mapreduceyarn.nodemanager.aux-services
mapreduce_shuffle
modifiche al file di configurazione del sito di filato Avvio del cluster Hadoop
Prima di utilizzare il cluster per la prima volta, è necessario formattare il namenode. Puoi farlo con il seguente comando:
$ hdfs namenode -formatFormattazione del NameNode HDFS
Il tuo terminale sputerà molte informazioni. Finché non vedi alcun messaggio di errore, puoi presumere che abbia funzionato.
Quindi, avvia HDFS utilizzando start-dfs.sh
sceneggiatura:
$ start-dfs.shEsegui lo script start-dfs.sh
Ora avvia i servizi YARN tramite start-yarn.sh
sceneggiatura:
$ start-yarn.shEsegui lo script start-yarn.sh
Per verificare che tutti i servizi/daemon Hadoop siano stati avviati correttamente puoi utilizzare il jps
comando. Questo mostrerà tutti i processi che attualmente utilizzano Java che sono in esecuzione sul tuo sistema.
$ jpsEsegui jps per vedere tutti i processi dipendenti da Java e verificare che i componenti Hadoop siano in esecuzione
Ora possiamo controllare la versione attuale di Hadoop con uno dei seguenti comandi:
$ hadoop version
o
$ hdfs versionVerifica dell'installazione di Hadoop e della versione corrente
Interfaccia a riga di comando HDFS
La riga di comando HDFS viene utilizzata per accedere a HDFS e per creare directory o emettere altri comandi per manipolare file e directory. Usa la seguente sintassi dei comandi per creare alcune directory ed elencarle:
$ hdfs dfs -mkdir /test $ hdfs dfs -mkdir /hadooponubuntu $ hdfs dfs -ls /Interazione con la riga di comando di HDFS
Accedi a Namenode e YARN dal browser
Puoi accedere sia all'interfaccia utente Web per NameNode che a YARN Resource Manager tramite qualsiasi browser di tua scelta, come Mozilla Firefox o Google Chrome.
Per l'interfaccia utente Web NameNode, vai a http://HADOOP-HOSTNAME-OR-IP:50070
Per accedere all'interfaccia web di YARN Resource Manager, che visualizzerà tutti i lavori attualmente in esecuzione sul cluster Hadoop, vai a http://HADOOP-HOSTNAME-OR-IP:8088
Conclusione
In questo articolo, abbiamo visto come installare Hadoop su un cluster a nodo singolo in Ubuntu 20.04 Focal Fossa. Hadoop ci fornisce una soluzione pratica per gestire i big data, consentendoci di utilizzare i cluster per l'archiviazione e l'elaborazione dei nostri dati. Ci semplifica la vita quando lavoriamo con grandi insiemi di dati grazie alla sua configurazione flessibile e alla comoda interfaccia web.