##HBase徹底入門刊行記念セミナー開催概要
- 開催日:2015年2月2日(月)
- 開場:18:30
- 時間:19:00から21:00
- 場所:サイバーエージェント東京オフィス セミナールーム(渋谷マークシティ13階)
- 定員:100名
- 参加費:無料
- 主催:Cloudera株式会社
- 協賛:株式会社サイバーエージェント、株式会社翔泳社
##19:00 ご挨拶
##19:05 HBase徹底入門 著者 株式会社サイバーエージェント 鈴木俊裕様、梅田永介様、柿島大貴様 ###本の紹介とHBaseの概要
- 鈴木俊裕さん自己紹介。Ameba。Hadoopでのログ解析やHBaseで基盤システムの担当。
- 書籍の紹介。この本の売りは「この本を読めばHBaseを知らないエンジニアでもアプリケーション開発やクラスタ構築がひと通り出来るようになる」
- HBaseの構成説明。書き込みが早い。(読み込みは遅いけど頑張っている?)
- HDFSはデフォルトで3つのレプリカ。HBaseの信頼性はHDFSに依存している。
- 企業での使用例。LINE、Facebook。AmebaではグラフDBとしてつかってる。Hornet。
- HBaseのAPI。CRUD。Read-Modify-Writeも出来る。CAS(CheckAndPut, CheckAndDelete)もできる。
- ストレージフォーマット。値がNULLならKeyValueが保存されない。Versionはtimestampが違うKeyValueになる。
- データの分割。Region単位。大きくなりすぎると分割される。
- データファイル。ColumnFamily毎にデータファイルが別れる。列指向。それ毎に圧縮、エンコーディング、ブルームフィルタリング出来る。
- スキーマ設計。物理設計がRDBの場合と大きく異なる。
- スキーマ設計のポイント。ソートさせた状態での取得はRowKeyとColumn。RowKeyのプレフィックスが同じデータは近いのでスキャンが効率的。
- 非正規化。セカンダリインデックスやJoinがないので非正規化をする。複数PUTする、Joinされた状態でデータを格納。整合性確保が難しい、容量が大きくなる。トレードオフ。
- テクニックはChapter6参照!
- アプリケーション例一部説明。メッセージングサービス。シナリオからクエリを考える。RowKeyに最新順で欲しい場合はリバースドタイムスタンプを使う、ホットスポット対策でHash値を頭に付ける。等々。(Oxab-1-200-msgId2。msgIdって文字列をkeyに入れる必要あった?)
- まとめ。
###クラスタ構築について
- 柿島大貴さん自己紹介。2011年新卒インフラエンジニアで秋葉原ラボ。エンジニアブログの運営。Chapter8-12を担当。
- 質問。完全分散モードでの運用経験ある人は?会場の1/3
- HBaseクラスタ構築は難しい?HDFSが事前に動いている全体が辛いという意見がある。プロセスが多い。弊社だと多いものだと50台とか。
- 本書は汎用的な構成管理についてはClouderaManagerに説明を絞った。一運用者の視点から採用た。
- デモ。Ansibleでユーザー作成とか。ClouderaManagerのインストール。HBaseの導入。ライセンスの選択。NameNodeの冗長化もGUIで。
- まとめ。ClouderaManagerで挫折なし入門!
###パフォーマンス・チューニング
- 梅田永介さん自己紹介。グラフDBを開発運用。
- MemStoreについて。メモリ上のMemStoreからFlushでHFileに書き出しされる。一定データ量、一定期間、一定更新回数でバックグラウンド実行。
- Flush中はMemStoreが大きくなり続けるのでOOM発生のおそれが。書き込みブロックされる設定も。multiplier。低すぎると性能が出ない。
- サイズ総量による強制Flush。MemStoreのサイズ総量が設定を下回るまでFlushし続ける。ブロックすることも出来る。
###質問
- 執筆期間は?半年くらい。
- 柿島さんHBase一言も出なかったのでは?本にはClouderManager以外も書いてます。
- 梅田さん。本にはBlockCacheについても書いてあります。
##19:50 HBaseサポート最前線 Cloudera株式会社 小林大輔
- カスタマーオペレーションズエンジニア。日本国内のお客様を把握している。海外の仕事もお手伝い。担当製品は細かく分かれていない。
- CDH5.2.1ベース。ClouderaサポートとHBaseの関係。HBaseサポートは5年目。総サポートノード数は20000。HBaseの使用率は60%(国内でも金融、製造業、ゲーム豪快のお客様をサポート)
- Cloudera社の社内サポートシステムもHBaseで構築。CSI(CustomerSupportInterface)。ライセンスをCDHに入力したお客様のクラスタイベントを収集して全体像を把握。過去事例の全文検索システム。Solorサーチ。スタックトレース検索システム。
- クラスタ構築時の注意点。
- THP(Transparent Huge Page)は無効にするのを推奨パフォーマンス劣化を招く。
- リージョン数の見積もり、モニタリングは慎重に。リージョンサーバー辺りのリージョン数は多くても100以下。MTTRの増加パフォーマンス劣化に繋がる。
- どうリージョン数を見積もるか。Memstoreサイズと書き込み量から見積もる。heap size 10GB。flush size 128MB。Memstore sizeが0.4→4GB。つまり4/0.128->32。
- 全データ量とリージョンサーバー数から見積もる。全data*1024/ region size / region server数=サーバー辺りのregion数
- リージョンスプリットポリシー。
- ConstantSizeRegionSplitPolocy。一定サイズに達したリージョンを分割。CDH4.1, 0.92までのデフォルト。
- IncreasingToUppserBoundRegionSplitPolicy。CDH4.2, 0.94以降のデフォ。運用し始めはRegion Sizeを小さく分割。再起動時にRegin数が増加する場合あり。現状修正されていなくて一時系にPolicyを変更するのが良いかと。
- よくある問題
- リージョン不整合。突然のShutdownとかオペミスとか。メタ情報の食い違いが発生。
- 高負荷時のGC。書き込み多いときのGCチューニングは必要。
- ホットスポット
- 不整合のトラブルシューティング。hbckユーティリティ。「何かあったら実行してください」。
- Region Consistencyの検査。MEA、regioninfoで全てのリージョンアサイン状況が合致するか。hbck -fixAssignments -fixMeta。比較的修復は容易。
- Integrityの検査。キーの重複とか順序の後退とか。hbase hbck -repairHoles。比較的修復は容易。
- ※hbckは動作を把握しない状況で使用するのは危険。
- GC
- sleptがキーワード。大体GC。オプション追加で詳細なログを出力。
- よくあるシナリオ。promotion failed。concurrent mode failure。
- まとめ。祝出版。
##20:20 HBase活用事例 Cloudera株式会社 嶋内 翔
- サポートからSalesへ移った。HBaseはSKVS(SuperKeyValueStore)!!!!!!
- データはエンティティかイベントのどちらか。
- 事例1医療系ITソリューション企業。
- 医療データの蓄積と活用。動機はディシジョンのための情報改善、医療に関するリコメンド。課題は断片化。
- データ収集システム->Kafka->Storm->HBase,HDFS
- データ処理にはStormとMapReduceを併用。インクリメンタル処理は複雑でエラーも多い。後追いでMapReduce(信頼性高めるためにみんなやってるって話)。HBaseのデータを元にSolrのシャードを作成。
- 行キーに人。列に属性情報。
- まとめ。Clouderaトレーンングしてます。認定試験も。ディスカウントコードでHBaseトレーニングを10%オフ!4日間。先着10名で書籍無料!
##20:45 書籍販売と著者の皆様のサイン会
##21:00 閉会