LoginSignup
5
4

More than 5 years have passed since last update.

Cloudera Manager APIでローリングリスタート

Last updated at Posted at 2015-12-24

Cloudera Manager Advent Calendar 2015の24日目の記事になります。

はじめに

株式会社サイバーエージェントの秋葉原ラボに所属している梅田と申します。
普段はHBaseクラスタの運用したり、HBaseを用いたグラフデータベースの開発・運用をしていたりします。
今年1月に共著でHBaseの入門書を出したりしました。

弊社では複数のHBaseクラスタを運用していますが、Cloudera Managerで管理していたり、自力(気合)で管理していたりします。
Cloudera Managerは優れもので、無料版であるClondera Expressエディションでもそれなりに運用できます。
ただし、Clondera Enterpriseエディションでないとローリングリスタート機能が使えなかったりします。
設定変更などをオンラインで行う上でローリングリスタート機能がないと結構不便なので、Cloudera Manager APIを用いたローリングリスタートスクリプトを作ってみたので紹介してみたいと思います。

Cloudera Manager API

Cloudera Managerには、Cloudera Manager APIというAPIが用意されており、ほとんどの操作をAPI経由で実行することができます。

Cloudera Manager API

さらにこのAPIのクライアントとして、JavaクライアントやPythonクライアントが用意されています。
今回は、pythonクライアントを用いてローリングリスタートスクリプトを作りました。
クライアントの詳細な情報については以下を参照してください。

Cloudera Manager API Client

ローリングリスタートスクリプトの概要

私が管理しているクラスタは、基本的にはHDFS、HBase、YARN、Zookeeperで構成されています。
このうち、HDFS、HBase、YARNについてはちょくちょく設定変更するため、ローリングリスタートスクリプトではこれらのプロセスを再起動する仕様にしています。

スクリプトの概要は以下になります。

  • HBase関連のプロセス再起動

    • Masterプロセスの再起動
    • RegionServerプロセスの再起動
      • プロセス停止前にRegionのunloadを行う
      • プロセス開始後にRegionのloadを行う
  • HDFS関連のプロセス再起動

    • NameNodeのプロセス再起動
      • NameNodeのフェイルオーバも行う
    • DataNodeのプロセス再起動
  • YARN関連のプロセス再起動

    • ResourceManagerのプロセス再起動
    • NodeManagerのプロセス再起動
    • HistoryServerのプロセス再起動

前提条件

  • CDH5のクラスタのみ対象
  • NameNodeがHA化されていること

ローリングリスタートスクリプト

gitで公開しているので、興味のあって実験できる環境を持っている方は動かしてみてください。
インストール方法については、READMEを参照してください。

ローリングリスタートスクリプト

※ 残念ながら動作保証はできません。自己責任でお願いします。

おわりに

Cloudera Manager APIの活用方法の一例として、自作のローリングリスタート機能を紹介しました。
もうちょっと頑張れば、ローリングアップグレードもできるようになるんじゃないかと思っています。
今後もいろいろ試していこうと思います。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4