Upload
olivier-dasini
View
2.327
Download
10
Embed Size (px)
DESCRIPTION
Jusqu'alors dans HDFS, NameNode etait un élément critique difficile à fiabiliser. Hadoop 2 et donc CDH4 introduisait HDFS HA. CDH4.1 élimine tous les SPOF. Nous verrons comment mettre en place la haute disponibilité dans HDFS. Quels sont les nouveaux services, comment les articuler. http://fr.viadeo.com/fr/profile/damien.hardy8
Citation preview
HDFS HA : Stockage à haute disponibilité
Hadoop CDH4.1.2
Viadeo Tech Days 2012Damien Hardy
Architecte Infrastructure @Viadéo
OverviewOverview
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 RedhatDépots publiquesPatchsCommiteurs Apache
CDH3 : D'où venons nous ?
Hadoop 1.0NameNode (SPOF)SecondarynameNode (ceci n'est pas un NameNode)DataNodeJobtrackerTasktracker
Hbase 0.90Master serverRegion server
Zookeeper 3.3...
©http://lesjoiesdusysadmin.tumblr.com/post/35638011614
CDH4.1 : HADOOP 2
Hadoop 2.0NameNodeDataNodeJournalNodeZK Failover Controler (ZKFC)JobtrackerTasktracker
Hbase 0.92Master serverRegion 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 -formatstart hadoop-hdfs-namenode
Hdfs NameNode (second)hdfs namenode -bootstrapStandbystart hadoop-hdfs-namenode
Hdfs zkfc (bascule automatique)hdfs zkfc -formatZKstart hadoop-hdfs-zkfc (sur 2 NameNode)
Administration
hdfs haadminUsage: 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.xmlhbase.rootdir : hdfs://<dfs.nameservices>/hbase
La config HDFS dans le $CLASSPATHcore-site.xml
dfs.client.failover.proxy.provider.<ns>hdfs-site.xml
Résultat
Démo
Information
http://ccp.cloudera.com/display/CDH4DOC/CDH4+High+Availability+Guide
Merci de votre attention,
à vos questions!
Adrien DEBBAHResponsables des Partenariats France
http://www.viadeo.com/fr/profile/adrien.debbah