Hadoop Source Code    Reading 11th                                        CDH4.0.0のNameNode HAを触ってみて                      ...
自己紹介• Shinichi Yamashita (山下 真一)• NTTデータでHadoopを扱っている...• 仕事での最近の取り組み • サポート関係 • エコシステム評価 • 案件対応• 最近思っていること • すそ野を広げることは大切...
おさらい: HDFSの可用性• DataNode ・・・                            障害発生時にサービス継続できる仕組み ○ • ブロック(ファイルを一定サイズで分割されているもの)を   分割、レプリカを保存 • ...
Common method of the availability of NameNode• CDH3, Hadoop 1.0 ... •      Pacemaker + DRBD (Cold-Standby) : share NN-meta...
Issues on common method of the availability of NameNode• Re-run of MapReduce Job during NameNode fail over  • 実行されているジョブはや...
NameNode HA (Hadoop 2.0)• Hadoop 2.0 では、NameNode HAが鋭意開発中• CDH 4.0.0 では、足回りにNFSを利用する方式でリリース済み・NameNodeプロセスの監視          Zoo...
NameNode異常発生時の切り替え• たとえば、ActiveのNameNodeプロセスが故障・消滅した場合    2. ZKFCがZKに                                                     ...
ZKFC異常発生時の切り替え• たとえば、Active系のZKFCがプロセス故障の場合                                            quorum         ZooKeeper           ...
いくつかの故障を想定して動作させてみる                                           ZooKeeper   ×3でQuorum   DataNode   ×3処理用LAN                 ...
いくつかの故障を想定して動作させてみる<確認結果> ※ 多重故障は、考慮していない    No                                        異常         待機系への切り替え     1         ...
NameNode HAのポイント その1その1 : フェンシング 方法 (o.a.h.ha.NodeFencerクラス)(1)sshfence (o.a.h.ha.SshFenceByTcpPortクラス)  •          異常発生時に...
NameNode HAのポイント その2その2 : NFSサーバ(1)マウント設定 : ソフトマウントでマウントすること  • ハードマウントの場合、NFS接続のNIC異常の場合に無応答になる    ケースあり  • Cloudera 推奨設定...
NameNode HAのポイント その3その3 : フェデレーションとの関係• Namespace単位で、HA環境を実現することは可能• 設定 •      fs.defaultFS (fs.default.name)            •...
NameNode HAのポイント その4その4 : Full GC発生時の考慮 : タイムアウト設定は意識すること• NameNode HAでは現用系、待機系ともにメタ情報、ブロック情報を  ヒープメモリで管理する• 待機系のNameNodeは...
NameNode HAのポイント その5その5 : NameNodeメタ領域 : 1.0系から少々変わっています• fsimage : 保存世代数を設定できる •       保存世代数 : 2世代 (dfs.namenode.num.chec...
雑感• MapReduceジョブが継続できるという点は魅力的  • これまでの方式で切り替わるタイミングでジョブ実行中が結構な割    合であったため  • 切り替え後のあるべき姿への復旧で結構時間を要しているため• 守るべきポイントがNFSに...
まとめ• NameNode HAは、NFSでもOKであれば利用できそうか...?• 構成や設定は、十分検証したうえで決めること• 本当のHAという意味では、おとなしくBookKeeperを待つべき• もっと別の技術を組み合わせるという方法も  ...
Thank you!Copyright © 2011 NTT DATA CorporationCopyright © 2012 NTT DATA Corporation
Upcoming SlideShare
Loading in …5
×

CDH4.0.0のNameNode HAを触ってみて

5,020 views

Published on

第11回 Hadoopソースコードリーディング(2012/07/30) 発表資料
http://hadoop-scr11th.eventbrite.com/

発表者: 山下 真一(NTTデータ 基盤システム事業本部)

HadoopディストリビューションCDH 4.0.0に入った新機能 NameNode HA を触った感触(簡単な評価結果)をご紹介します。
本発表での NameNode HA はNFS上に構成されたものです。将来的に BookKeeper がリリースされる予定です。

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,020
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
0
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

CDH4.0.0のNameNode HAを触ってみて

  1. 1. Hadoop Source Code Reading 11th CDH4.0.0のNameNode HAを触ってみて 07/30/2012 NTT DATA Corporation Shinichi YamashitaCopyright © 2012 NTT DATA Corporation
  2. 2. 自己紹介• Shinichi Yamashita (山下 真一)• NTTデータでHadoopを扱っている...• 仕事での最近の取り組み • サポート関係 • エコシステム評価 • 案件対応• 最近思っていること • すそ野を広げることは大切だ! Copyright © 2012 NTT DATA Corporation 2
  3. 3. おさらい: HDFSの可用性• DataNode ・・・ 障害発生時にサービス継続できる仕組み ○ • ブロック(ファイルを一定サイズで分割されているもの)を 分割、レプリカを保存 • NameNodeとの通信により、異常が発生した場合に、レプ リカ再配置が自動的に実行• NameNode ・・・ ダウン = HDFSサービスの停止 ו 四六時中データ操作、ジョブ実行するようなケースで は、HDFSサービス停止は頭が痛い • 連鎖的な後続処理の遅延 • 分析等処理遅延による機会損失 Copyright © 2012 NTT DATA Corporation 3
  4. 4. Common method of the availability of NameNode• CDH3, Hadoop 1.0 ... • Pacemaker + DRBD (Cold-Standby) : share NN-meta directory • AvatarNode (Facebook) HDFS NameNode NameNode mirror DRBD DRBD Clustering Control Pacemaker Pacemaker Control Active Standby Copyright © 2012 NTT DATA Corporation 4
  5. 5. Issues on common method of the availability of NameNode• Re-run of MapReduce Job during NameNode fail over • 実行されているジョブはやり直し • mapred.jobtracker.restart.recover で途中から実行できる ?• Safe mode time to start NameNode service • less 10min : 3 - 100 DataNodes • 30min – 60min : 100+ DataNodes (10+ million blocks) ...• クラスタ起動やジョブの再実行など、あるべき姿に戻すための時間は 必要 Copyright © 2012 NTT DATA Corporation 5
  6. 6. NameNode HA (Hadoop 2.0)• Hadoop 2.0 では、NameNode HAが鋭意開発中• CDH 4.0.0 では、足回りにNFSを利用する方式でリリース済み・NameNodeプロセスの監視 ZooKeeper quorum NameNode(Act,・フェンシング実行 Sby) 状態の管理・Act, Sbyへの状態遷を実行 ZooKeeper ZooKeeper 監視 ZKFC フェンシング ZKFC NameNode NameNode チェックポイント通信 Active edits共有 Standby NFS 共有ディスク DataNode DataNode DataNode ・・・ Copyright © 2012 NTT DATA Corporation 6
  7. 7. NameNode異常発生時の切り替え• たとえば、ActiveのNameNodeプロセスが故障・消滅した場合 2. ZKFCがZKに 7. 新NameNode NameNodeサービ quorum ZooKeeper 情報通知 ス停止を通知ZKでのロック解放 4. 旧ActNN疎通確認 ZooKeeper ZooKeeper3. 新NameNode選 旧ActNNをSbyに 択指示 変更しようと試行 5. フェンシング ZKFC ZKFC フェンシング NameNode NameNode Active->消失 Standby->Active 6. NameNode edits共有 1. ZKFCが Act系に切り替え NFS NameNodeの異 共有ディスク 常を検知 DataNode DataNode 現用系のZKFCがロックを DataNode 解放し、待機系のZKFCか らフェンシングを実行 ・・・ Copyright © 2012 NTT DATA Corporation 7
  8. 8. ZKFC異常発生時の切り替え• たとえば、Active系のZKFCがプロセス故障の場合 quorum ZooKeeper 1. ZKFC消失 確認 ZooKeeper ZooKeeper 2. 新NameNode決 定 4. ZooKeeper状態 ZKFC 更新 ZKFC 3.NameNode状態 NameNode 切り替え NameNode Active->Standby Standby->Active edits共有 NFS 共有ディスク DataNode DataNode DataNode 待機系のZKFCが NameNodeのActiveと ・・・ Standbyを切り替える Copyright © 2012 NTT DATA Corporation 8
  9. 9. いくつかの故障を想定して動作させてみる ZooKeeper ×3でQuorum DataNode ×3処理用LAN ZKFC ZKFC NameNode NameNode 現用系 NFSサーバ 待機系NFSはsoft マウント IPMI IPMI運用LAN※ 本方式を利用する場合、待機系NameNodeがSecondaryNameNodeの役割を果たすCopyright © 2012 NTT DATA Corporation 9
  10. 10. いくつかの故障を想定して動作させてみる<確認結果> ※ 多重故障は、考慮していない No 異常 待機系への切り替え 1 現用系NameNodeプロセス故障 ○ 2 現用系ZKFCプロセス故障 ○ 3 現用系NameNodeサーバ故障 ○ 両系 4 現用系NameNodeサービスLAN故障 ○ NameNode プロセス停止 5 現用系NameNodeディスク故障 ○ 6 NFSサーバ故障 × 7 MapReduceジョブ実行中の現用系故障 ○ 処理継続 8 HDFS操作中の現用系故障 ○ 処理継続 Copyright © 2012 NTT DATA Corporation 10
  11. 11. NameNode HAのポイント その1その1 : フェンシング 方法 (o.a.h.ha.NodeFencerクラス)(1)sshfence (o.a.h.ha.SshFenceByTcpPortクラス) • 異常発生時に、SSHで現用系サーバに接続、fuserコマンドでNameNodeプロセス を停止 • 実行されるコマンド : fuser –v –k –n tcp <現用系NameNode RPCポート>(2)shellfence (o.a.h.ha.ShellCommandFencerクラス) • 各自で用意したシェルスクリプトによって、現用系を停止 • 今回は、IPMI経由でサーバを停止するスクリプトを用意• フェンシングを実行する場合は、sshfence + shellfenceの組み合わせ が大切です(sshfenceだけでは×) • shellfenceは、複数のシェルスクリプトを利用することが可能、対処の影響度が小 さい順番に実行すること Copyright © 2012 NTT DATA Corporation 11
  12. 12. NameNode HAのポイント その2その2 : NFSサーバ(1)マウント設定 : ソフトマウントでマウントすること • ハードマウントの場合、NFS接続のNIC異常の場合に無応答になる ケースあり • Cloudera 推奨設定 tcp,soft,intr,timeo=60,retrans=10(2)NFSサーバ自身の対策 • 現在の実装では、単一故障点(SPOF)であるためHA化が必要 • 複数のNFSサーバのマウント先に記述するような実装が必要か? Copyright © 2012 NTT DATA Corporation 12
  13. 13. NameNode HAのポイント その3その3 : フェデレーションとの関係• Namespace単位で、HA環境を実現することは可能• 設定 • fs.defaultFS (fs.default.name) • アクセス先となるNamespace名を入れる • dfs.nameservices : それぞれのNamespaceを定義 • フェデレーション実施時には、カンマ区切りで記述(特にDataNode) • dfs.ha.namenodes.<Namespace名> : HA対象のNameNode識別名 • dfs.namenode.rpc-address.<Namespace名>.<NameNode識別名> • dfs.namenode.http-address. <Namespace名>.<NameNode識別名> Copyright © 2012 NTT DATA Corporation 13
  14. 14. NameNode HAのポイント その4その4 : Full GC発生時の考慮 : タイムアウト設定は意識すること• NameNode HAでは現用系、待機系ともにメタ情報、ブロック情報を ヒープメモリで管理する• 待機系のNameNodeは、従来のSecondaryNameNodeのようにチェッ クポイント(editsをfsimageにマージ、現用系に転送)を実施する• 大量データ削除などにより、両系で同時にFull GCが発生する可能性 がある・・・かもしれない• 両系同時にFull GCが発生する場合は、Full GCから復活すればサービ スを継続できる(現用系が先の復旧の場合はもちろん、待機系でも)• とはいえ、ha.health-monitor.rpc-timeout.ms プロパティにより NameNodeで発生するFull GC時間をもとにタイムアウト値を変更する ことで対処できる(デフォルト60000ミリ秒) Copyright © 2012 NTT DATA Corporation 14
  15. 15. NameNode HAのポイント その5その5 : NameNodeメタ領域 : 1.0系から少々変わっています• fsimage : 保存世代数を設定できる • 保存世代数 : 2世代 (dfs.namenode.num.checkpoints.retained) • チェックポイント間隔 : 3600秒(dfs.namenode.checkpoint.period)• edits : 間隔が短くなった • 保存世代数 : 1,000,000世代(dfs.namenode.num.extra.edits.retained) • チェックポイント間隔 : 120,000ミリ秒 (dfs.ha.log-roll.period)edits保存世代数など、値をチューニングして利用したほうが良いようなパラメータも有り Copyright © 2012 NTT DATA Corporation 15
  16. 16. 雑感• MapReduceジョブが継続できるという点は魅力的 • これまでの方式で切り替わるタイミングでジョブ実行中が結構な割 合であったため • 切り替え後のあるべき姿への復旧で結構時間を要しているため• 守るべきポイントがNFSに変わっただけ(むしろ増えた) • NFSサーバにHAクラスタミドルを適用する? • 複数のNFSサーバに書き込んでどれか1つでも成功すればOKな仕 組みがあれば、、、• モニターする仕組みも足りないので、作りこむ必要あり • ZKFCの情報取得 • チェックポイント動作の状況確認• さらにプロパティが増えた Copyright © 2012 NTT DATA Corporation 16
  17. 17. まとめ• NameNode HAは、NFSでもOKであれば利用できそうか...?• 構成や設定は、十分検証したうえで決めること• 本当のHAという意味では、おとなしくBookKeeperを待つべき• もっと別の技術を組み合わせるという方法も • フォールトトレラント技術? Copyright © 2012 NTT DATA Corporation 17
  18. 18. Thank you!Copyright © 2011 NTT DATA CorporationCopyright © 2012 NTT DATA Corporation

×