Skip to content

Instantly share code, notes, and snippets.

@AKB428
Created January 26, 2015 06:50
Show Gist options
  • Save AKB428/3eb67147edc039d03cc3 to your computer and use it in GitHub Desktop.
Save AKB428/3eb67147edc039d03cc3 to your computer and use it in GitHub Desktop.
NTTD 安定運用の勘所
NTTD 安定運用の勘所
サポート担当から見たトラブル発生の要因
・設計・サイジングミス、操作ミス、バグ
Hadoopでは用途が変化することで事前の想定を超えることが多い
事例1:データ量増加のみに着目していたHadoopクラスタ
->M/R処理時間が想定以上に伸び始めた
原因:適切でないデータ蓄積
Hadoop 小さいサイズにはふむき
ブロックサイズに達しない小さいファイルを蓄積し続ける
適切で無いデータを処理するときの影響
HadoopのMR処理はHDFSのブロック単位で処理を実行するためブロック数が増えるとMapタスクが増加
Mapタスク管理のオーバーヘッドも増加
---
対策:定期的な蓄積データのクリーニング
小さなデータをマージして大きくまとめて格納
他の影響:
HDFSのメタ情報:各ノードのメモリ上で管理する情報の考慮が必要
アプリケーションの最適化のポイント:
必要以上にオブジェクトを生成しない、メモリ上でデータを保持しない
必要以上にループ実行しない
処理が適切に実行されているか判断するために、カウンターのりようやMRジョブ実行履歴をチェックしましょう。
ー>処理時間が適切かどうかを判断していく
まとめ:
・時間経過とともに初期方針との乖離は多い。その歪みは顕著になる
◯定期的にチェックする仕組みを整えましょう
■事例2
利用者の増加によって起きるトラブル
Hive/Pigなどの利用が増大、分析担当、分析内容の増大
▶処理ノード TaskTrackerがじょじょに沈黙、処理が実行されなくあなる。
◯原因
すべてのTTはメモリ溢れOOEで停止
Hadoopでメモリ溢れが起こすケース
・NameNode DataNode JobTravker 管理情報の肥大化
・アプリケーションの作りがいけてないケース
追加されたMRアプリケーションの作りが原因
◯なぜダウンしたのか?
・アプリケーションで利用する設定もアプリケーション各自で定義
・1つのアプリケーションの設定ミスで全体のアプリケーションが落ちた
◯対策 アプリケーション利用のルールを決める
◯まとめ
・利用者が増えることでHaoopの知識がない人がアプリケーションを書くケースも増える
・爆弾アプリケーションが大きなトラブルを引き起こします
▶アプリケーションを作るときのルールを決める
・むやみにタスクにヒープメモリを割り当てない
・むやみにタスク数を増やさない
■運用開始後に発覚したバグ
Hadoopは利用者が多いのでよく使われるものはバグはつぶされてきた。
事例3まとめ
バグに遭遇することを踏まえて情報取得を徹底しましょう
・各ノードのログ
・各サーバーのリソース利用状況
長期間の動作がバグを引き起こすこともあります
情報自体も長期間保存するように運用しましょう
バグに直面することを踏まえた運用を計画しましょう
・パッチの適用
・バージョンアップ
----
NTTD Hadoopサポートの取り組み
Hadoopクラスタ利用分析
HadoopではHadoopの活用度合いを継続的にチェックできる仕組みが得に重量です
Hadooopで扱うアプリケーションについても利用状況・設計内容のチェックするとりくみをすすめています。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment