今回はAmbariについて書きたいと思います。
Ambariは、Hadoopクラスタのプロビジョニングや管理、監視などをしてくれるソフトウェアです。Hadoop自体やそれ以外のコンポーネントのインストールもしてくれますし、設定の管理や、プロセスの開始/停止などもAmbari上でできます。クラスタ系のソフトウェアはインストールや管理が大変なのですが、そこら辺をやってくれるイメージですね。同じようなものとしてはOSSではありませんがClouderaのCloudra Managerがあります。
また、先月(2016/6)に行われたHadoop Summit 2016 San Joseでは、Ambariではマーケットプレイス的なUIが実装され、Hadoopクラスタの管理だけではなく、その他のアプリケーション(Jenkinsとか)の管理もできるようにしていくということが発表されたようです。
では、本題に入っていきます。
現時点(2016/7/20)でのHDP Sandboxの最新版に入っているAmbariのバージョンは2.2.1なのですが、Ambari 2.2.2からMetricsにGrafanaを採用していて使いやすくなっているようです。
なので、Ambariの機能を見ていく前に、今回はHDB SandboxのAmbariを2.2.2へアップグレードをしたいと思います。
事前準備
事前準備として、Ambariのadminユーザのパスワードをadminに変更します。
HDP SandboxのVMへには、以下のようにrootユーザでsshで入れます。
初期パスワードはhadoopです。ログインするとパスワードの変更を求められるので適宜変更します。
$ ssh root@127.0.0.1 -p 2222
次に以下のコマンドを実行してAmbariのadminユーザのパスワードを変更します。
パスワードはadminにします。
$ ambari-admin-password-reset
また、DBのバックアップと設定ファイル(/etc/ambari-server/conf/ambari.properties)のバックアップも事前準備として必要ですが、HDP Sandboxを入れてから特に何もしていなかったので端折りました。
ちなみに、HDP Sandboxでは、DBとしてPostgreSQLを使っているようです。
Ambariのアップグレード
Ambariのアップグレードの前に、AmbariのWeb画面からAmbari Metricsを停止します。
adminユーザでAmbariにログインし、左側の「Ambari Metrics」をクリックして「Service Actions」メニューから「Stop」を選択するとAmbari Metricsを停止することができます。
Ambari Metricsの停止が完了したら、Ambari ServerとAmbari Agentを停止していきます。
Ambariでは、Ambari Serverという全体を管理するマスタ的なプロセスと、各ノードにインストールするAmbari Agentがいます。ここら辺の話も機会があれば後で書こうと思います。
Ambari Agentに対するオペレーションは、本来はクラスタ内のすべてのノードで実行する必要がありますが、今回はHDP SandboxのVMなので1回だけ実行することになります。
Ambari Serverの停止
$ ambari-server stop
Ambari Agentの停止(すべてのノードで実行)
$ ambari-agent stop
次に、レポジトリファイルを更新します。これもすべてのノードで行う作業です。
以下のコマンドを実行すれば更新されます。
$ wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
更新後にyumレポジトリのキャッシュをクリアします。
$ yum clean all
そして、それぞれのコンポーネントをアップグレードします。
Ambari Serverのアップグレード
$ yum upgrade ambari-server
Ambari Agentのアップグレード(すべてのノードで実行)
$ yum upgrade ambari-agent
次に、DBのスキーマをアップグレードするために以下のコマンドを実行します。
$ ambari-server upgrade
最後にそれぞれのプロセスを起動します。
Ambari Serverの起動
ambari-server start
Ambari Agentの起動(すべてのノードで実行)
ambari-agent start
これで、Ambari ServerとAmbari Agentのアップグレードが完了しました。
Ambari Metricsのアップグレード
次にAmbari Metricsのアップグレードを行います。
Ambari Metricsは名前の通り、クラスタ内のMetricsの収集などを行うコンポーネントです。
Ambari Metricsも、全体のメトリクスを収集するMetrics Collectorと、各ノードにインストールするMerics MonitorとHadoop Sinkがいます。ここら辺も機会があれば後で書きたいと思います。
それでは、それぞれをアップグレードしていきます。
Metrics MonitorとHadoop Sinkのアップグレード(すべてのノードで実行)
yum upgrade ambari-metrics-monitor ambari-metrics-hadoop-sink
Metrics Collectorのアップグレード
yum upgrade ambari-metrics-collector
アップグレードが完了したらAmbari Metricsをスタートさせます。
停止時とほぼ同様で、左側の「Ambari Metrics」をクリックして「Service Actions」メニューから「Start」を選択するとAmbari Metricsを開始することができます。
Hadoop Sinkをアップグレードしたので、HDFS、YARN、Kafka、HBase、Flume、Stormなどのプロセスの再起動が必要となります。
Grafanaのインストール
最後にGrafanaをインストールします。
まず、AmbariにMETRICS_GRAFANAというコンポーネントを追加します。
以下のようにcrulコマンドを実行すればOKです。以下のURLの「Sandbox」の部分はクラスタ名になります。今回はHDP SandboxのVMなのでクラスタ名はSandboxになります。
curl -u admin:admin -H "X-Requested-By:ambari" -i -X POST http://127.0.0.1:8080/api/v1/clusters/Sandbox/services/AMBARI_METRICS/components/METRICS_GRAFANA
次に、対象ホストにGrafanaを追加します。
下記URLの「sandbox.hortonworks.com」にあたる部分にホスト名を指定します。今回はSandboxのVMのホスト名のsandbox.hortonworks.comを指定しています。
curl -u admin:admin -H "X-Requested-By:ambari" -i -X POST -d '{"host_components":[{"HostRoles":{"component_name":"METRICS_GRAFANA"}}]}' http://127.0.0.1:8080/api/v1/clusters/Sandbox/hosts?Hosts/host_name=sandbox.hortonworks.com
上記の手順を終えた後に、AmbariのWeb画面で左側の「Ambari Metrics」をクリックすると、下記のようにGrafanaが追加されて「Install Pending...」になっているのが分かります。
Grafanaのインストールを始める前に設定変更をします。
同ページの「Configs」タブをクリックして、「General」セクションの「Grafana Admin Password」にGrafanaのデフォルトのパスワードのadmin/adminを指定し「Save」ボタンを押します。
そしてGrafanaをインストールします。
AmbariのWeb画面の上部にある「Host」タブをクリックし、インストールしたホスト名(sandbox.hortonworks.com)をクリックすると、そのホストにインストールされているコンポーネントの一覧が表示されます。その中にGrafana含まれていて、以下のように表示されます。
この「Install Pending...」ボタンをクリックし「Re-install」を選択すると、Grafanaのインストールが開始されます。そしてインストールが完了したら、同様に「Start」を選択するとGrafanaが起動します。
これでGrafanaのインストールは完了しました。
VirtualBoxのポートフォワーディングの設定
Grafanaのインストールは完了したのですが、ローカルからGrafanaにアクセスするためにはVirtualBoxのポートフォワードの設定が必要になります。
以下の設定を追加してください。
名前 | プロトコル | ホストIP | ホストポート | ゲストIP | ゲストポート |
---|---|---|---|---|---|
grafana | TCP | 127.0.0.1 | 3000 | 3000 |
GrafanaのWeb画面
ブラウザで http://127.0.0.1:3000/ にアクセスするとGrafanaのWeb画面が表示されます。
主要コンポーネントのダッシュボードがいくつか用意されています。
ここの詳細についても別の記事で書きたいと思います。
まとめ
文字がとても多くなってしまいましたが、今回はHDP SandboxのAmbariをアップグレードしました。MetricsをGrafanaを使って見ることができるようになり、かなり使い勝手が良くなったのではないでしょうか。