Troubleshooting Using Cloudera Manager #cwt2015

86
Troubleshooting using Cloudera Manager テクニカルサポートの現場から Daisuke Kobayashi | Customer Operations Engineer

Transcript of Troubleshooting Using Cloudera Manager #cwt2015

Page 1: Troubleshooting Using Cloudera Manager #cwt2015

Troubleshootingusing Cloudera Managerテクニカルサポートの現場から

Daisuke Kobayashi | Customer Operations Engineer

Page 2: Troubleshooting Using Cloudera Manager #cwt2015

2 © Cloudera, Inc. All rights reserved.

⾃⼰紹介•  ⼩林⼤輔 (@d1ce_)•  Cloudera⼊社四年⽬•  カスタマーオペレーションズエンジニア == テクニカルサポート•  本番環境でHadoopクラスタを運⽤するお客様のトラブルシューティングのお

⼿伝い•  コンポーネントはいろいろ

•  HDFS/HBase•  Security•  Cloudera Manager•  etc

Page 3: Troubleshooting Using Cloudera Manager #cwt2015

3 © Cloudera, Inc. All rights reserved.

アジェンダ•  Hadoopサポートの歴史•  トラブルシューティングを⽀えるCloudera Managerの紹介•  実例から学ぶトラブルシューティングのフロー•  Cloudera Manager Tips

Page 4: Troubleshooting Using Cloudera Manager #cwt2015

4 © Cloudera, Inc. All rights reserved.

アジェンダ•  Hadoopサポートの歴史•  トラブルシューティングを⽀えるCloudera Managerの紹介•  実例から学ぶトラブルシューティングのフロー•  Cloudera Manager Tips

Page 5: Troubleshooting Using Cloudera Manager #cwt2015

5 © Cloudera, Inc. All rights reserved.

アジェンダ•  Hadoopサポートの歴史•  トラブルシューティングを⽀えるCloudera Managerの紹介•  実例から学ぶトラブルシューティングのフロー•  Cloudera Manager Tips

Page 6: Troubleshooting Using Cloudera Manager #cwt2015

6 © Cloudera, Inc. All rights reserved.

アジェンダ•  Hadoopサポートの歴史•  トラブルシューティングを⽀えるCloudera Managerの紹介•  実例から学ぶトラブルシューティングのフロー•  Cloudera Manager Tips

Page 7: Troubleshooting Using Cloudera Manager #cwt2015

7 © Cloudera, Inc. All rights reserved.

アジェンダ•  Hadoopサポートの歴史•  トラブルシューティングを⽀えるCloudera Managerの紹介•  実例から学ぶトラブルシューティングのフロー•  Cloudera Manager Tips

Page 8: Troubleshooting Using Cloudera Manager #cwt2015

8 ©Cloudera, Inc. All rights reserved.

Hadoopサポートの歴史 at Clouderav0.0 >> v0.5 >> v1.0 >> v2.0!

Page 9: Troubleshooting Using Cloudera Manager #cwt2015

9 © Cloudera, Inc. All rights reserved.

Hadoopサポートの歴史 v0.0•  2008~2010年頃•  管理ツールなし•  ログや設定は⼿動取得 / コンソールで直接確認•  未知の問題ばかりで根本原因も不明•  環境依存の問題が多い•  ドキュメント不⾜

Page 10: Troubleshooting Using Cloudera Manager #cwt2015

10 © Cloudera, Inc. All rights reserved.

Hadoopサポートの歴史 v0.5•  2011年頃•  Cloudera Manager が登場•  バージョン3.5•  バグだらけ

•  画⾯共有ツール•  サポートチームの規模•  4~10⼈

Page 11: Troubleshooting Using Cloudera Manager #cwt2015

11 © Cloudera, Inc. All rights reserved.

Hadoopサポートの歴史 v1.0•  2012年頃•  Cloudera Manager 4 の登場•  グラフの⽣成が安定するようになった•  ホストインスペクタによる⾃動診断

•  サポートチームの規模•  ~30⼈

Page 12: Troubleshooting Using Cloudera Manager #cwt2015

12 © Cloudera, Inc. All rights reserved.

Hadoopサポートの歴史 v2.0•  2014年以降•  Cloudera Manager 5 の登場•  多数のフィードバックを反映

•  お客様•  コンサルティングチーム•  サポートチーム•  開発チーム

•  チャート機能の改善•  スタックトレースやヒープダンプの取得•  ホストインスペクタによる豊富な診断•  ドキュメントが充実

Page 13: Troubleshooting Using Cloudera Manager #cwt2015

13 © Cloudera, Inc. All rights reserved.

Hadoopサポートの歴史 v2.0•  サポートチームの規模•  100⼈以上•  世界中のお客様を世界中のチームでカバー

