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
hduserda ora in poi
- Consenti
hduseral 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 javapuntare a/usr/lib/jvm/java-7-oracle/jre/bin/java
Preparare un utente esecutivo per Hadoophduser
Crea un utente hdusernel gruppohadoop
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
Concedi hduseril privilegio sudo
Modifica sudo
$ sudo visudo
Aggiungi alla fine questa riga
hduser ALL=(ALL:ALL) ALL
Passa a hduserda ora in poi
$ su - hduser
Consenti hduseral 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 hduserpoter 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 hdusercartella 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 hdusercasa
$ ls /home/hduser/hadoop
Preparare il percorso di sistema $ HADOOP_HOME e $ JAVA_HOME
Modifica hduseril file .bashrc
$ nano .bashrc
Metti alla fine i valori per $HADOOP_HOMEe$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 binarycartelle Hadoop al sistema$PATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Apri un nuovo terminale, accedi come hdusere 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.shmodificando la riga
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Definisci Hadoop temp foldere file systemnome 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 foldercome configurato in/home/hduser/tmp
$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp
Definire file system's block replicationin 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 jobin 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
