Hadoop CDH4.1.2
HDFS HA : Stockage à haute disponibilité




                      Viadeo Tech Days 2012
                                Damien Hardy
            Architecte Infrastructure @Viadéo
Overview



1. Hadoop par Cloudera
2. CDH3 : Hadoop 1
3. CDH4 : Hadoop 2
4. HDFS HA
5. Paramétrage
6. Mire en route
7. Failover
8. Coté client
9. Information ailleurs
10.Questions
Cloudera : distribution Hadoop


 Packetage Debian et Redhat
 Dépots publiques
 Patchs
 Commiteurs Apache
CDH3 : D'où venons nous ?

 Hadoop 1.0
     NameNode (SPOF)
     SecondarynameNode (ceci n'est pas un
     NameNode)
     DataNode
     Jobtracker
     Tasktracker
 Hbase 0.90
     Master server
     Region server
 Zookeeper 3.3
 ...
©http://lesjoiesdusysadmin.tumblr.com/post/35638011614
CDH4.1 : HADOOP 2

 Hadoop 2.0
   NameNode
   DataNode
   JournalNode
   ZK Failover Controler (ZKFC)
   Jobtracker
   Tasktracker
 Hbase 0.92
   Master server
   Region server
 Zookeeper 3.4
 ...
HDFS HA

 NameNode n'est plus un SPOF o/
 SecondaryNameNode n'est plus utile
 2 NameNodes en mode active/standby
 Bascule automatique possible (ZKFC)
 Pas d'IP flottante ni de hearbeat/keepalive
 basé sur Zookeeper (déjà utilisé pour Hbase)
 avec ou sans NFS (grace aux JournalNodes)
hdfs-site.xml : déclaration du cluster

  dfs.nameservices : nom du "point d'accès"
  dfs.ha.namenodes.hdfscluster : liste des 2
  noms de serveurs NameNode
  dfs.namenode.rpc-
  address.hdfscluster.<nom> : adresse RPC du
  node
  dfs.namenode.http-
  address.hdfscluster.<nom> : adresse HTTP
  du node
hdfs-site.xml : méthode Failover

  dfs.ha.automatic-failover.enabled : bascule
  automatique ?
  ha.zookeeper.quorum : liste des serveurs du
  cluster ZooKeeper
hdfs-site.xml : partager les données

  dfs.namenode.shared.edits.dir : dossier de
  partage des meta données (sur NFS ou
  Quorum JournalNode)
  dfs.journalnode.edits.dir : chemin de
  stockage pour le JournalNode (sur chaque
  serveur du Quorum)
  dfs.ha.fencing.methods : méthode de
  STONITH (pour dossier partagé)
Initialisation

  Hdfs NameNode (premier)
    hdfs namenode -format
    start hadoop-hdfs-namenode
  Hdfs NameNode (second)
    hdfs namenode -bootstrapStandby
    start hadoop-hdfs-namenode
  Hdfs zkfc (bascule automatique)
    hdfs zkfc -formatZK
    start hadoop-hdfs-zkfc (sur 2 NameNode)
Administration

  hdfs haadmin
    Usage: DFSHAAdmin [-ns
    <nameserviceId>]
     [-transitionToActive <serviceId>]
     [-transitionToStandby <serviceId>]
     [-failover [--forcefence] [--forceactive]
    <serviceId> <serviceId>]
     [-getServiceState <serviceId>]
     [-checkHealth <serviceId>]
     [-help <command>]
    Pour provoquer une bascule de serveur.
    checkHealth non implémenté
Côté client HDFS: l'exemple HBase

  hbase-site.xml
    hbase.rootdir :
    hdfs://<dfs.nameservices>/hbase
  La config HDFS dans le $CLASSPATH
    core-site.xml
       dfs.client.failover.proxy.provider.<ns>
    hdfs-site.xml
Résultat

  Démo
