• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
 

Zabbix jp勉強会 Hadoop-HBaseの監視_20120512

on

  • 9,157 views

Zabbix jp勉強会

Zabbix jp勉強会
Zabbixを使ったHadoop-HBaseの監視資料

Statistics

Views

Total Views
9,157
Views on SlideShare
8,207
Embed Views
950

Actions

Likes
22
Downloads
121
Comments
2

9 Embeds 950

http://blog.matsumoto-r.jp 916
https://twimg0-a.akamaihd.net 11
https://twitter.com 10
http://webcache.googleusercontent.com 7
https://si0.twimg.com 2
http://a0.twimg.com 1
http://paper.li 1
http://rss.ameba.jp 1
http://www.mefeedia.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Zabbix jp勉強会 Hadoop-HBaseの監視_20120512 Zabbix jp勉強会 Hadoop-HBaseの監視_20120512 Presentation Transcript

    • ZabbixによるHadoop/HBaseの監視 Hadoop/HBaseの運用におけるZabbixの活用事例日本ヒューレット・パッカード株式会社テクノロジーコンサルティング統括本部データセンターソリューション第一本部コアテクノロジー部石田精一郎1 © Copyright 2012 Hewlett-Packard Development Company, L.P. 2011
    • 本日のお題• お話ししたい内容• Hadoop/HBase概要• Hadoop/HBaseの監視と運用• Hadoop監視プラグインの中身• Hadoop監視を効率化するZabbixの機能• まとめ• Appendix – インフラエンジニアなら監視しておきたいHadoopメトリクス – HP サービス紹介2 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • お話ししたい内容• HPのZabbix活用事例 – なぜ、ZabbixをHadoop監視のプラットフォームに採用したのか – Zabbixを監視に利用することでのメリット• インフラの観点からのHadoop – MapReduceを使ったアプリケーションの組み方や活用事例の情報に対し、Hadoop運用面で のノウハウはあまり公開されていない? – Hadoop運用の一例としてZabbixを使った監視方法をご紹介 – HBaseのアーキテクチャについては、今回はほとんどお話ししないので、それを知りたい方は OSCでの発表資料をご参照ください。 • 今話題のHadoop HBaseの性能検証結果とZabbixによる性能監視のご紹介 • http://www.ospn.jp/osc2012-spring/modules/xfsection/article.php?articleid=6 ※今回の資料はZabbix 1.8、CDH3u1以降を対象にしています。ご了承ください。3 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoop/HBase概要4 © Copyright 2012 Hewlett-Packard Development Company, L.P. 2011
    • Hadoopシステム構成 クライアント/データソース HadoopName Node/JobTracker クラスタ役割:メタデータの保持、DataNodeの状態管理 MapReduceジョブの管理Map/Reduce :複数のサーバで分散処理することで高性能を実現HDFS( Hadoop Distributed File System)ファイルを分割して複数のサーバに複製して保持することで冗長性を担保 Data Node/TaskTracker データの保持と分散処理を、スケールアウト構成で実現 5 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • HBaseとは「HDFS上に構築された列指向データベース」 冗長化、永続性、データ一貫性、スケールアウト、複雑なデータの操作を実 現したBigData用の高機能KVS(Key Value Store)– 特徴 – データをHadoop 分散ファイルシステム上に保存することで冗長化と永 続性を実現 – ノードを追加することでリニアにスケールアウト – 行単位のロック操作でデータ一貫性を保証 – 複雑なデータを柔軟に操作するために、カラム・ファミリーを採用66 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • HBaseの基本構成例HBaseの基本構成例 • Hadoopの基本構成にHBase 関連のサービスを追加する。 • HBase Masterは2台のAct-Act NN で冗長化。 Zookeeper NN(Stb) • ZookeeperはHBaseクラスタ管 JT, SNN(Stb) SNN, JT(Stb) HBase Master Zookeeper 理を行うサービス。クウォーラ HBase Master Zookeeper ムを確保するため、ノードは3 台以上の奇数で構成。 • HBaseのデータを保存する DN, TT DN, TT DN, TT Regionserver Regionserver Regionserver Regionserverは、Datanodeと 同居させる。 DN, TT DN, TT DN, TT • スレーブノードは最低3台から。 Regionserver Regionserver Regionserver 【略記・凡例】 Namenode: NN Secondary Namenode: SNN Jobtracker: JT Datanode: DN Tasktracker: TT ※赤字がHBase関連サービス77 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoop/HBaseの監視と運用8 © Copyright 2012 Hewlett-Packard Development Company, L.P. 2011
    • Hadoop導入に立ちはだかる運用の課題Hadoopの運用はどうしたらよいのか?• Hadoopを企業が本格導入するにあたっての課題は「運用」 – Hadoopの運用のノウハウの不足 – 大量のサーバが協調動作するシステムをどのように監視するのか – 一般的に見ても、分散処理基盤の運用は難しい JVM メモリ JVM HDD メモリ JVM HDD メモリ HDD9 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoopが持っている管理機能Hadoopは豊富な管理機能を備えたミドルウェア• Hadoopには、管理用のWeb UIが付属 – Web UIにアクセスすることで各サービスの統計情報が取得可能 – Hadoop特有の性能監視、障害監視に必要な情報はWeb UIを通じて外部に提供されている TaskTrackerの状態と MapReduceジョブの 進行状況を表示 HDFSの使用状況と Datanodeの状態を表示 JobTracker Web UI Namenode Web UI10 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoop統計情報(メトリクス)の取得Hadoopの統計情報は外部からJSON形式で取得可能• Hadoopが保持している統計情報は管理ポートから取得可能 – メトリクス情報収集機能を有効化 • /etc/hadoop/conf/hadoop-metrics.propertiesに以下を設定 – org.apache.hadoop.metrics.spi.NoEmitMetricsContext – org.apache.hadoop.metrics.ganglia.GangliaContext31 HBaseの場合は、キャッシュ – 管理ポートにアクセスして、JSON形式で情報を取得 容量、キャッシュヒット率など、 $ curl http://<host>:<port>/metrics?format=json 約160項目のメトリクスが取 得できる ⇒JSON形式でメトリクス情報が返される。 <port> Namenode: 50070 Datanode: 50075 {"hbase":{"info":[],"regionserver":[[{"Regio nServer":"regionserver60020","hostName" Secondary Namenode: 50090 :"hbase01.hadoop.local"},{"blockCacheCo JobTracker: 50030 unt":0,"blockCacheEvictedCount":0,"block TaskTracker: 50060 CacheFree":7793333312,"blockCacheHitC HBase Master: 60010 achingRatio":0… HBase Regionserver: 6003011 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 既存のHadoop監視ソリューションGanglia/Nagiosがデファクトスタンダードだが、課題も多い• Hadoop監視ではGangliaとNagiosの組み合わせがデファクトスタンダード – しかし、実運用を考えた際にいくつかの難点あり• GangliaとNagiosの組み合わせの課題 – Gangliaは、クラスタ全体の傾向を把握することが得意だが、小回りが利きにくい • 監視の粒度 • 画面のカスタマイズ – Nagiosによる監視とGangliaが収集した情報と連動していない • Ganglia/Nagiosの組み合わせでは、監視や情報収集ができない部分が存在する • 監視設定の追加には、それぞれ別に作りこみが必要 – 日本国内のエンタープライズ環境では、Ganglia/Nagiosが使われる局面が少ない • 一般的な情報、サポート体制等に課題 • HadoopだけのためにGanglia/Nagiosを入れる???12 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Zabbix向けHadoopプラグイン開発• Zabbixの選択理由 • 日本国内で人気があり、コミュニティが活発なOSS統合監視ソフト • 性能監視と障害通知が1つのソフトで可能。 • カスタマイズが容易。集めた情報をグルーピングして一覧表示可能• ⇒まず社内検証で使用し、検証時のフィードバックを通じてブラッシュアップ13 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoop監視プラグインの中身14 © Copyright 2012 Hewlett-Packard Development Company, L.P. 2011
    • Hadoop監視プラグイン概要 HPにて開発した ③収集した情報をZabbix HP Hadoop監視プラグイン のキーに変換してZabbix に登録 Hadoop マスター Zabbixサーバ Hadoop Hadoop Hadoop 監視テンプレート スレーブ スレーブ Hadoop Hadoop Hadoop スレーブ ステータスモニタ スレーブ 監視サーバ Hadoopクラスタ①ZabbixサーバがHadoopステータスモニタを実行 ②Hadoopの管理 ポートからメトリクス 情報を収集15 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoop監視プラグイン動作内容詳細Zabbixの一般的な監視項目追加の手法を踏襲して実装• 「外部チェック」(ExternalScript)機能で、情報取得スクリプトを起動 – 設定例) • get_hadoop_metrics.pl[{HOST.DNS} {$TASKTRACKERPORT}] →管理ポートにアクセスして情報取得するスクリプトを登録 – 情報取得スクリプトがHadoopデーモンから情報を取得し、Zabbix Senderで一括登録 • 監視対象のデーモンへのアクセスは1回のみ • 一括登録のため、アイテム数が多くなってもZabbixサーバの負荷が相対的に少ない• 一部のアイテムは、管理ポートではなく“hadoop”コマンド等から取得 – メトリクスのみからでは取得が難しい一部の項目はHadoopの管理コマンドから情報取得16 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoop監視を効率化するZabbixの機能17 © Copyright 2012 Hewlett-Packard Development Company, L.P. 2011
    • Hadoop監視を効率化するZabbixの機能Hadoop監視プラグインで収集した情報を生かすZabbixの機能• 「グラフ」(複数アイテムのグラフ描画)• 「Zabbixアグリゲート」(ホストグループ単位の集計機能)• 「スクリーン」(運用画面作成機能)• 「ディスカバリ」、「自動登録」(自動ホスト追加)• 「トリガー」、「アクション」(障害通知)18 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 「グラフ」(複数アイテムのグラフ描画)関連する監視項目を一つのグラフに ドラッグ&ドロップ グラフは各アイテ で表示範囲を指定 ム単位。表示期間 は固定値から選択 Zabbix 1.8.9 + Hadoop プラグインでの表示例 Ganglia 3.1.7 での表示例 • Zabbixの「グラフ」機能を用いることで関連するメトリクスを一つのグラ フに集約表示 • グラフの中から見たい期間をドラッグ&ドロップで指定できるため、ジョ ブ実行結果や障害時の解析の労力を大幅削減19 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 「Zabbixアグリゲート」(ホストグループ単位の集計機能)スレーブサーバの負荷の概要を把握 平均に加えて最小、最大 を表示することでj負荷の 偏りを把握 Hadoop スレーブサーバの クラスタ中のHBase Regionserverにおける CPU Load 平均のグラフ Region数の平均値、最大値、最小値のグラフ • 「Zabbixアグリゲート」の機能を使うことで任意の単位で平均値、最大値、 最小値を計算し、グラフ化。クラスタ全体の傾向を一目で把握 • 「Zabbixアグリゲート」設定例 • grpavg["Hadoop Slaves","system.cpu.load[,avg1]“ • grpmax["Hadoop Slaves","hbase.regionserver.regions"20 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 「スクリーン」(運用画面作成機能) グラフZabbix上でのHBaseメトリクス表示例 • 作成したグラフは、Zabbixの「スクリーン」機能で一度に表示可能 • 必要な情報だけをまとめて一画面で確認可能 • 「グラフ」同様、過去の任意の期間にさかのぼることもできる21 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 「スクリーン」(運用画面作成機能)クラスタ全体リソース使用状況とイベント通知の統合 グラフ 図をいれるエリア この枠線は削除してください。 できるだけこの外枠からはみ出さないように配置してください。 シンプル テキスト イベント22 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 「スクリーン」(運用画面作成機能)社内試験の際にはMRジョブの状況とサーバ負荷状況を一画面で確認 Hadoop JobTracker Web UIを呼び出して 一画面に統合 スレーブサーバのリ ソース使用量の平均 値を表示 カスタマイズが容易な ので、必要に応じて運 用画面を作成できる23 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 「ディスカバリ」、「自動登録」(自動ホスト追加)ディスカバリ機能、自動登録機能を用いてスレーブサーバを自動登録 • Zabbixでは、「ディスカバリ」(サーバからの探索)と「自動登録」(エージェン トからの通知)という2つの方式で監視対象の自動追加が可能 • これらの設定をしておくことにより、Hadoopスレーブサーバを追加した際の 監視対象自動追加を実現24 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 「トリガー」、「アクション」(障害通知)収集した情報に対し、さまざまな条件を設定して通知を行うことができる• 収集したすべての情報に対して、しきい値を設定(「トリガー」)し、それにひ もづく「アクション」を設定可能 – メール通知 – コマンド実行 など• 追加で監視したい項目があった場合は、GUIから随時追加可能• 「トリガー」には単純なしきい値に加え、計算式も使用可能• メンテナンス時には障害通知の抑制ができる(「メンテナンス」)• 上位の監視サーバへのメッセージ転送も可能25 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • まとめZabbixで監視することで、Hadoopをインフラエンジニアに身近なものに• Zabbixの優れた機能を活用することでHadoop統合監視を実現 – 拡張性の高さを生かしたプラグイン開発 – グラフ、スクリーン等の優れたUIの活用 – ホストの自動登録によるノード追加時の負荷軽減• Hadoopが持っている豊富な管理機能を活用 – 管理に必要な情報は取得可能 – それを有効活用するノウハウの蓄積が重要• Zabbixを使用することで、Hadoopも従来のサーバ群と同様に管理可能に – 同様の手法を用いることで、そのほかのミドルウェア、サービスも監視可能26 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Appendixインフラエンジニアなら監視しておきたいHadoopメトリクス27 © Copyright 2012 Hewlett-Packard Development Company, L.P. 2011
    • 監視しておきたいメトリクスNamenode編• HDFSの容量に関するメトリクス – dfs.FSNamesystem.CapacityRemainingGB – dfs.FSNamesystem.CapacityTotalGB – dfs.FSNamesystem.CapacityUsedGB ※”hadoop dfsadmin –report”コマンドからも取得可能• HDFSのヘルスチェックに関するメトリクス – dfs.FSNamesystem.CorruptBlocks – dfs.FSNamesystem.ExcessBlocks – dfs.FSNamesystem.MissingBlocks ※”hadoop fsck”コマンドからも取得可能28 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 監視しておきたいメトリクスDatanode編• HDFS IOの統計情報取得 • HDFS IOの障害検知 – dfs.datanode.blocks_read – dfs.datanode.volumeFailures – dfs.datanode.blocks_removed – dfs.datanode.block_verification_failures – dfs.datanode.blocks_replicated • HDFS IOにかかった時間の取得 – dfs.datanode.blocks_verified – dfs.datanode.readBlockOp_avg_time – dfs.datanode.blocks_written – dfs.datanode.copyBlockOp_avg_time – dfs.datanode.bytes_read – dfs.datanode.replaceBlockOp_avg_time – dfs.datanode.bytes_written – dfs.datanode.writeBlockOp_avg_time – dfs.datanode.reads_from_local_client – dfs.datanode.reads_from_remote_client – dfs.datanode.writes_from_local_client – dfs.datanode.writes_from_remote_client29 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 監視しておきたいメトリクスJobTracker編①• MapReduce Jobのキャパシティに関するメトリクス – mapred.jobtracker.trackers – mapred.jobtracker.trackers_blacklisted – mapred.jobtracker.trackers_decommissioned – mapred.jobtracker.map_slots – mapred.jobtracker.reduce_slots – mapred.jobtracker.reserved_map_slots – mapred.jobtracker.reserved_reduce_slots – mapred.jobtracker.occupied_map_slots – mapred.jobtracker.occupied_reduce_slots30 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 監視しておきたいメトリクスJobTracker編②• MapReduce Jobの実行状況に関するメトリクス – Job全体 – Reduceタスク • mapred.jobtracker.jobs_submitted • mapred.jobtracker.waiting_reduces • mapred.jobtracker.jobs_preparing • mapred.jobtracker.reduces_launched • mapred.jobtracker.jobs_running • mapred.jobtracker.running_reduces • mapred.jobtracker.jobs_completed • mapred.jobtracker.reduces_completed • mapred.jobtracker.jobs_failed • mapred.jobtracker.reduces_failed • mapred.jobtracker.jobs_killed • mapred.jobtracker.reduces_killed • mapred.jobtracker.blacklisted_reduces – Mapタスク • mapred.jobtracker.waiting_maps • mapred.jobtracker.maps_launched • mapred.jobtracker.running_maps • mapred.jobtracker.maps_completed • mapred.jobtracker.maps_failed • mapred.jobtracker.maps_killed • mapred.jobtracker.blacklisted_maps31 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 監視しておきたいメトリクスTaskTracker編• 各ノードのMapReduce Jobのキャパシティに関するメトリクス – mapred.tasktracker.mapTaskSlots – mapred.tasktracker.reduceTaskSlots• 各ノードMapReduce Jobの実行状況に関するメトリクス – mapred.tasktracker.maps_running – mapred.tasktracker.reduces_running – mapred.tasktracker.tasks_completed – mapred.tasktracker.tasks_failed_ping – mapred.tasktracker.tasks_failed_timeout• TasklTrackerがハンドルしているMapperのShuffle出力 – mapred.shuffleOutput.shuffle_failed_outputs – mapred.shuffleOutput.shuffle_handler_busy_percent – mapred.shuffleOutput.shuffle_output_bytes – mapred.shuffleOutput.shuffle_success_outputs32 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • 監視しておきたいメトリクス全Hadoopサービス共通編• 各JVMのヒープメモリ使用状況に関するメトリクス – jvm.<ProcessName>.metrics.maxMemoryM – jvm.<ProcessName>.metrics.memHeapCommittedM – jvm.<ProcessName>.metrics.memHeapUsedM• 各JVMのGCに関するメトリクス – jvm.<ProcessName>.metrics.gcCount – jvm.<ProcessName>.metrics.gcTimeMillis• Hadoopデーモンが出力したログの行数のメトリクス – jvm.<ProcessName>.metrics.logInfo – jvm.<ProcessName>.metrics.logWarn – jvm.<ProcessName>.metrics.logError – jvm.<ProcessName>.metrics.logFatal33 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • そのほかのHadoopメトリクス関連Tips• HBase固有のメトリクス – HBase固有のメトリクスは、以下のサイトにまとめられています。 • HBase Book, Chapter 13. HBase Operational Management – 13.4. HBase Metrics – http://hbase.apache.org/book/hbase_metrics.html – HBaseは非常に多くのメトリクスがあり、運用やベンチマークに有用な情報が取得できます。• rpc.metricsとrpc.detailed-metrics – rpc.metricsとrpc.detailed-metrics は、全サービスに共通するメトリクス項目です。 – Hadoopのrpc.metricsの詳細は以下に掲載されています。 • https://issues.apache.org/jira/browse/HADOOP-6599 – rpc.detailed-metricsは、該当のメソッド実行時に以下の通りにカウンタが作られます。 • rpc.detailed-metrics.<メソッド名>_num_ops: 該当RPCメソッド実行回数 • rpc.detailed-metrics.<メソッド名>_avg_time: 該当PRCメソッド実行にかかった時間(ms)34 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Hadoop HBase サービス概要 • 大規模分散処理プラットフォーム「Hadoop」をベースとして、ビッグデータ活用に最 適化したITインフラを構築するソリューション • サーバー、データベース、運用ツールとあわせて、導入コンサルティングサービス も提供し、お客様のビッグデータ活用をワンストップで支援 Hadoop HBase コンサルティングサービス •適用領域、既存システムの連携についてのヒアリングを実施 •必要に応じて、導入前検証をHPソリューションセンターで実施 Hadoop HBase導入支援サービス •ヒアリング内容に基づくサーバ構成の検討・設計 •Hadoopに対応した全体アーキテクチャの設計・構築 •性能測定・チューニング Hadoop HBase運用支援サービス •HP CMUおよびZabbix/Gangliaを使ったクラスタ運用基盤の構築 •Hadoopクラスタ運用支援335 © Copyright 2012 Hewlett-Packard Development Company, L.P.5
    • HP ビッグデータ分析コンサルティングサービス 1. ディスカバリーワークショップ •お客様の業務、システム改善を目的に、最新製品およびテクノロジーの紹介 •統計分析によるテキスト/ログなどの事例紹介及びデモの実施 2. 分析支援コンサルティングサービス •お客様の業務やシステムの全体像の把握、PDCAを回す全体設計 •今後の対応策、予算規模、スケジュールなど上申書のもととなる情報を作成 •システムの将来像とロードマップの策定及び、全体の参考価格も算出 3. 分析システム導入支援サービス •策定したシステムの将来像に向けて、システム全体の要件定義、システム設計、 システム構築サービスを提供 •事前検証を実施 4. 分析システム運用支援サービス •システム運用時の支援を実施336 © Copyright 2012 Hewlett-Packard Development Company, L.P.6
    • HP ビッグデータバッチ処理高速化コンサルティングサービス 1. バッチ処理高速化コンサルティングサービス •お客様にもアセスメントに参加して頂き、既存システムの問題点を的確に把握 2. バッチ処理高速化システム導入支援サービス • アーキテクチャ、運用、監視などのシステム設計を実施 • 機能テストや、性能テスト、負荷テスト、耐久テストなどを実施 • 顧客毎のシステム要件にしたがいプログラミングを日本HPで行う 3. バッチ処理高速化システム運用支援サービス • システム運用時の支援を実施 成果物:  既存システム問題解析結果報告書  システム監視手順書  システム設計書  テスト結果報告書  システム運用手順書  システム支援報告書337 © Copyright 2012 Hewlett-Packard Development Company, L.P.7
    • Hadoopだけでなく、関連するオープンソースソフトウェアを含めたトータルサポート WebJava AP Management Apache http server Tomcat, JBoss JVM (OpenJDK) Nagios, ZABBIX BigData Hadoop HA OS FreeBSD, CentOS DRBD, Heart Beat DB Debian, Ubuntu MySQL, Postgre SQL338 ワンストップで、トータルサポートを提供 © Copyright 2012 Hewlett-Packard Development Company, L.P.
    • Thank you39 © Copyright 2012 Hewlett-Packard Development Company, L.P.