Edited at

Cloudera Manager API で NameNode HA

More than 3 years have passed since last update.

Cloudera Manager Advent Calendar 2015の8日目です。


はじめに

本番環境での作業に備えてNameNode HA環境を使って検証をしたい、でも構築が面倒ということ、あると思います。私も稀に良くあります。

そんなときもAdvent Calendarの4日目に紹介されているようにCloudera Managerを使うことでとても簡単にHA化することができます。

まあ、でもGUIじゃなくてCUIからワンステップで終りにしたいんだ、という向きのためにサンプルとしてNNをHA化するスクリプトを用意してみました。


前提条件


  • 4 ノード以上のクラスタ

  • ZooKeeperが起動していること(1台:デフォルトでサービスを導入してある状態)

  • HA化されていないHDFSが起動していること

なお、動作確認はClouderaManager/CDH共に5.5で行っています。


やること

特に編集の必要がなければ下記を実行すればHA化されるかもしれません。



curl -l https://gist.githubusercontent.com/azurecube/6fe941e7297c64c73ec2/raw/82241f53ddd046cdb211ae463050eaddc700a169/nnha.sh > nnha.sh

bash ./nnha.sh

スクリプトでやってることはZooKeeperのロールを増やしてからNameNodeHAを有効にしている、というものになります。

ちなみにNameNodeのHA化は専用のAPIが用意されていてでさくっと実行できるようになっています。便利!

実行前の注意点としては下記あたりかと

- USERNAME/USERPASSは使用しているCloudera ManagerのAdminユーザのものに変更(default admin/admin)

- ロールの配置はスクリプトのはじめのコメントにある下記の形で固定

# !!Note Please execute this on more than 4 node cluster!!

# Setting HA as following
# node1: Active NN zk1
# Node2: Standby NN jn1 zk2
# Node3: jn2 zk3
# Node4: jn3

サンプルなので、とりあえず実行してみて、動いたらお好みに併せて調整してみてください。


おわりに

Cloudera Managerの記事なのにCloudera Managerのスクリーンショットがない、だと。。。

というのを目指してたのですが、3日目にすでにもっていかれてるのを把握してしょんぼりしながら書いてます。

NameNode HAは本番環境ではかかせない機能なので、検証の際にも構成しておきたいことはあると思います。初めて構成する場合などは4日目の記事を参考にするのをおすすめしますが、たくさん構成しすぎて飽きたころにこの記事を思い出していただければ幸いです。