Information

  http://ccp.cloudera.com/display/CDH4DOC/CD
  H4+High+Availability+Guide
Merci de votre attention,




                à vos questions!
HDFS HA : Stockage à haute disponibilité par Damien Hardy

HDFS HA : Stockage à haute disponibilité par Damien Hardy

  • 1.
    Hadoop CDH4.1.2 HDFS HA: Stockage à haute disponibilité Viadeo Tech Days 2012 Damien Hardy Architecte Infrastructure @Viadéo
  • 2.
    Overview 1. Hadoop parCloudera 2. CDH3 : Hadoop 1 3. CDH4 : Hadoop 2 4. HDFS HA 5. Paramétrage 6. Mire en route 7. Failover 8. Coté client 9. Information ailleurs 10.Questions
  • 3.
    Cloudera : distribution Hadoop Packetage Debian et Redhat Dépots publiques Patchs Commiteurs Apache
  • 4.
    CDH3 : D'où venonsnous ? Hadoop 1.0 NameNode (SPOF) SecondarynameNode (ceci n'est pas un NameNode) DataNode Jobtracker Tasktracker Hbase 0.90 Master server Region server Zookeeper 3.3 ...
  • 5.
  • 6.
    CDH4.1 : HADOOP2 Hadoop 2.0 NameNode DataNode JournalNode ZK Failover Controler (ZKFC) Jobtracker Tasktracker Hbase 0.92 Master server Region server Zookeeper 3.4 ...
  • 7.
    HDFS HA NameNoden'est plus un SPOF o/ SecondaryNameNode n'est plus utile 2 NameNodes en mode active/standby Bascule automatique possible (ZKFC) Pas d'IP flottante ni de hearbeat/keepalive basé sur Zookeeper (déjà utilisé pour Hbase) avec ou sans NFS (grace aux JournalNodes)
  • 8.
    hdfs-site.xml : déclaration ducluster dfs.nameservices : nom du "point d'accès" dfs.ha.namenodes.hdfscluster : liste des 2 noms de serveurs NameNode dfs.namenode.rpc- address.hdfscluster.<nom> : adresse RPC du node dfs.namenode.http- address.hdfscluster.<nom> : adresse HTTP du node
  • 9.
    hdfs-site.xml : méthode Failover dfs.ha.automatic-failover.enabled : bascule automatique ? ha.zookeeper.quorum : liste des serveurs du cluster ZooKeeper
  • 10.
    hdfs-site.xml : partager lesdonnées dfs.namenode.shared.edits.dir : dossier de partage des meta données (sur NFS ou Quorum JournalNode) dfs.journalnode.edits.dir : chemin de stockage pour le JournalNode (sur chaque serveur du Quorum) dfs.ha.fencing.methods : méthode de STONITH (pour dossier partagé)
  • 11.
    Initialisation HdfsNameNode (premier) hdfs namenode -format start hadoop-hdfs-namenode Hdfs NameNode (second) hdfs namenode -bootstrapStandby start hadoop-hdfs-namenode Hdfs zkfc (bascule automatique) hdfs zkfc -formatZK start hadoop-hdfs-zkfc (sur 2 NameNode)
  • 12.
    Administration hdfshaadmin Usage: DFSHAAdmin [-ns <nameserviceId>] [-transitionToActive <serviceId>] [-transitionToStandby <serviceId>] [-failover [--forcefence] [--forceactive] <serviceId> <serviceId>] [-getServiceState <serviceId>] [-checkHealth <serviceId>] [-help <command>] Pour provoquer une bascule de serveur. checkHealth non implémenté
  • 13.
    Côté client HDFS:l'exemple HBase hbase-site.xml hbase.rootdir : hdfs://<dfs.nameservices>/hbase La config HDFS dans le $CLASSPATH core-site.xml dfs.client.failover.proxy.provider.<ns> hdfs-site.xml
  • 14.
  • 15.
  • 16.
    Merci de votreattention, à vos questions!