namenodeha導入背景と運用状況

34
NamenodeHA導入背景と運用状況 株式会社サイバーエージェント アメーバ事業部 インフラシステムグループ 上原

Upload: makoto-uehara

Post on 25-Jun-2015

1.747 views

Category:

Documents


4 download

DESCRIPTION

Clouderaセミナーで発表する資料です

TRANSCRIPT

Page 1: NamenodeHA導入背景と運用状況

NamenodeHA導入背景と運用状況

株式会社サイバーエージェント アメーバ事業部 インフラシステムグループ 上原 誠

Page 2: NamenodeHA導入背景と運用状況

2 株式会社サイバーエージェント

自己紹介

・ ~2012年2月 某SIerでインフラ周りに従事 ・ 2012年3月 サイバーエージェント入社

- Amebaスマフォプラットフォームの構築

- 統合ログ解析基盤やオンラインデータベースの

インフラミドルウェア部分を担当

- Hadoop、HBase、Flume

・ 上原 誠 (@pioho07)

【名前】

【経歴】 Facebook申請歓迎 xxxxxxxx

Page 3: NamenodeHA導入背景と運用状況

3 株式会社サイバーエージェント

Page 4: NamenodeHA導入背景と運用状況

4 株式会社サイバーエージェント

Page 5: NamenodeHA導入背景と運用状況

5 株式会社サイバーエージェント 株式会社サイバーエージェント スマートフォンサービス

Page 6: NamenodeHA導入背景と運用状況

6 株式会社サイバーエージェント 株式会社サイバーエージェント

・ NamenodeHA運用状況 について

本日の内容

・ NamenodeHA導入背景 について

Page 7: NamenodeHA導入背景と運用状況

7 株式会社サイバーエージェント 株式会社サイバーエージェント 株式会社サイバーエージェント

・ NamenodeHA運用状況 について

・ NamenodeHA導入背景 について

Page 8: NamenodeHA導入背景と運用状況

8

AmebaではHadoopを

どう使ってきたか

Page 9: NamenodeHA導入背景と運用状況

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キッカケ

Page 10: NamenodeHA導入背景と運用状況

10

NamenodeHAの必要性

Page 11: 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に障害があっても起動し直せば

まぁいっかと割り切っていた。サービス的にも影響少なかった

Page 12: NamenodeHA導入背景と運用状況

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

この時期からはオンライン用途になり、

落ちたらダメよと言われた

Page 13: NamenodeHA導入背景と運用状況

13 株式会社サイバーエージェント

長い間、NamenodeはSPOF(SinglePointOfFailure)だった。

※図はHadoopのよくある構成

Slave01

DataNode

HReagionServer

TaskTracker

Master01 Master03 Master02

Secondary Namenode

Zookeeper

HMaster

JobTracker

HMaster

マスター達 スレーブ達

Hadoopシステム

Zookeeper Zookeeper

NameNode

こいつ

Page 14: NamenodeHA導入背景と運用状況

14 株式会社サイバーエージェント

HDFS

NameNodeに障害があるとどうなるの・・??

Hadoopシステム

OS

物理

Other

MapReduce HBase Zookeeper Other

ミドルウェア

NameNode

Page 15: NamenodeHA導入背景と運用状況

15 株式会社サイバーエージェント

HDFS

みんな死ぬ(((゚Д゚)))ガクブル ※(エコシステム達が)

HDFSが機能しなくなり、その上に乗っている各エコシステムのMapReduceとかHBaseとか機能しなくなる

Hadoopシステム

OS

物理

Other

MapReduce HBase Zookeeper Other

ミドルウェア

NameNode

Page 16: NamenodeHA導入背景と運用状況

16

どうにかしなくては

NamenodeのHA機能があれば・・(HAなかった時)

Page 17: NamenodeHA導入背景と運用状況

17

冗長性の検討しました

・OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する。

・ハードウェアFT(Fault Tolerance)サーバを使う

Page 18: NamenodeHA導入背景と運用状況

18

冗長性の検討しました。

・OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する。

・StratusのハードウェアFT(FaultTrerance)サーバを使う