ブダペストミュンヘン

ロンドン

チェンナイ

上海東京

メルボルン

サンパウロ

ローリーニューヨークボストン

オースティン

デンバーフェニックスサンフランシスコ

パロアルト

シアトル

Page 14: Troubleshooting Using Cloudera Manager #cwt2015

14 ©Cloudera, Inc. All rights reserved.

Cloudera Managerお客様のトラブルシューティングを⽀える強⼒な道具

Page 15: Troubleshooting Using Cloudera Manager #cwt2015

15 © Cloudera, Inc. All rights reserved.

Cloudera Manager is ...•  Hadoopクラスタを構築(インストール)運⽤するためのGUIツール•  設定の⼀括管理、クラスタの診断、チャートなど豊富な機能•  クラスタ管理者の運⽤負荷を軽減するためのツール

Page 16: Troubleshooting Using Cloudera Manager #cwt2015

16 © Cloudera, Inc. All rights reserved.

Cloudera Manager is ...•  CLIツールではない•  起動停⽌、アップグレードはすべてGUIからの操作 (REST APIはある)•  内部で実⾏されているコマンドは確認可能

•  クエリ実⾏やワークフロー管理ツールではない•  スレッドダンプやヒープダンプを解析してくれるツールではない•  取得はGUIから可能

Page 17: Troubleshooting Using Cloudera Manager #cwt2015

17 ©Cloudera, Inc. All rights reserved.

Hadoopクラスタのトラブルシューティング戦略は全体から細部へ...

Page 18: Troubleshooting Using Cloudera Manager #cwt2015

18 © Cloudera, Inc. All rights reserved.

全体から細部へ

Page 19: Troubleshooting Using Cloudera Manager #cwt2015

19 © Cloudera, Inc. All rights reserved.

全体から細部へ

Page 20: Troubleshooting Using Cloudera Manager #cwt2015

20 © Cloudera, Inc. All rights reserved.

全体から細部へ

Page 21: Troubleshooting Using Cloudera Manager #cwt2015

21 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート•  シナリオ•  HDFSのヘルスチェックで深刻(Critical)なアラートメールを受信

•  ヘルスチェックのメッセージから原因を辿るフローを説明します

Page 22: Troubleshooting Using Cloudera Manager #cwt2015

22 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 23: Troubleshooting Using Cloudera Manager #cwt2015

23 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 24: Troubleshooting Using Cloudera Manager #cwt2015

24 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 25: Troubleshooting Using Cloudera Manager #cwt2015

25 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

•  チェックポイントが14時間も⾛っていない

•  デフォルトは1時間

Page 26: Troubleshooting Using Cloudera Manager #cwt2015

26 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 27: Troubleshooting Using Cloudera Manager #cwt2015

27 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 28: Troubleshooting Using Cloudera Manager #cwt2015

28 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 29: Troubleshooting Using Cloudera Manager #cwt2015

29 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

スタンバイネームノードのプロセスが

停⽌していた

Page 30: Troubleshooting Using Cloudera Manager #cwt2015

30 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 31: Troubleshooting Using Cloudera Manager #cwt2015

31 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 32: Troubleshooting Using Cloudera Manager #cwt2015

32 © Cloudera, Inc. All rights reserved.

1. HDFSのヘルスアラート

Page 33: Troubleshooting Using Cloudera Manager #cwt2015

33 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング•  シナリオ•  Cloudera Managerをチェックしたら、HBaseのヘルスチェックが⾚くなって

いた•  Long GCによる停⽌であることを特定するまでのフロー

Page 34: Troubleshooting Using Cloudera Manager #cwt2015

34 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 35: Troubleshooting Using Cloudera Manager #cwt2015

35 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 36: Troubleshooting Using Cloudera Manager #cwt2015

36 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 37: Troubleshooting Using Cloudera Manager #cwt2015

37 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 38: Troubleshooting Using Cloudera Manager #cwt2015

38 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 39: Troubleshooting Using Cloudera Manager #cwt2015

39 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 40: Troubleshooting Using Cloudera Manager #cwt2015

40 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 41: Troubleshooting Using Cloudera Manager #cwt2015

41 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 42: Troubleshooting Using Cloudera Manager #cwt2015

42 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 43: Troubleshooting Using Cloudera Manager #cwt2015

43 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 44: Troubleshooting Using Cloudera Manager #cwt2015

44 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

リージョンサーバプロセス停⽌時のログ(最後の数⾏)

停⽌時刻は 午後4時38分頃

Page 45: Troubleshooting Using Cloudera Manager #cwt2015

45 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 46: Troubleshooting Using Cloudera Manager #cwt2015

