hadoop Tutorial
Iniziare con hadoop
Ricerca…
Osservazioni
Cos'è Apache Hadoop?
La libreria del software Apache Hadoop è un framework che consente l'elaborazione distribuita di grandi set di dati su cluster di computer utilizzando semplici modelli di programmazione. È progettato per passare da singoli server a migliaia di macchine, ognuna delle quali offre calcolo e archiviazione locali. Anziché affidarsi all'hardware per garantire un'elevata disponibilità, la libreria stessa è progettata per rilevare e gestire i guasti a livello di applicazione, offrendo così un servizio altamente disponibile su un cluster di computer, ognuno dei quali potrebbe essere soggetto a guasti.
Apache Hadoop include questi moduli:
- Hadoop Common : le utilità comuni che supportano gli altri moduli Hadoop.
- Hadoop Distributed File System (HDFS) : un file system distribuito che fornisce accesso ad alta velocità ai dati delle applicazioni.
- Hadoop YARN : un framework per la pianificazione del lavoro e la gestione delle risorse del cluster.
- Hadoop MapReduce : un sistema basato su YARN per l'elaborazione parallela di set di dati di grandi dimensioni.
Riferimento:
Versioni
Versione | Note di rilascio | Data di rilascio |
---|---|---|
3.0.0-alpha1 | 2016/08/30 | |
2.7.3 | Clicca qui - 2.7.3 | 2016/01/25 |
2.6.4 | Clicca qui - 2.6.4 | 2016/02/11 |
2.7.2 | Clicca qui - 2.7.2 | 2016/01/25 |
2.6.3 | Clicca qui - 2.6.3 | 2015/12/17 |
2.6.2 | Clicca qui - 2.6.2 | 2015/10/28 |
2.7.1 | Clicca qui - 2.7.1 | 2015/07/06 |
Installazione o installazione su Linux
Una procedura di installazione di cluster pseudo distribuito
Prerequisiti
Installa JDK1.7 e imposta la variabile di ambiente JAVA_HOME.
Crea un nuovo utente come "hadoop".
useradd hadoop
Imposta l'accesso SSH senza password al proprio account
su - hadoop ssh-keygen << Press ENTER for all prompts >> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
Verifica eseguendo
ssh localhost
Disabilitare IPV6 modificando
/etc/sysctl.conf
con i seguenti:net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
Controlla che usi
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
(dovrebbe restituire 1)
Installazione e configurazione:
Scarica la versione richiesta di Hadoop dagli archivi Apache usando il comando
wget
.cd /opt/hadoop/ wget http:/addresstoarchive/hadoop-2.x.x/xxxxx.gz tar -xvf hadoop-2.x.x.gz mv hadoop-2.x.x.gz hadoop (or) ln -s hadoop-2.x.x.gz hadoop chown -R hadoop:hadoop hadoop
Aggiorna
.bashrc
/.kshrc
base alla shell con le seguenti variabili di ambienteexport HADOOP_PREFIX=/opt/hadoop/hadoop export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop export JAVA_HOME=/java/home/path export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$JAVA_HOME/bin
In
$HADOOP_HOME/etc/hadoop
modificare la directory sotto i filecore-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:8020</value> </property> </configuration>
mapred-site.xml
Crea
mapred-site.xml
dal suo modellocp mapred-site.xml.template mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
filati-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
HDFS-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///home/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///home/hadoop/hdfs/datanode</value> </property> </configuration>
Creare la cartella genitore per memorizzare i dati hadoop
mkdir -p /home/hadoop/hdfs
Formatta NameNode (pulisce la directory e crea i meta file necessari)
hdfs namenode -format
Avvia tutti i servizi:
start-dfs.sh && start-yarn.sh mr-jobhistory-server.sh start historyserver
Utilizzare invece start-all.sh (deprecato).
Controllare tutti i processi java in esecuzione
jps
Interfaccia Web Namenode: http: // localhost: 50070 /
Interfaccia Web di gestione risorse: http: // localhost: 8088 /
Per fermare i demoni (servizi):
stop-dfs.sh && stop-yarn.sh mr-jobhistory-daemon.sh stop historyserver
Invece usa stop-all.sh (deprecato).
Installazione di Hadoop su ubuntu
Creazione di un utente Hadoop:
sudo addgroup hadoop
Aggiungere un utente:
sudo adduser --ingroup hadoop hduser001
Configurazione di SSH:
su -hduser001
ssh-keygen -t rsa -P ""
cat .ssh/id rsa.pub >> .ssh/authorized_keys
Nota : se si verificano errori [ bash: .ssh / authorized_keys: nessun file o directory ] durante la scrittura della chiave autorizzata. Controlla qui
Aggiungi utente hadoop alla lista di sudoer:
sudo adduser hduser001 sudo
Disattivazione di IPv6:
Installazione di Hadoop:
sudo add-apt-repository ppa:hadoop-ubuntu/stable
sudo apt-get install hadoop
Panoramica Hadoop e HDFS
- Hadoop è un framework software open-source per la memorizzazione e l'elaborazione su larga scala di set di dati in un ambiente di elaborazione distribuito. È sponsorizzato da Apache Software Foundation. È progettato per passare da singoli server a migliaia di macchine, ognuna delle quali offre calcolo e archiviazione locali.
- Hadoop è stato creato da Doug Cutting e Mike Cafarella nel 2005.
- Cutting, che stava lavorando su Yahoo! in quel momento, lo chiamò in onore dell'elefante giocattolo di suo figlio.
- È stato originariamente sviluppato per supportare la distribuzione per il progetto del motore di ricerca.
- Hadoop Distributed File System (HDFS): un file system distribuito che fornisce accesso ad alta velocità ai dati delle applicazioni. Hadoop MapReduce: una struttura software per l'elaborazione distribuita di set di dati di grandi dimensioni su cluster di calcolo.
- Altamente tollerante ai guasti. Elevato rendimento. Adatto per applicazioni con set di dati di grandi dimensioni. Può essere costruito con hardware di base.
- Architettura master / slave. Il cluster HDFS è costituito da un singolo Namenode, un server master che gestisce lo spazio dei nomi del file system e regola l'accesso ai file da parte dei client. I DataNodes gestiscono lo storage collegato ai nodi su cui vengono eseguiti. HDFS espone uno spazio dei nomi del file system e consente di memorizzare i dati dell'utente nei file. Un file è diviso in uno o più blocchi e set di blocchi sono memorizzati in DataNodes. DataNodes: serve le richieste di lettura, scrittura, esegue la creazione di blocchi, la cancellazione e la replica su istruzione dal Namenode.
- HDFS è progettato per archiviare file di grandi dimensioni su macchine in un cluster di grandi dimensioni. Ogni file è una sequenza di blocchi. Tutti i blocchi nel file tranne l'ultimo sono della stessa dimensione. I blocchi vengono replicati per la tolleranza ai guasti. Il Namenode riceve un Heartbeat e un BlockReport da ciascun DataNode nel cluster. BlockReport contiene tutti i blocchi su un Datanode.
- Comandi comuni usati: -
- ls Uso: hadoop fs -ls Percorso (dir / percorso file da elencare). Uso del gatto : hadoop fs -cat PathOfFileToView
Link per comandi hadoop shell: - https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/FileSystemShell.html