namenodeha導入背景と運用状況
DESCRIPTION
Clouderaセミナーで発表する資料ですTRANSCRIPT
NamenodeHA導入背景と運用状況
株式会社サイバーエージェント アメーバ事業部 インフラシステムグループ 上原 誠
2 株式会社サイバーエージェント
自己紹介
・ ~2012年2月 某SIerでインフラ周りに従事 ・ 2012年3月 サイバーエージェント入社
- Amebaスマフォプラットフォームの構築
- 統合ログ解析基盤やオンラインデータベースの
インフラミドルウェア部分を担当
- Hadoop、HBase、Flume
・ 上原 誠 (@pioho07)
【名前】
【経歴】 Facebook申請歓迎 xxxxxxxx
3 株式会社サイバーエージェント
4 株式会社サイバーエージェント
5 株式会社サイバーエージェント 株式会社サイバーエージェント スマートフォンサービス
6 株式会社サイバーエージェント 株式会社サイバーエージェント
・ NamenodeHA運用状況 について
本日の内容
・ NamenodeHA導入背景 について
7 株式会社サイバーエージェント 株式会社サイバーエージェント 株式会社サイバーエージェント
・ NamenodeHA運用状況 について
・ NamenodeHA導入背景 について
8
AmebaではHadoopを
どう使ってきたか
9
Hadoop in Ameba
・ 2007年~ アメブロアクセス解析
- Hadoop0.13.1
- MapReduce,HDFS
・ 2009年~ Ameba Pigg
- ログ集約サーバ(HDFS)
・ 2010年~ Patriot(ログ解析基盤システム名)
- Amebaサービス全体のログ集約解析基盤
- CDH3系
- Hive
・ 2012年~ Hornet
- オンライン用途でのグラフデータ構造を扱うデータストア
- CDH3系
- HBase
・ 2013年~ ミニグラフHbase,レコメンドHBase
-オンライン用途でコミュニティアプリのデータを扱うDB
-CDH4系
-HBase
HadoopConferenceJapanキッカケ
10
NamenodeHAの必要性
11
Hadoop in Ameba
・ 2007年~ アメブロアクセス解析
- Hadoop0.13.1
- MapReduce,HDFS
・ 2009年~ Ameba Pigg
- ログ集約サーバ(HDFS)
・ 2010年~ Patriot(ログ解析基盤システム名)
- Amebaサービス全体のログ集約解析基盤
- CDH3系
- Hive
・ 2012年~ Hornet
- オンライン用途でのグラフデータ構造を扱うデータストア
- CDH3系
- HBase
・ 2013年~ ミニグラフHbase,レコメンドHBase
-オンライン用途でコミュニティアプリのデータを扱うDB
-CDH4系
-HBase
この時期までは、NameNodeに障害があっても起動し直せば
まぁいっかと割り切っていた。サービス的にも影響少なかった
12
Hadoop in Ameba
・ 2007年~ アメブロアクセス解析
- Hadoop0.13.1
- MapReduce,HDFS
・ 2009年~ Ameba Pigg
- ログ集約サーバ(HDFS)
・ 2010年~ Patriot(ログ解析基盤システム名)
- Amebaサービス全体のログ集約解析基盤
- CDH3系
- Hive
・ 2012年~ Hornet
- オンライン用途でのグラフデータ構造を扱うデータストア
- CDH3系
- HBase
・ 2013年~ミニグラフHbase,レコメンドHBase
-オンライン用途でコミュニティアプリのデータを扱うDB
-CDH4系
-HBase
この時期からはオンライン用途になり、
落ちたらダメよと言われた
13 株式会社サイバーエージェント
長い間、NamenodeはSPOF(SinglePointOfFailure)だった。
※図はHadoopのよくある構成
Slave01
DataNode
HReagionServer
TaskTracker
Master01 Master03 Master02
Secondary Namenode
Zookeeper
HMaster
JobTracker
HMaster
マスター達 スレーブ達
Hadoopシステム
Zookeeper Zookeeper
NameNode
こいつ
14 株式会社サイバーエージェント
HDFS
NameNodeに障害があるとどうなるの・・??
Hadoopシステム
OS
物理
Other
MapReduce HBase Zookeeper Other
ミドルウェア
NameNode
15 株式会社サイバーエージェント
HDFS
みんな死ぬ(((゚Д゚)))ガクブル ※(エコシステム達が)
HDFSが機能しなくなり、その上に乗っている各エコシステムのMapReduceとかHBaseとか機能しなくなる
Hadoopシステム
OS
物理
Other
MapReduce HBase Zookeeper Other
ミドルウェア
NameNode
16
どうにかしなくては
NamenodeのHA機能があれば・・(HAなかった時)
17
冗長性の検討しました
・OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する。
・ハードウェアFT(Fault Tolerance)サーバを使う
18
冗長性の検討しました。
・OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する。
・StratusのハードウェアFT(FaultTrerance)サーバを使う
19
OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する
メリット
-これが一般的に多い事例だった。
-OSS自体は実績十分
デメリット
-複雑になりがちで、よほどちゃんと設計試験をしないといざという時にスプリットブレインで死ねる。。
-入社当時一人で全部やらなければいけない上にリリース時間も限られていたので断念。。
20
冗長性の検討しました。
・OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する。
・ハードウェアFT(FaultTrerance)サーバを使う
21
FTサーバを使う
メリット
-ハードウェアのレベルでの冗長性なので安心。
-メモリ情報もロストしない。当初メタデータが数十ギガの想定だったので起動しなおしだとメモリに乗せるだけで時間かかる
デメリット
-高い
-メンテが打てない
-高い(2回目)
22
NamenodeHA出た!ので検証・導入しました
・CDH4.0.0を検証。待望のHA機能だった。
-CDH4.0.0はHA構成にするためにNFSが必須だった
-導入は見送った
・CDH4.1.0を検証・導入
-CDH4.1.0以降はNFS不要
NFSの代わりにQuorumJournalManagerを使う
-CDH4.1.0リリース後1ヶ月以内に「えいやー」で導入した
※個人的には4.1.0からがHA対応したCDHと思ってる
23
NamenodeHA出た!ので検証・導入しました
仕組みや考え方は一般的なクラスタソフトと同様
設定パラメータはそんなに多くない
スプリットブレイン試験は入念に
24
検証結果は?
25 株式会社サイバーエージェント 株式会社サイバーエージェント
障害試験 概ね良好
Master01
NN
Master02
ZK ZK
HM
ZKFC ZKFC
JN JN
NN
・NN01 プロセスダウン時
ZKFCが障害を検知しNN02をアクティブへ移行
HDFS、HBaseへの書き込み続けたがともに問題なし
active
・はまったとこ
フェンシングの方法は2種類ありsshfenceのみの設定だとリトライを繰り返して切り替わらない。Gracefulfencingのタイムアウトがconf上にはなく20sでハードコーディングされてるなど
この辺↓
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence
shell(true)</value>
</property>
26 株式会社サイバーエージェント
運用オペレーション
・フェイルオーバ
hdfs haadmin -failover <serviceID>
・状態確認
hdfs haadmin -getServiceState <serviceId>
activeとかstandbyとか返ってくるだけ
シンプル
27
構成どうなったの?
28 株式会社サイバーエージェント
HA導入前
Slave01
DataNode
HReagionServer
TaskTracker
Master01 Master03 Master02
Secondary Namenode
ZookeeperK
HMaster
JobTracker
HMaster
マスター達 スレーブ達
Hadoopシステム
ZookeeperK ZookeeperK
NameNode
29 株式会社サイバーエージェント
HA導入後
Slave01
DataNode
HReagionServer
TaskTracker
Master01 Master03 Master02
Standby Namenode
Zookeeper
HMaster
JobTracker
HMaster
マスター達 スレーブ達
Hadoopシステム
Zookeeper Zookeeper
NameNode
JournalNode JournalNode JournalNode
ZKFC ZKFC
30 株式会社サイバーエージェント 株式会社サイバーエージェント 株式会社サイバーエージェント
・ NamenodeHA運用状況 について
・ NamenodeHA導入背景 について
31
運用しててどうか?
特にHA構成にしたことによるトラブルは発生していない
JournalNode,ZKFC固有の問題も今のところない
32
障害は起きたか?
・Namenode自体の通信量が多くなることはないが、ネットワークなので他の通信の影響を受けてしまい、ZKFCとZookeeperの通信が20s途絶えてタイムアウトしてしまい、Namenodeのフェイルオーバが発生した。
ただこれはHAとしては正常に機能した事例となる。
部分的なNWトラフィックの高騰により、
Namenodeがフェイルオーバした。
33
結局HAどうなの??
株式会社サイバーエージェント
Cloudera嶋内さんの資料にもある通り、HAなしでもNamenode自体の障害発生率は低いようです。
ただ、検証した結果や計画メンテ(これ大きい)できる点含めると、導入メリットは大きいです。というか今後はマストと思ってます。
既存システムについても、随時バージョンアップのタイミングでHA構成へ移行しています。
34 株式会社サイバーエージェント
ご清聴ありがとうございました!