hadoopDémarrer avec hadoop


Remarques

Qu'est-ce qu'Apache Hadoop?

La bibliothèque de logiciels Apache Hadoop est une infrastructure permettant le traitement distribué de grands ensembles de données sur des grappes d’ordinateurs à l’aide de modèles de programmation simples. Il est conçu pour passer de serveurs uniques à des milliers de machines, chacune offrant des fonctions de calcul et de stockage locales. Plutôt que de dépendre du matériel pour fournir une haute disponibilité, la bibliothèque elle-même est conçue pour détecter et gérer les défaillances au niveau de la couche application, offrant ainsi un service hautement disponible au-dessus d'un cluster

Apache Hadoop comprend ces modules:

  • Hadoop Common : les utilitaires communs qui prennent en charge les autres modules Hadoop.
  • Système de fichiers distribué Hadoop (HDFS) : système de fichiers distribué qui fournit un accès à haut débit aux données des applications.
  • Hadoop YARN : un cadre pour la planification des tâches et la gestion des ressources de cluster.
  • Hadoop MapReduce : Un système basé sur YARN pour le traitement parallèle de grands ensembles de données.

Référence:

Apache Hadoop

Versions

Version Notes de version Date de sortie
3.0.0-alpha1 2016-08-30
2.7.3 Cliquez ici - 2.7.3 2016-01-25
2.6.4 Cliquez ici - 2.6.4 2016-02-11
2.7.2 Cliquez ici - 2.7.2 2016-01-25
2.6.3 Cliquez ici - 2.6.3 2015-12-17
2.6.2 Cliquez ici - 2.6.2 2015-10-28
2.7.1 Cliquez ici - 2.7.1 2015-07-06

Vue d'ensemble de Hadoop et HDFS

entrer la description de l'image ici

    Hadoop est une infrastructure logicielle à code source libre pour le stockage et le traitement à grande échelle d'ensembles de données dans un environnement informatique distribué. Il est sponsorisé par Apache Software Foundation. Il est conçu pour passer de serveurs uniques à des milliers de machines, chacune offrant des fonctions de calcul et de stockage locales.
Histoire

  • Hadoop a été créé par Doug Cutting et Mike Cafarella en 2005.
  • Cutting, qui travaillait chez Yahoo! à l'époque, l'a nommé après l'éléphant de jouet de son fils.
  • Il a été initialement développé pour prendre en charge la distribution du projet de moteur de recherche.
Principaux modules de hadoop

    Système de fichiers distribué Hadoop (HDFS): système de fichiers distribué qui fournit un accès à haut débit aux données des applications. Hadoop MapReduce: cadre logiciel pour le traitement distribué de grands ensembles de données sur des grappes de calcul.
Fonctionnalités de base du système de fichiers Hadoop

    Très tolérant aux pannes. Haut débit. Convient aux applications avec de grands ensembles de données. Peut être construit à partir de matériel de base.
Namenode et Datanodes

    Architecture maître / esclave. Le cluster HDFS se compose d'un seul Namenode, un serveur maître qui gère l'espace de noms du système de fichiers et régule l'accès aux fichiers par les clients. Les nœuds de données gèrent le stockage attaché aux nœuds sur lesquels ils s'exécutent. HDFS expose un espace de noms de système de fichiers et permet de stocker les données utilisateur dans des fichiers. Un fichier est divisé en un ou plusieurs blocs et un ensemble de blocs est stocké dans DataNodes. DataNodes: sert à lire, à écrire des requêtes, à créer, à supprimer et à répliquer des blocs sur instruction de Namenode.

entrer la description de l'image ici

    HDFS est conçu pour stocker des fichiers très volumineux sur plusieurs ordinateurs d'un grand cluster. Chaque fichier est une séquence de blocs. Tous les blocs du fichier, sauf le dernier, ont la même taille. Les blocs sont répliqués pour la tolérance aux pannes. Le Namenode reçoit un Heartbeat et un BlockReport de chaque DataNode du cluster. BlockReport contient tous les blocs d'un Datanode.
Commandes Hadoop Shell

    Commandes communes utilisées: -
      ls Usage: hadoop fs –ls Chemin (répertoire / chemin du fichier à lister). Utilisation du chat : hadoop fs -cat PathOfFileToView

entrer la description de l'image ici

Lien pour les commandes du shell hadoop: - https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/FileSystemShell.html

Installation de Hadoop sur Ubuntu

Création d'un utilisateur Hadoop:

sudo addgroup hadoop
 