46 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Stderrはプロセス起動までに読み込んだ環境変数や実際に実⾏されたコマンドが出⼒さ

れる

Page 47: Troubleshooting Using Cloudera Manager #cwt2015

47 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

リージョンサーバ起動コマンド

Page 48: Troubleshooting Using Cloudera Manager #cwt2015

48 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

プロセスが停⽌されていることはわかるが

原因は不明

Page 49: Troubleshooting Using Cloudera Manager #cwt2015

49 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

標準出⼒

Page 50: Troubleshooting Using Cloudera Manager #cwt2015

50 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

•  原因を特定するため、リージョンサーバのログを遡る必要がある•  停⽌時にFATALレベルのメッセージが出ることが多い

Page 51: Troubleshooting Using Cloudera Manager #cwt2015

51 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 52: Troubleshooting Using Cloudera Manager #cwt2015

52 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 53: Troubleshooting Using Cloudera Manager #cwt2015

53 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 54: Troubleshooting Using Cloudera Manager #cwt2015

54 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 55: Troubleshooting Using Cloudera Manager #cwt2015

55 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 56: Troubleshooting Using Cloudera Manager #cwt2015

56 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティングFATALレベルのログのみ抽出

停⽌の2分前に初めて出たもの

Page 57: Troubleshooting Using Cloudera Manager #cwt2015

57 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

付近のログを表⽰する

Page 58: Troubleshooting Using Cloudera Manager #cwt2015

58 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

Page 59: Troubleshooting Using Cloudera Manager #cwt2015

59 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング

•  停⽌直前に400秒ものLong GCが発⽣していた可能性

Page 60: Troubleshooting Using Cloudera Manager #cwt2015

60 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング•  Cloudera Manager で特定できるのはここまで•  ログを解析し、原因究明をするのはサポートの仕事•  ログはローカルにダウンロードできる

Page 61: Troubleshooting Using Cloudera Manager #cwt2015

61 © Cloudera, Inc. All rights reserved.

2. HBaseのトラブルシューティング•  典型的な例•  フラグメンテーション解消のためのFull GC

•  GCログには promotion failure というメッセージが出⼒•  ホットスポットの発⽣や過剰なSCAN処理が影響しているケースが多い•  参考: HBaseサポート最前線 http://www.slideshare.net/Cloudera_jp/hbase-hbaseca

Page 62: Troubleshooting Using Cloudera Manager #cwt2015

62 © Cloudera, Inc. All rights reserved.

もっと複雑なケース...すべてのケースで根本原因まできれいにたどり着けるわけではない

Page 63: Troubleshooting Using Cloudera Manager #cwt2015

63 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定•  シナリオ•  ジョブのパフォーマンスが著しく悪い•  100近くのジョブが10時間以上RUNNINGのまま停滞•  400以上のジョブがSCHEDULEDのまま実⾏されない•  2-3⽇継続して発⽣している

•  Cloudera Managerのチャート機能で切り分けを⾏った例を紹介

Page 64: Troubleshooting Using Cloudera Manager #cwt2015

64 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定•  チャートとは•  メトリクスの経時変化をグラフ化して表⽰•  任意のタイムスケールを設定することで

チャートの範囲を前後に移動および拡⼤縮⼩して負荷状況などの確認が可能

•  独⾃⾔語 (tsquery:time series query)を⽤いてカスタムチャートを作成可能

Page 65: Troubleshooting Using Cloudera Manager #cwt2015

65 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定1.  ログの精査•  ResourceManager / NodeManager のログにはエラーが未出⼒•  ContainerログからHDFS I/O待ちであることを確認

2.  コマンドラインから確認•  1GB の dfs -put が3分経っても完了しない

•  複製数を1に指定すると成功•  複製数がデフォルトの3だと極端に遅い

•  最近追加したデータノードが別ラックに存在•  rack awarenessが未設定

>> 原因はHDFSレイヤ以下にある

Page 66: Troubleshooting Using Cloudera Manager #cwt2015

66 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定1.  ログの精査•  データノードのログにはエラーなし•  JVMの負荷による影響もなし

•  負荷発⽣時の例JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 1657ms ....

2.  設定の精査•  ネームノード/データノードのスレッド数は⼗分•  推奨値から⼤幅に逸脱していない

>> データノードのメトリクスを確認

Page 67: Troubleshooting Using Cloudera Manager #cwt2015

67 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

画⾯ショットは取得までのイメージ (お客様環境のものではありません)

Page 68: Troubleshooting Using Cloudera Manager #cwt2015

68 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

画⾯ショットは取得までのイメージ (お客様環境のものではありません)

Page 69: Troubleshooting Using Cloudera Manager #cwt2015

69 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

