Comment installer Hadoop?

25

J'essaie d'installer Hadoop dans la version Ubuntu 12.04. En suivant les instructions de lien , j'ai installé java-6-openjdk à partir du logiciel Ubuntu- centre. J'ai défini java_home en .bashrc . Définissez également java_home dans Hadoop conf/env.sh . Lors du formatage du code, j'obtiens l'erreur suivante:

usr/lib/jvm/java-6-openjdk/bin/java no such file or directory.

Merci Mais c'est un OS 64 bits.

    
posée Anitha 31.05.2012 - 06:36
la source

6 réponses

39

Les guides que j'ai suivis quand j'avais 12.04 étaient:

J'étais en fait opposé à celui de MyLearning car la première chose recommandée était Oracle Java 7 au lieu d'OpenJDK 7, mais j'avais quelques problèmes avec OpenJDK 7 lorsque je tentais cette expérience.

Le guide est généralement simple et le voici:

  1. Installer Java

    sudo add-apt-repository ppa:webupd8team/java  
    sudo apt-get update && sudo apt-get upgrade  
    sudo apt-get install oracle-java7-installer  
    
  2. Créer un utilisateur Hadoop

    sudo addgroup hadoop  
    sudo adduser --ingroup hadoop hduser
    

    Où hduser est l'utilisateur Hadoop que vous voulez avoir.

  3. Configuration de SSH

    su - hduser   
    ssh-keygen -t rsa -P ""
    cat .ssh/id_rsa.pub >> .ssh/authorized_keys
    

    Pour être sûr que l’installation de SSH s’est bien passée, vous pouvez ouvrir un nouveau terminal et essayer de créer une session ssh en utilisant hduser à l’aide de la commande suivante:

    ssh localhost
    

    réinstallez ssh si localhost ne se connecte pas (vous devrez peut-être ajouter hduser à sudo comme ci-dessous)

    sudo apt-get install openssh-server
    
  4. Modifier les Sudoers

    sudo visudo
    
  5. Ajoutez à la fin la ligne pour ajouter hduser dans sudoers

    hduser ALL=(ALL:ALL) ALL
    

    Pour enregistrer, appuyez sur CTRL + X , tapez Y et appuyez sur ENTER

  6. Désactiver IPv6

    sudo gedit /etc/sysctl.conf
    

    ou

    sudo nano /etc/sysctl.conf
    

    Copiez les lignes suivantes à la fin du fichier:

    #disable ipv6  
    net.ipv6.conf.all.disable_ipv6 = 1  
    net.ipv6.conf.default.disable_ipv6 = 1   
    net.ipv6.conf.lo.disable_ipv6 = 1  
    

    Si vous rencontrez un problème en vous disant que vous n’avez pas de permissions, lancez simplement la commande précédente avec le compte root (au cas où sudo ne suffirait pas. Pour moi c’était le cas)

  7. Maintenant, redémarrez.

    Vous pouvez aussi faire sudo sysctl -p mais je préfère redémarrer.

    Après le redémarrage, vérifiez que IPv6 est désactivé:

    cat /proc/sys/net/ipv6/conf/all/disable_ipv6
    

    il devrait dire 1 . Si vous dites 0 , vous avez manqué quelque chose.

  8. Installation de Hadoop

    Il existe plusieurs manières de procéder: celle proposée par le Guide est de télécharger depuis le site Apache Hadoop. et décompressez le fichier dans votre dossier personnel hduser . Renommez le dossier extrait en hadoop .

    L’autre consiste à utiliser un PPA testé pour la version 12.04:

    sudo add-apt-repository ppa:hadoop-ubuntu/stable  
    sudo apt-get update && sudo apt-get upgrade  
    sudo apt-get install hadoop  
    

    REMARQUE: Le PPA peut fonctionner pour certains et pour d'autres non. Celui que j'ai essayé de télécharger sur le site officiel parce que je ne connaissais pas le PPA.

  9. Mettre à jour $HOME/.bashrc

    Vous devrez mettre à jour .bashrc pour hduser (et pour chaque utilisateur devant administrer Hadoop). Pour ouvrir le fichier .bashrc , vous devrez l'ouvrir en tant que root:

    sudo gedit /home/hduser/.bashrc  
    

    ou

    sudo nano /home/hduser/.bashrc  
    

    Ensuite, vous ajouterez les configurations suivantes à la fin du fichier .bashrc

    # 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  
    

    Maintenant, si vous avez OpenJDK7, cela ressemblerait à ceci:

    export JAVA_HOME=/usr/lib/java-7-openjdk-amd64  
    

    La chose à surveiller ici est le dossier dans lequel Java réside avec la version AMD64. Si ce qui précède ne fonctionne pas, vous pouvez essayer de rechercher dans ce dossier particulier ou de définir le langage Java utilisé avec:

    sudo update-alternatives --config java  
    

    Maintenant, pour un alias utile:

    # Some convenient aliases and functions for running Hadoop-related commands  
    unalias fs &> /dev/null   
    alias fs="hadoop fs"    
    unalias hls &> /dev/null  
    alias hls="fs -ls"  
    
    # Add Hadoop bin/ directory to PATH  
    export PATH=$PATH:$HADOOP_HOME/bin  
    
  10. Configuration de Hadoop

    Voici les fichiers de configuration que nous pouvons utiliser pour effectuer la configuration appropriée. Certains des fichiers que vous utiliserez avec Hadoop sont (Plus d'informations dans ce site ):

    start-dfs.sh - Démarre les démons DFS Hadoop, le namenode et les codes de données. Utilisez ceci avant start-mapred.sh

    stop-dfs.sh - Arrête les démons Hadoop DFS.

    start-mapred.sh - Démarre les démons Hadoop Map / Reduce, le jobtracker et les tasktrackers.

    stop-mapred.sh - Arrête les démons Hadoop Map / Reduce.

    start-all.sh - Démarre tous les démons Hadoop, le namenode, les codes de données, le jobtracker et les tasktrackers. Obsolète; utilisez start-dfs.sh puis start-mapred.sh

    stop-all.sh - Arrête tous les démons Hadoop. Obsolète; utilisez stop-mapred.sh puis stop-dfs.sh

    Mais avant de commencer à les utiliser, nous devons modifier plusieurs fichiers dans le dossier /conf .

    hadoop-env.sh

    Recherchez le fichier hadoop-env.sh , nous devons uniquement mettre à jour la variable JAVA_HOME dans ce fichier:

    sudo gedit /home/hduser/hadoop/conf/hadoop-env.sh
    

    ou

    sudo nano /home/hduser/hadoop/conf/hadoop-env.sh
    

    ou dans les dernières versions, il sera dans

    sudo nano /etc/hadoop/conf.empty/hadoop-env.sh
    

    ou

    sudo nano /etc/hadoop/hadoop-env.sh
    

    Puis changez la ligne suivante:

    # export JAVA_HOME=/usr/lib/j2sdk1.5-sun
    

    Pour

    export JAVA_HOME=/usr/lib/jvm/java-7-oracle
    

    Note: si vous obtenez Error: JAVA_HOME is not set Erreur lors du démarrage des services, vous avez oublié de supprimer la mise en commentaire de la ligne précédente (il suffit de supprimer #).

    core-site.xml

    Maintenant, nous devons créer un répertoire temporaire pour le framework Hadoop. Si vous avez besoin de cet environnement pour des tests ou un prototype rapide (par exemple, développez des programmes hadoop simples pour votre test personnel ...), je suggère de créer ce dossier sous le répertoire /home/hduser/ , sinon vous devriez créer ce dossier dans un répertoire partagé. dossier partagé (comme / usr / local ...) mais vous pouvez rencontrer des problèmes de sécurité. Mais pour surmonter les exceptions pouvant être causées par la sécurité (comme java.io.IOException), j'ai créé le dossier tmp sous l'espace utilisateur hduser.

    Pour créer ce dossier, tapez la commande suivante:

    sudo mkdir /home/hduser/tmp   
    

    Veuillez noter que si vous souhaitez créer un autre utilisateur administrateur (par exemple, hduser2 dans le groupe hadoop), vous devez lui accorder une autorisation de lecture et d’écriture sur ce dossier à l’aide des commandes suivantes:

    sudo chown hduser:hadoop /home/hduser/tmp  
    sudo chmod 755 /home/hduser/tmp  
    

    Maintenant, nous pouvons ouvrir hadoop/conf/core-site.xml pour éditer l'entrée hadoop.tmp.dir. Nous pouvons ouvrir le fichier core-site.xml en utilisant un éditeur de texte:

    sudo gedit /home/hduser/etc/hadoop/core-site.xml  
    

    ou

    nano /home/hduser/etc/hadoop/core-site.xml
    

    Ajoutez ensuite les configurations suivantes entre les éléments <configure> xml :

    <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>
    

    Maintenant, éditez mapred-site.xml

    <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>
    

    Maintenant, éditez hdfs-site.xml

    <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> 
    
  11. Mise en forme NameNode

    Vous pouvez maintenant commencer à travailler sur le nœud. Premier format:

    ~/hduser/hadoop/bin/hadoop namenode -format
    

    ou

    ./home/hduser/hadoop/bin/hadoop namenode -format
    

    Vous devez formater le NameNode dans votre HDFS. Vous ne devez pas effectuer cette étape lorsque le système est en cours d'exécution. Cela se fait généralement une fois à la première installation.

  12. Démarrage de Hadoop Cluster

    Vous devrez accéder au répertoire hadoop / bin et exécuter le script ./start-all.sh .

    cd ~/hduser/hadoop/bin/  
    start-all.sh  
    

    Si vous avez une version différente de celle montrée dans les guides (que vous aurez probablement si vous le faites avec le PPA ou une version plus récente), essayez de cette manière:

    cd ~/hduser/hadoop/bin/   
    start-dfs.sh  
    start-mapred.sh   
    

    Cela va démarrer un Namenode, un Datanode, un Jobtracker et un Tasktracker sur votre machine.

  13. Vérifier si Hadoop est en cours d'exécution

    Il existe un bel outil appelé jps . Vous pouvez l'utiliser pour vous assurer que tous les services sont en place. Dans votre type de dossier hadoop bin:

    jps
    

    Il devrait vous montrer tous les processus liés à Hadoop.

    NOTE: Comme cela a été fait il y a environ 6 mois pour moi, si une partie ne fonctionne pas, faites le moi savoir.

Hadoop utilisant Juju (un charme de Juju pour Hadoop)

Extrait de Charming Hadoop

Je suppose que ce qui suit est déjà configuré:

  • Vous avez déjà un serveur avec Juju
  • Vous avez accès au serveur (localement ou à distance)
  • Vous avez Juju configuré et prêt à ajouter des charmes
  • Vous utilisez 12.04 (c’est parce que j’ai testé tout cela avec 12.04)
  • Vous avez déjà configuré ~/.juju/environments.yaml avec les informations concernant le serveur que vous utiliserez, y compris l'origine du PPA.

Ok maintenant suivez ces étapes pour avoir un service Hadoop en cours d’exécution:

  1. Bootstrap l'environnement pour Hadoop

    juju bootstrap
    

    Attendez qu’elle se termine puis vérifiez si elle se connecte correctement:

    juju status
    
  2. Déployer Hadoop (maître et esclave)

    juju deploy --constraints="instance-type=m1.large" hadoop hadoop-master   
    
    juju deploy --constraints="instance-type=m1.medium" -n 5 hadoop hadoop-slave
    
  3. Créer des relations

    juju add-relation hadoop-master:namenode hadoop-slave:datanode  
    
    juju add-relation hadoop-master:jobtracker hadoop-slave:tasktracker
    
  4. Expose Hadoop (Depuis que vous déployez et créez des relations, le service doit être exécuté)

    juju expose hadoop-master
    

    Et vérifiez l’état pour voir si cela fonctionne correctement:

    juju status hadoop-master
    

Jusqu'à présent, vous avez un Hadoop actif. Vous pouvez trouver beaucoup d'autres choses que vous pouvez trouver dans le lien fourni ou dans le charme de Juju pour Hadoop officiel

Pour des charmes JuJu à jour (configurations, guide étape par étape, etc.), vous pouvez visiter: Charms JuJu et créer votre propre environnement JuJu. voir comment chaque fichier est configuré et comment chaque service se connecte.

    
réponse donnée Luis Alvarado 09.04.2013 - 18:39
la source
6

J'ai installé Hadoop avec succès en définissant le chemin de JAVA_HOME comme usr/lib/jvm/java-6-openjdk-amd64 .

    
réponse donnée Anitha 02.06.2012 - 10:54
la source
3

Dérivé de la réponse de @Luis Alvarado, voici ma version pour Ubuntu 14.04 et Hadoop 2.5.1

En bref

  1. Installer Java
  2. Préparez un utilisateur exécutif pour Hadoop hduser
  3. Passez maintenant à hduser
  4. Autoriser hduser à se connecter via ssh avec moins de phrase de passe
  5. Désactiver IPv6
  6. Télécharger et configurer le package Hadoop
  7. Préparez le chemin système $ HADOOP_HOME et $ JAVA_HOME
  8. Services de configuration de Hadoop
  9. 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

    
réponse donnée Nam G VU 06.11.2014 - 03:44
la source
1

Pour pouvoir installer sun-java avec la commande apt-get , vous devez ajouter une ligne à un fichier appelé sources.list . Ce fichier se trouve dans /etc/apt/sources.list .

Ouvrez le fichier en utilisant cette commande:

sudo nano /etc/apt/sources.list

Ensuite, à la fin de (bas) de ce fichier, vous copiez / collez la ligne:

deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse

Maintenant, appuyez sur Ctrl + X pour quitter, et sur y pour enregistrer.

Maintenant, tapez la commande:

sudo apt-get update 

Lorsque cela est fait, vous pouvez exécuter la commande avec succès:

sudo apt-get install sun-java6-jdk
    
réponse donnée Daniel Adeniji 19.06.2012 - 11:38
la source
0

Pour un didacticiel plus à jour (non sûr des différences), consultez les didacticiels vidéo hadoop screencasts . Ils fournissent la vidéo et les commandes réelles à installer en dessous. Aussi, si vous envoyez un email à l'auteur, il sera ravi de vous répondre et de vous aider si vous êtes coincé avec quelque chose.

Ces instructions sont en grande partie similaires à celles auxquelles @Luis a répondu.

    
réponse donnée planty182 04.09.2013 - 14:51
la source
0

Suivez ces étapes ici ... explication très cool et simple, avec tous les dépannages possibles. Même un débutant comme moi, je n'aurai aucun problème. les crédits vont à lien .

    
réponse donnée Miller 05.07.2015 - 13:06
la source

Lire d'autres questions sur les étiquettes