Ajouter un utilisateur:

sudo adduser --ingroup hadoop hduser001
 

entrer la description de l'image ici

Configuration de SSH:

su -hduser001
ssh-keygen -t rsa -P ""
cat .ssh/id rsa.pub >> .ssh/authorized_keys
 

Remarque : Si vous obtenez des erreurs [ bash: .ssh / authorized_keys: pas de fichier ou répertoire de ce type ] lors de l'écriture de la clé autorisée. Vérifiez ici .

entrer la description de l'image ici entrer la description de l'image ici entrer la description de l'image ici

Ajouter l'utilisateur hadoop à la liste de sudoer:

sudo adduser hduser001 sudo
 

entrer la description de l'image ici

Désactiver IPv6:

entrer la description de l'image ici entrer la description de l'image ici

Installation de Hadoop:

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

entrer la description de l'image ici entrer la description de l'image ici

Installation ou configuration sous Linux

Procédure de configuration d'un cluster pseudo-distribué

Conditions préalables

  • Installez JDK1.7 et définissez la variable d'environnement JAVA_HOME.

  • Créez un nouvel utilisateur en tant que "hadoop".

    useradd hadoop

  • Configurer la connexion SSH sans mot de passe sur son propre compte

     su - hadoop
     ssh-keygen
     << Press ENTER for all prompts >>
     cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
     chmod 0600 ~/.ssh/authorized_keys
     
  • Vérifier en effectuant ssh localhost

  • Désactivez IPV6 en éditant /etc/sysctl.conf avec les éléments suivants:

     net.ipv6.conf.all.disable_ipv6 = 1
     net.ipv6.conf.default.disable_ipv6 = 1
     net.ipv6.conf.lo.disable_ipv6 = 1
     
  • Vérifiez que vous utilisez cat /proc/sys/net/ipv6/conf/all/disable_ipv6

    (devrait retourner 1)

Installation et configuration:

  • Téléchargez la version requise de Hadoop à partir des archives Apache en utilisant la commande wget .

     cd /opt/hadoop/
     wget http:/addresstoarchive/hadoop-2.x.x/xxxxx.gz
     tar -xvf hadoop-2.x.x.gz
     mv hadoop-2.x.x.gz hadoop 
    (or)
    
     ln -s hadoop-2.x.x.gz hadoop
     chown -R hadoop:hadoop hadoop
     
  • Mettre à jour .bashrc / .kshrc fonction de votre shell avec les variables d'environnement ci-dessous

      export HADOOP_PREFIX=/opt/hadoop/hadoop
      export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
      export JAVA_HOME=/java/home/path
      export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$JAVA_HOME/bin
     
  • Dans le $HADOOP_HOME/etc/hadoop , éditez ci-dessous les fichiers

    • core-site.xml

      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://localhost:8020</value>
          </property>
      </configuration> 
       
    • mapred-site.xml

      Créer mapred-site.xml partir de son modèle

      cp mapred-site.xml.template mapred-site.xml

        <configuration>
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
        </configuration> 
       
    • yarn-site.xml

       <configuration>
           <property>
               <name>yarn.resourcemanager.hostname</name>
               <value>localhost</value> 
           </property>
           <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
           </property>
       </configuration>
       
    • hdfs-site.xml

       <configuration>
           <property>
               <name>dfs.replication</name>
               <value>1</value>
           </property>
           <property>
               <name>dfs.namenode.name.dir</name>
               <value>file:///home/hadoop/hdfs/namenode</value>
           </property>
           <property>
               <name>dfs.datanode.data.dir</name> 
               <value>file:///home/hadoop/hdfs/datanode</value> 
           </property>
       </configuration>
       

    Créez le dossier parent pour stocker les données hadoop

    mkdir -p /home/hadoop/hdfs
     
  • Format NameNode (nettoie le répertoire et crée les fichiers méta nécessaires)

    hdfs namenode -format
     
  • Démarrer tous les services:

    start-dfs.sh && start-yarn.sh
    mr-jobhistory-server.sh start historyserver
     

Au lieu de cela, utilisez start-all.sh (obsolète).

  • Vérifiez tous les processus Java en cours d'exécution

    jps 
     
  • Interface Web Namenode: http: // localhost: 50070 /

  • Interface Web du gestionnaire de ressources: http: // localhost: 8088 /

  • Pour arrêter les démons (services):

    stop-dfs.sh && stop-yarn.sh
    mr-jobhistory-daemon.sh stop historyserver
     

Utilisez plutôt stop-all.sh (obsolète).