Premiers pas avec hadoop

Installation de Hadoop sur Ubuntu

Création d’un utilisateur Hadoop :

sudo addgroup hadoop

Ajout d’un utilisateur :

sudo adduser --ingroup hadoop hduser001

[![entrez la description de l’image ici][1]][1]

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 : aucun fichier ou répertoire de ce type] lors de l’écriture de la clé autorisée. Vérifiez [ici][2].

[![entrez la description de l’image ici][3]][3] [![entrez la description de l’image ici][4]][4] [![entrez la description de l’image ici][5]][5]

Ajoutez l’utilisateur hadoop à la liste de sudoer :

sudo adduser hduser001 sudo

[![entrez la description de l’image ici][6]][6]

Désactivation d’IPv6 :

[![entrez la description de l’image ici][7]][7] [![entrez la description de l’image ici][8]][8]

Installation d’Hadoop :

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

[![entrez la description de l’image ici][9]][9] [![entrez la description de l’image ici][10]][10]

[1] : http://i.stack.imgur.com/dRsz0.png [2] : http://askubuntu.com/questions/466549/bash-home-user-ssh-authorized-keys-no-such-file-or-directory [3] : http://i.stack.imgur.com/6pNSe.png [4] : http://i.stack.imgur.com/cpau3.png [5] : http://i.stack.imgur.com/3c2nb.png [6] : http://i.stack.imgur.com/ICB9j.png [7] : http://i.stack.imgur.com/UzX4h.png [8] : http://i.stack.imgur.com/znIbd.png [9] : http://i.stack.imgur.com/xj5jD.png [10] : http://i.stack.imgur.com/oamjE.png

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 à 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érifiez en exécutant ssh localhost

  • Désactivez IPV6 en éditant /etc/sysctl.conf avec ce qui suit :

      net.ipv6.conf.all.disable_ipv6 = 1
      net.ipv6.conf.default.disable_ipv6 = 1
      net.ipv6.conf.lo.disable_ipv6 = 1
    
  • Vérifiez qu’en utilisant cat /proc/sys/net/ipv6/conf/all/disable_ipv6

    (should return 1)
    

Installation et configuration :

  • Téléchargez la version requise de Hadoop à partir des archives Apache à l’aide de 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
    
  • Mettez à jour .bashrc/.kshrc en 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 répertoire $HADOOP_HOME/etc/hadoop, modifiez les fichiers ci-dessous - core-site.xml

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

      Create mapred-site.xml from its template

      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>
      

    Create the parent folder to store the hadoop data

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

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

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

Utilisez plutôt 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).

Présentation de Hadoop et HDFS

[![entrez la description de l’image ici][1]][1]

  • Hadoop is an open-source software framework for storage and large-scale processing of data-sets in a distributed computing environment.
  • It is sponsored by Apache Software Foundation.
  • It is designed to scale up from single servers to thousands of machines, each offering local computation and storage.

Historique

  • Hadoop was created by Doug Cutting and Mike Cafarella in 2005.
  • Cutting, who was working at Yahoo! at the time, named it after his son's toy elephant.
  •  It was originally developed to support distribution for the search engine project.

Modules majeurs de hadoop

  • Hadoop Distributed File System (HDFS): A distributed file system that provides high-throughput access to application data.
  • Hadoop MapReduce: A software framework for distributed processing of large data sets on compute clusters.

Système de fichiers Hadoop  Fonctionnalités de base

  • Highly fault-tolerant.
  • High throughput.
  • Suitable for applications with large data sets.
  • Can be built out of commodity hardware.

Namenode et Datanodes

  • Master/slave architecture.
  • HDFS cluster consists of a single Namenode, a master server that manages the file system namespace and regulates access to files by clients.
  • The DataNodes manage storage attached to the nodes that they run on.
  • HDFS exposes a file system namespace and allows user data to be stored in files.
  • A file is split into one or more blocks and set of blocks are stored in DataNodes.
  • DataNodes: serves read, write requests, performs block creation, deletion, and replication upon instruction from Namenode.

[![entrez la description de l’image ici][2]][2]

  • HDFS is designed to store very large files across machines in a large cluster.
  • Each file is a sequence of blocks.
  • All blocks in the file except the last are of the same size.
  • Blocks are replicated for fault tolerance.
  • The Namenode receives a Heartbeat and a BlockReport from each DataNode in the cluster.
  • BlockReport contains all the blocks on a Datanode.

Commandes du shell Hadoop

  • Common commands used:-
    1. ls Usage: hadoop fs –ls Path(dir/file path to list).
    2. Cat Usage: hadoop fs -cat PathOfFileToView

[![entrez la description de l’image ici][3]][3]

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

[1] : https://i.stack.imgur.com/gEskB.jpg [2] : https://i.stack.imgur.com/kt1kT.gif [3] : https://i.stack.imgur.com/qMrYh.jpg