Derivato dal di @Luis Alvarado risposta , ecco la mia versione per Ubuntu 14.04 e Hadoop 2.5.1
In breve
- Installa Java
- Preparare un utente esecutivo per Hadoop
hduser
- Passa a
hduser
da ora in poi
- Consenti
hduser
al telecomando via ssh con pass-frase-less
- Disabilita IPv6
- Scarica e configura il pacchetto Hadoop
- Preparare il percorso di sistema $ HADOOP_HOME e $ JAVA_HOME
- I servizi di Config Hadoop
- Avvia i servizi di Hadoop
Fatto. In bocca al lupo!
Passaggi di dettaglio
Installa Java
Scarica e installa
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install oracle-java7-installer
Assicurati di avere Java7 installato
$ which java
$ ls -l /usr/bin/java
$ ls -l /etc/alternatives/java
dovremmo java
puntare a/usr/lib/jvm/java-7-oracle/jre/bin/java
Preparare un utente esecutivo per Hadoophduser
Crea un utente hduser
nel gruppohadoop
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
Concedi hduser
il privilegio sudo
Modifica sudo
$ sudo visudo
Aggiungi alla fine questa riga
hduser ALL=(ALL:ALL) ALL
Passa a hduser
da ora in poi
$ su - hduser
Consenti hduser
al telecomando via ssh con pass-frase-less
Installa openssh
$ sudo apt-get install openssh-server
Genera chiave pubblica / privata RSA per la connessione SSH; la passphrase è vuota comeparameter -P ""
$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Assicurati di hduser
poter ssh remoto localmente senza password
$ ssh localhost
Disabilita IPv6
Modifica il file di configurazione
$ sudo nano /etc/sysctl.conf
Copia fino alla fine
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Assicurarsi che IPv6 sia disattivato al riavvio o alla chiamata
$ sudo sysctl -p
Quindi chiama
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Dovrebbe essere indicato 1 che significa OK ^^
Scarica e configura il pacchetto Hadoop
Scarica i pacchetti Hadoop 2.5.1 dal sito Apache Hadoop
L'URL diretto per questo pacchetto è questo link
http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
Quindi scarichiamo nella hduser
cartella home, estraiamola e rinominiamola inhadoop
$ wget http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
$ tar -xvzf hadoop-2.5.1.tar.gz
$ mv hadoop-2.5.1 hadoop
Assicurati che Hadoop sia archiviato in hduser
casa
$ ls /home/hduser/hadoop
Preparare il percorso di sistema $ HADOOP_HOME e $ JAVA_HOME
Modifica hduser
il file .bashrc
$ nano .bashrc
Metti alla fine i valori per $HADOOP_HOME
e$JAVA_HOME
# Set Hadoop-related environment variables
export HADOOP_HOME=/home/hduser/hadoop
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Aggiungi le binary
cartelle Hadoop al sistema$PATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Apri un nuovo terminale, accedi come hduser
e assicurati di avere $ HADOOP_HOME con i comandi disponibili
$ echo $HADOOP_HOME
$ which start-all.sh
$ which start-dfs.sh
$ which start-yarn.sh
Dovremmo vedere il percorso completo di quei nomi.
I servizi di Config Hadoop
Ogni componente in Hadoop è configurato usando un file XML.
Le proprietà comuni vanno in core-site.xml
Le proprietà HDFS vanno in hdfs-site.xml
Le proprietà di MapReduce vanno in mapred-site.xml
Questi file si trovano tutti nella cartella $ HADOOP_HOME / etc / hadoop
Definisci di nuovo JAVA_HOME hadoop-env.sh
modificando la riga
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Definisci Hadoop temp folder
e file system
nome in core-site.xml su
<configuration>
...
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hduser/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
...
</configuration>
Dobbiamo prepararlo temp folder
come configurato in/home/hduser/tmp
$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp
Definire file system
's block replication
in HDFS-site.xml
<configuration>
...
<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
...
</configuration>
Definire map-reduce job
in mapred-site.xml
<configuration>
...
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
...
</configuration>
Formato name node
$ hdfs namenode -format
Avviare il servizio Hadoop
Chiamata
$ start-dfs.sh && start-yarn.sh
questi due comandi si trovano in $ HADOOP_HOME / sbin che abbiamo precedentemente aggiunto al sistema $ PATH.
Assicurarsi che i servizi Hadoop siano avviati correttamente
$ jps
dovremmo vedere