Page 19: NamenodeHA導入背景と運用状況

19

OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する

メリット

-これが一般的に多い事例だった。

-OSS自体は実績十分

デメリット

-複雑になりがちで、よほどちゃんと設計試験をしないといざという時にスプリットブレインで死ねる。。

-入社当時一人で全部やらなければいけない上にリリース時間も限られていたので断念。。

Page 20: NamenodeHA導入背景と運用状況

20

冗長性の検討しました。

・OSS(Heartbeat,Pacemaker,ORDBやkemari)を駆使する。

・ハードウェアFT(FaultTrerance)サーバを使う

Page 21: NamenodeHA導入背景と運用状況

21

FTサーバを使う

メリット

-ハードウェアのレベルでの冗長性なので安心。

-メモリ情報もロストしない。当初メタデータが数十ギガの想定だったので起動しなおしだとメモリに乗せるだけで時間かかる

デメリット

-高い

-メンテが打てない

-高い(2回目)

Page 22: NamenodeHA導入背景と運用状況

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と思ってる

Page 23: NamenodeHA導入背景と運用状況

23

NamenodeHA出た!ので検証・導入しました

仕組みや考え方は一般的なクラスタソフトと同様

設定パラメータはそんなに多くない

スプリットブレイン試験は入念に

Page 24: NamenodeHA導入背景と運用状況

24

検証結果は?

Page 25: NamenodeHA導入背景と運用状況

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>

Page 26: NamenodeHA導入背景と運用状況

26 株式会社サイバーエージェント

運用オペレーション

・フェイルオーバ

hdfs haadmin -failover <serviceID>

・状態確認

hdfs haadmin -getServiceState <serviceId>

activeとかstandbyとか返ってくるだけ

シンプル

Page 27: NamenodeHA導入背景と運用状況

27

構成どうなったの?

Page 28: NamenodeHA導入背景と運用状況

28 株式会社サイバーエージェント

HA導入前

Slave01

DataNode

HReagionServer

TaskTracker

Master01 Master03 Master02

Secondary Namenode

ZookeeperK

HMaster

JobTracker

HMaster

マスター達 スレーブ達

Hadoopシステム

ZookeeperK ZookeeperK

NameNode

Page 29: NamenodeHA導入背景と運用状況

29 株式会社サイバーエージェント

HA導入後

Slave01

DataNode

HReagionServer

TaskTracker

Master01 Master03 Master02

Standby Namenode

Zookeeper

HMaster

JobTracker

HMaster

マスター達 スレーブ達

Hadoopシステム

Zookeeper Zookeeper

NameNode

JournalNode JournalNode JournalNode

ZKFC ZKFC

Page 30: NamenodeHA導入背景と運用状況

30 株式会社サイバーエージェント 株式会社サイバーエージェント 株式会社サイバーエージェント

・ NamenodeHA運用状況 について

・ NamenodeHA導入背景 について

Page 31: NamenodeHA導入背景と運用状況

31

運用しててどうか?

特にHA構成にしたことによるトラブルは発生していない

JournalNode,ZKFC固有の問題も今のところない

Page 32: NamenodeHA導入背景と運用状況

32

障害は起きたか?

・Namenode自体の通信量が多くなることはないが、ネットワークなので他の通信の影響を受けてしまい、ZKFCとZookeeperの通信が20s途絶えてタイムアウトしてしまい、Namenodeのフェイルオーバが発生した。

ただこれはHAとしては正常に機能した事例となる。

部分的なNWトラフィックの高騰により、

Namenodeがフェイルオーバした。

Page 33: NamenodeHA導入背景と運用状況

33

結局HAどうなの??

株式会社サイバーエージェント

Cloudera嶋内さんの資料にもある通り、HAなしでもNamenode自体の障害発生率は低いようです。

ただ、検証した結果や計画メンテ(これ大きい)できる点含めると、導入メリットは大きいです。というか今後はマストと思ってます。

既存システムについても、随時バージョンアップのタイミングでHA構成へ移行しています。

Page 34: NamenodeHA導入背景と運用状況

34 株式会社サイバーエージェント

ご清聴ありがとうございました!