Dérivé de la réponse de @Luis Alvarado, voici ma version pour Ubuntu 14.04 et Hadoop 2.5.1
En bref
- Installer Java
- Préparez un utilisateur exécutif pour Hadoop
hduser
- Passez maintenant à
hduser
- Autoriser
hduser
à se connecter via ssh avec moins de phrase de passe
- Désactiver IPv6
- Télécharger et configurer le package Hadoop
- Préparez le chemin système $ HADOOP_HOME et $ JAVA_HOME
- Services de configuration de Hadoop
- Démarrer les services de Hadoop
Fait. Bonne chance!
Etapes de détail
Installez Java
Télécharger et installer
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install oracle-java7-installer
Assurez-vous que Java7 est installé
$ which java
$ ls -l /usr/bin/java
$ ls -l /etc/alternatives/java
nous devrions avoir java
point sur /usr/lib/jvm/java-7-oracle/jre/bin/java
Préparez un utilisateur exécutif pour Hadoop hduser
Créer un utilisateur hduser
dans le groupe hadoop
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
Accordez le privilège sudo à hduser
Modifier sudo
$ sudo visudo
Ajoutez à la fin cette ligne
hduser ALL=(ALL:ALL) ALL
Passez maintenant à hduser
$ su - hduser
Autorise hduser
à se connecter via ssh avec un mot de passe moins
Installer openssh
$ sudo apt-get install openssh-server
Générer une clé publique / privée RSA pour la connexion SSH; la phrase secrète est vide comme parameter -P ""
$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Assurez-vous que hduser
peut ssh distant localement sans mot de passe
$ ssh localhost
Désactiver IPv6
Modifier le fichier de configuration
$ sudo nano /etc/sysctl.conf
Copier à la fin
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Assurez-vous que IPv6 est désactivé par un redémarrage ou un appel
$ sudo sysctl -p
Puis appelez
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Il faut dire 1 qui signifie OK ^^
Télécharger et configurer le paquet Hadoop
Téléchargez les packages Hadoop 2.5.1 à partir du site Apache Hadoop
L’URL directe de ce paquet est ce lien
http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
Nous allons donc télécharger dans le dossier de base de hduser
, l'extraire et le renommer en hadoop
$ 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
Assurez-vous que Hadoop est stocké dans hduser
home
$ ls /home/hduser/hadoop
Préparez le chemin système $ HADOOP_HOME et $ JAVA_HOME
Modifier le fichier .bashrc de hduser
$ nano .bashrc
Mettre à la fin les valeurs pour $HADOOP_HOME
et $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
Ajoutez les dossiers Hadoop binary
au système $PATH
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Ouvrez un nouveau terminal, connectez-vous en tant que hduser
et assurez-vous que vous disposez de $ HADOOP_HOME avec les commandes disponibles
$ echo $HADOOP_HOME
$ which start-all.sh
$ which start-dfs.sh
$ which start-yarn.sh
Nous devrions voir le chemin complet de ces noms.
Services de configuration de Hadoop
Chaque composant de Hadoop est configuré à l'aide d'un fichier XML.
-
Les propriétés communes sont dans core-site.xml
-
Les propriétés HDFS sont dans hdfs-site.xml
-
Les propriétés MapReduce vont dans mapred-site.xml
Ces fichiers se trouvent tous dans le dossier $ HADOOP_HOME / etc / hadoop
Définissez à nouveau JAVA_HOME dans hadoop-env.sh
en modifiant la ligne
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Définissez Hadoop temp folder
et file system
name dans core-site.xml à
<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>
Nous devons préparer ce temp folder
comme configuré à /home/hduser/tmp
$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp
Définissez file system
's block replication
dans 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>
Définissez map-reduce job
dans 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>
Format name node
$ hdfs namenode -format
Démarrer le service Hadoop
Appel
$ start-dfs.sh && start-yarn.sh
Ces deux commandes se trouvent dans $ HADOOP_HOME / sbin que nous avons déjà ajoutées au système $ PATH auparavant.
Assurez-vous que les services Hadoop sont correctement démarrés
$ jps
nous devrions voir