画⾯ショットは取得までのイメージ (お客様環境のものではありません)

Page 70: Troubleshooting Using Cloudera Manager #cwt2015

70 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

DataNodes間のパケットラウンドトリップタイム (RTT) を確認

画⾯ショットは取得までのイメージ (お客様環境のものではありません)

Page 71: Troubleshooting Using Cloudera Manager #cwt2015

71 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

Page 72: Troubleshooting Using Cloudera Manager #cwt2015

72 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

ジョブの遅延が⾒られた頃からDN全体でRTT平均時間の上昇を確認

Page 73: Troubleshooting Using Cloudera Manager #cwt2015

73 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

カスタムチャートを作成

画⾯ショットは取得までのイメージ (お客様環境のものではありません)

Page 74: Troubleshooting Using Cloudera Manager #cwt2015

74 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

候補を補完

画⾯ショットは取得までのイメージ (お客様環境のものではありません)

Page 75: Troubleshooting Using Cloudera Manager #cwt2015

75 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定

すべてのデータノードでRTTが極端に悪化していることを確認

Page 76: Troubleshooting Using Cloudera Manager #cwt2015

76 © Cloudera, Inc. All rights reserved.

3. ジョブのパフォーマンスボトルネックの特定•  原因•  ネットワーク側に問題がありブロック転送に⼤幅な遅延が発⽣•  タスクが完了するまでに時間がかかり、ジョブ⾃体の停滞を招いていた

Page 77: Troubleshooting Using Cloudera Manager #cwt2015

77 ©Cloudera, Inc. All rights reserved.

Cloudera Manager Tips運⽤上知っておくべきこと

Page 78: Troubleshooting Using Cloudera Manager #cwt2015

78 © Cloudera, Inc. All rights reserved.

1. サービスとロールの区別•  サービス•  HDFS, YARN, HBase, ...•  Apacheプロジェクト名とほぼ⼀致

•  ロール•  NameNode, DataNode, NodeManager, ...•  サービスを構成するプロセス

•  表⽰されるメニューが違うので注意

Page 79: Troubleshooting Using Cloudera Manager #cwt2015

79 © Cloudera, Inc. All rights reserved.

1. サービスとロールの区別サービスメニュー (HDFS)

Page 80: Troubleshooting Using Cloudera Manager #cwt2015

80 © Cloudera, Inc. All rights reserved.

1. サービスとロールの区別ロールメニュー (NameNode)

Page 81: Troubleshooting Using Cloudera Manager #cwt2015

81 © Cloudera, Inc. All rights reserved.

2. サーバ設定とクライアント設定•  サーバ設定•  NameNode や DataNode などのロールが起動時に読み込む設定•  起動後に動的に変更することはできない (再起動が必要)•  /var/run/cloudera-scm-agent/process 以下に配布される

•  クライアント設定•  hdfs dfs や hbase shell、beeline などユーザが実⾏するコマンド起動時に

読み込む設定•  基本的には /etc/XXX/conf 以下に配布される

Page 82: Troubleshooting Using Cloudera Manager #cwt2015

82 © Cloudera, Inc. All rights reserved.

3. Auto Configuration•  Cloudera Manager はクラスタの構成に応じて⾃動的に設定を調整•  ヒープサイズやスレッド数など

•  詳しいロジックは下記ドキュメントを参照

http://www.cloudera.com/content/www/en-us/documentation/enterprise/latest/topics/cm_mc_autoconfig.html

Page 83: Troubleshooting Using Cloudera Manager #cwt2015

83 © Cloudera, Inc. All rights reserved.

まとめ•  トラブルシューティングの戦略は全体から細部へ•  Cloudera Manager はトラブルシューティングの強⼒なツール•  が⾒つかっても焦らずにドリルダウンして対応しましょう

Page 84: Troubleshooting Using Cloudera Manager #cwt2015

84 © Cloudera, Inc. All rights reserved.

最後に•  Clouderaでは毎⽉Cloudera Manager勉強会を開催しています興味のある⽅は [email protected] までご連絡ください•  もっと基本的な使い⽅から知りたい⽅•  もっと幅広く機能を知りたい⽅

•  Cloudera Managerのダウンロードはこちらから (無料)http://www.cloudera.com/content/www/en-us/downloads.html

Page 85: Troubleshooting Using Cloudera Manager #cwt2015

85 © Cloudera, Inc. All rights reserved.

エンタープライズセールス⼤規模システムに関わる営業ができる⼈歓迎

セールスエンジニア技術の価値を伝えることに興味がある⼈歓迎

We are hiring!

[email protected]

Page 86: Troubleshooting Using Cloudera Manager #cwt2015

86 © Cloudera, Inc. All rights reserved.

Thank you