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éparer un utilisateur exécutif pour Hadoop
hduser
- Passez à
hduser
partir de maintenant
- Autoriser
hduser
à distance via ssh avec mot de passe sans phrase
- Désactiver IPv6
- Télécharger et configurer le package Hadoop
- Préparez le chemin système $ HADOOP_HOME et $ JAVA_HOME
- Services de Config Hadoop
- Démarrez les services Hadoop
Terminé. Bonne chance!
Étapes de détail
Installer 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 un java
point/usr/lib/jvm/java-7-oracle/jre/bin/java
Préparer un utilisateur exécutif pour Hadoophduser
Créer un utilisateur hduser
en groupehadoop
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
Accordez hduser
le privilège sudo
Modifier sudo
$ sudo visudo
Ajouter à la fin cette ligne
hduser ALL=(ALL:ALL) ALL
Passez à hduser
partir de maintenant
$ su - hduser
Autoriser hduser
à distance via ssh avec mot de passe sans phrase
Installer openssh
$ sudo apt-get install openssh-server
Générer une clé publique / privée RSA pour la connexion SSH; la phrase de passe est vide carparameter -P ""
$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
Assurez-vous que hduser
ssh peut être distant localement sans mot de passe
$ ssh localhost
Désactiver IPv6
Editez le fichier de configuration
$ sudo nano /etc/sysctl.conf
Copier jusqu'à 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
Appelez ensuite
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Il faut dire 1 ce qui signifie OK ^^
Télécharger et configurer le package Hadoop
Télécharger les packages Hadoop 2.5.1 depuis le site Apache Hadoop
L'URL directe de ce package est ce lien
http://www.eu.apache.org/dist/hadoop/core/hadoop-2.5.1/hadoop-2.5.1.tar.gz
Alors téléchargeons dans hduser
le dossier de départ, extrayons-le et renommez-le enhadoop
$ 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é à la hduser
maison
$ ls /home/hduser/hadoop
Préparez le chemin système $ HADOOP_HOME et $ JAVA_HOME
Modifier hduser
le fichier .bashrc
$ nano .bashrc
Mettre à la fin des 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
Ajouter les binary
dossiers Hadoop 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 d'avoir $ 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 Config Hadoop
Chaque composant dans Hadoop est configuré à l'aide d'un fichier XML.
Les propriétés communes vont dans core-site.xml
Les propriétés HDFS vont 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 en modifiant hadoop-env.sh
la ligne
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Définissez Hadoop temp folder
et file system
nom 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 cela temp folder
comme configuré à/home/hduser/tmp
$ cd /home/hduser
$ mkdir tmp
$ chown hduser:hadoop tmp
$ chmod 755 tmp
Définir file system
les 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éfinir 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 sont situées dans $ HADOOP_HOME / sbin que nous avons ajoutées au système $ PATH auparavant.
Assurez-vous que les services Hadoop sont démarrés correctement
$ jps
on devrait voir