Cloudera ManagerでHadoopクラスタをアップグレード

Cloudera Enterprise 5.8 がリリースされたので、Cloudera Quickstart VMのCloudera ManagerとCDHをアップグレードしてみました。

# 環境
- Cloudera Quickstart VM 5.7の仮想マシン
(http://www.cloudera.com/downloads/quickstart_vms/5-7.html)
- VMWare Player/Fusionの動いている環境

# Cloudera Manager/CDHをアップグレード
アップグレード手順はドキュメントに記載されています。今回のアップグレードはほとんどウィザードを使って更新できましたが、ドキュメンドは一読しておきましょう。
http://www.cloudera.com/documentation/enterprise/latest/topics/installation_upgrade.html#xd_583c10bfdbd326ba-7dae4aa6-147c30d0933--7f28

## Cloudera Managerを最新バージョンに更新
現在の環境は Cloudera Manager 5.7.0 の環境で、CDH 5.7.0 と StreamSets 1.5.0 が導入されています。
![u1.png](https://qiita-image-store.s3.amazonaws.com/0/13776/83a989f9-51f8-0227-2dd7-2bb7bb72d2ed.png)

下記の手順に従いアップグレードします。
http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ag_upgrade_cm5.html

- サービスの停止
Cloudera Manager のWeb UIから実行中のサービス (HDFS, YARNなど）を停止します。左上のメニューから停止を選ぶだけです。続いて Cloudera Management Serviceも停止しましょう。
![u2.png](https://qiita-image-store.s3.amazonaws.com/0/13776/1b57d3d1-c3c6-a445-7a10-d2e4917dcea6.png)


-  Cloudera Managerのデーモンの停止
コマンドラインからCloudera Manager関連のデーモンを停止します。Quickstart VMでは組み込みDBは使用していないので、cloudera-scm-server-dbを更新する必要はありません。

```
[cloudera@quickstart ~]$ sudo service cloudera-scm-server stop
Stopping cloudera-scm-server:                              [  OK  ]
[cloudera@quickstart ~]$ sudo service cloudera-scm-server-db stop
cloudera-scm-server-db: unrecognized service
[cloudera@quickstart ~]$
```

- Cloudera Manager パッケージのアップグレード

続いてyumコマンドでパッケージをアップグレードします。yumのレポジトリを変更する必要ありません。

```
[cloudera@quickstart ~]$ cat /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name=Cloudera Manager, Version 5
baseurl=http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5/
gpgkey=http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
gpgcheck = 1
```

```
[cloudera@quickstart ~]$ sudo yum clean all 
Loaded plugins: fastestmirror, security
Cleaning repos: base cloudera-cdh5 cloudera-gplextras5 cloudera-kafka
              : cloudera-manager epel extras updates vmware-tools
Cleaning up Everything
Cleaning up list of fastest mirrors
[cloudera@quickstart ~]$ sudo yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent
Loaded plugins: fastestmirror, security
Setting up Upgrade Process
Determining fastest mirrors
epel/metalink                                            | 4.6 kB     00:00     
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.riken.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
base                                                     | 3.7 kB     00:00     
base/primary_db                                          | 4.7 MB     00:00     
cloudera-cdh5                                            |  951 B     00:00     
cloudera-cdh5/primary                                    |  44 kB     00:00     
cloudera-cdh5                                                           146/146
cloudera-gplextras5                                      |  951 B     00:00     
cloudera-gplextras5/primary                              | 2.4 kB     00:00     
cloudera-gplextras5                                                         9/9
cloudera-kafka                                           |  951 B     00:00     
cloudera-kafka/primary                                   | 1.7 kB     00:00     
cloudera-kafka                                                              3/3
cloudera-manager                                         |  951 B     00:00     
cloudera-manager/primary                                 | 4.3 kB     00:00     
cloudera-manager                                                            7/7
epel                                                     | 4.3 kB     00:00     
epel/primary_db                                          | 5.8 MB     00:01     
extras                                                   | 3.4 kB     00:00     
extras/primary_db                                        |  37 kB     00:00     
updates                                                  | 3.4 kB     00:00     
updates/primary_db                                       | 1.4 MB     00:00     
vmware-tools                                             |  951 B     00:00     
vmware-tools/primary                                     |  18 kB     00:00     
vmware-tools                                                              42/42
Resolving Dependencies
--> Running transaction check
---> Package cloudera-manager-agent.x86_64 0:5.7.0-1.cm570.p0.76.el6 will be updated
---> Package cloudera-manager-agent.x86_64 0:5.8.0-1.cm580.p0.42.el6 will be an update
base/filelists_db                                        | 6.4 MB     00:01     
cloudera-cdh5/filelists                                  | 405 kB     00:00     
cloudera-gplextras5/filelists                            | 5.6 kB     00:00     
cloudera-kafka/filelists                                 | 1.3 kB     00:00     
cloudera-manager/filelists                               | 110 kB     00:00     
epel/filelists_db                                        | 8.0 MB     00:01     
extras/filelists_db                                      |  38 kB     00:00     
updates/filelists_db                                     | 1.1 MB     00:00     
vmware-tools/filelists                                   | 6.0 kB     00:00     
---> Package cloudera-manager-daemons.x86_64 0:5.7.0-1.cm570.p0.76.el6 will be updated
---> Package cloudera-manager-daemons.x86_64 0:5.8.0-1.cm580.p0.42.el6 will be an update
---> Package cloudera-manager-server.x86_64 0:5.7.0-1.cm570.p0.76.el6 will be updated
---> Package cloudera-manager-server.x86_64 0:5.8.0-1.cm580.p0.42.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                  Arch   Version                 Repository        Size
================================================================================
Updating:
 cloudera-manager-agent   x86_64 5.8.0-1.cm580.p0.42.el6 cloudera-manager 7.5 M
 cloudera-manager-daemons x86_64 5.8.0-1.cm580.p0.42.el6 cloudera-manager 529 M
 cloudera-manager-server  x86_64 5.8.0-1.cm580.p0.42.el6 cloudera-manager 8.2 k

Transaction Summary
================================================================================
Upgrade       3 Package(s)

Total download size: 537 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): cloudera-manager-agent-5.8.0-1.cm580.p0.42.el6.x8 | 7.5 MB     00:01     
(2/3): cloudera-manager-daemons-5.8.0-1.cm580.p0.42.el6. | 529 MB     02:16     
(3/3): cloudera-manager-server-5.8.0-1.cm580.p0.42.el6.x | 8.2 kB     00:00     
--------------------------------------------------------------------------------
Total                                           3.9 MB/s | 537 MB     02:18     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : cloudera-manager-daemons-5.8.0-1.cm580.p0.42.el6.x86_64      1/6 
  Updating   : cloudera-manager-server-5.8.0-1.cm580.p0.42.el6.x86_64       2/6 
  Updating   : cloudera-manager-agent-5.8.0-1.cm580.p0.42.el6.x86_64        3/6 
  Cleanup    : cloudera-manager-agent-5.7.0-1.cm570.p0.76.el6.x86_64        4/6 
  Cleanup    : cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64       5/6 
  Cleanup    : cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64      6/6 
  Verifying  : cloudera-manager-server-5.8.0-1.cm580.p0.42.el6.x86_64       1/6 
  Verifying  : cloudera-manager-daemons-5.8.0-1.cm580.p0.42.el6.x86_64      2/6 
  Verifying  : cloudera-manager-agent-5.8.0-1.cm580.p0.42.el6.x86_64        3/6 
  Verifying  : cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64       4/6 
  Verifying  : cloudera-manager-agent-5.7.0-1.cm570.p0.76.el6.x86_64        5/6 
  Verifying  : cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64      6/6 

Updated:
  cloudera-manager-agent.x86_64 0:5.8.0-1.cm580.p0.42.el6                       
  cloudera-manager-daemons.x86_64 0:5.8.0-1.cm580.p0.42.el6                     
  cloudera-manager-server.x86_64 0:5.8.0-1.cm580.p0.42.el6                      

Complete!
[cloudera@quickstart ~]$ 
```
※Cloudera Managerの最新版は5.8.1です

- インストールの確認
パッケージが正しく更新されていることを確認します。5.8.0に更新されていますね。

```
[cloudera@quickstart ~]$ rpm -qa 'cloudera-manager-*'
cloudera-manager-daemons-5.8.0-1.cm580.p0.42.el6.x86_64
cloudera-manager-agent-5.8.0-1.cm580.p0.42.el6.x86_64
cloudera-manager-server-5.8.0-1.cm580.p0.42.el6.x86_64
[cloudera@quickstart ~]$
```

- Cloudera Manager Serverを開始
Cloudera Manager Serverを開始します。

```
[cloudera@quickstart ~]$ sudo service cloudera-scm-server start
Starting cloudera-scm-server:                              [  OK  ]
[cloudera@quickstart ~]$
```

- しばらく待ってからWebUIにアクセスします。WebUIでアップグレードウィザードが開始されるので、画面の指示に従って先に進みます。
 ![u3.png](https://qiita-image-store.s3.amazonaws.com/0/13776/a56f7afd-43b6-6864-2bde-25eae33c21ff.png)

- Cloudera Manager Agentのアップデート。基本的に画面の指示に従って進めます。

![u4.png](https://qiita-image-store.s3.amazonaws.com/0/13776/804ed6b1-7fc9-58ee-d442-4efc2fd98bf6.png)


![u5.png](https://qiita-image-store.s3.amazonaws.com/0/13776/fbdee763-bf67-07dd-962d-7958d3a3c6be.png)

![u6.png](https://qiita-image-store.s3.amazonaws.com/0/13776/4ea2a958-696a-a697-662f-b460cf477658.png)

![u7.png](https://qiita-image-store.s3.amazonaws.com/0/13776/900a3163-33f6-01fa-0b81-2edde13ebd5a.png)

![u8.png](https://qiita-image-store.s3.amazonaws.com/0/13776/f4591afa-59f5-7185-9e90-10326d12e29e.png)

![u9.png](https://qiita-image-store.s3.amazonaws.com/0/13776/f38c7bbb-fd88-e51e-67b2-7658199aaff9.png)

- 最後にホストインスペクタが実行されます。問題がないかどうかを確認しましょう。
![u10.png](https://qiita-image-store.s3.amazonaws.com/0/13776/5a139cc4-ee5d-fe83-720f-1e58ba66cdae.png)

おめでとうございます！完了です。
![u11.png](https://qiita-image-store.s3.amazonaws.com/0/13776/0a2c9179-f836-948a-9fec-39e7287fe1f8.png)

あまり手を煩わされることもなく Cloudera Manager のアップグレードが完了しました。
![u12.png](https://qiita-image-store.s3.amazonaws.com/0/13776/ae4cda98-ae18-e7cb-7257-9724ffd4ef9d.png)

![u13.png](https://qiita-image-store.s3.amazonaws.com/0/13776/83f465cb-cba3-abe8-1e88-f8df7d45c64c.png)

![u14.png](https://qiita-image-store.s3.amazonaws.com/0/13776/e5d024d4-b116-bf8d-0c0f-118f62d9bb9f.png)

![u15.png](https://qiita-image-store.s3.amazonaws.com/0/13776/98b625d5-903e-480a-453f-fc5daacc31b2.png)


Cloudera Manager が5.8にアップデートされたので、続いて CDH 5.8.0 に更新します。

## CDH を最新バージョンに更新
Cloudear Manager のアップグレードが完了したので、続いて CDH も最新ににアップグレードしましょう。下記のように、現在は 5.7.0 になっています。

![u16.png](https://qiita-image-store.s3.amazonaws.com/0/13776/cc61bb09-379c-c794-ac92-a2ca2b1c16fe.png)


### Parcel の更新

Cloudera Manager で管理する CDH は Parcel または パッケージのいずれかの形式で行います。今回の環境は Parcel 形式でCDHが導入されているので、メニューにあるアイコンをクリックして開始します。

![u17.png](https://qiita-image-store.s3.amazonaws.com/0/13776/bdf47712-6a37-0f00-5543-61a5a18af38d.png)

初期状態では最新のCDH 5.8.0 が表示されていませんでした。

![u19.png](https://qiita-image-store.s3.amazonaws.com/0/13776/c2ee11d9-3faf-6fef-0a46-5ee5827e349e.png)

設定ボタンを押して設定画面に移動します

![u18.png](https://qiita-image-store.s3.amazonaws.com/0/13776/42fddb26-d87d-7d2b-0021-ab2538d4080c.png)

Parcelのレポジトリが CDH 5.7.0 を指しているので 5.8.0 に変更します。

![u20.png](https://qiita-image-store.s3.amazonaws.com/0/13776/17b6a635-93b8-32c1-bc7a-88d32b39d675.png)

先ほどの画面に CDH5.8.0 のパーセルが表示されるので、ダウンロードします。

![u21.png](https://qiita-image-store.s3.amazonaws.com/0/13776/11fb86d3-7362-3cb0-acdb-2babf48e9299.png)

ダウンロードが終わったら各ノードに配布します（が、今回は１ノードなのであまり時間はかからない..）

![u22.png](https://qiita-image-store.s3.amazonaws.com/0/13776/ef7c3534-6c83-6850-1e74-cbc2fd88251f.png)

配布が終わったらアップグレードができるようになっています。

![u23.png](https://qiita-image-store.s3.amazonaws.com/0/13776/db2cd3b7-7d19-6c88-fa25-dfeb4321c525.png)

（心の）準備ができたらアップグレードを開始しましょう。

### CDH 5.8.0 へのアップグレード

アップグレードボタンを押すとウィザードが立ち上がります。
![u24.png](https://qiita-image-store.s3.amazonaws.com/0/13776/072a04bd-2aff-70e9-b6ec-7b528406e4c3.png)

ドキュメントはちゃんと読みましょう（2回目）

![u25.png](https://qiita-image-store.s3.amazonaws.com/0/13776/3a4c470b-5d3a-5720-231e-abb08083efc3.png)

ドキュメントを読んだらチェックボックスをチェックして続行します。自動的にソフトウェアの検出を行います。

![u27.png](https://qiita-image-store.s3.amazonaws.com/0/13776/83ff0781-a60d-09ca-6eed-30325b6cd690.png)

続いてホストに問題があるかどうかが検査されます。今回の環境は無問題でした。

![u28.png](https://qiita-image-store.s3.amazonaws.com/0/13776/e5fa9208-be57-5889-1d41-1f24e5d01930.png)

アップグレード手順の選択です。今回の環境は既に停止しているので、クラスタを完全に再起動しました。

![u30.png](https://qiita-image-store.s3.amazonaws.com/0/13776/4bd6efbb-ba0c-640d-380c-828442a6124c.png)


アップグレードが始まります。
本来管理者として何をやっているか理解しておいた方がいいですが、これを手作業でやるのって大変ですよね。。。

![u32.png](https://qiita-image-store.s3.amazonaws.com/0/13776/2eb31c1a-39c5-5114-7f2b-512b0297c52b.png)

これでアップグレードは完了です。

![u33.png](https://qiita-image-store.s3.amazonaws.com/0/13776/d05cb255-9cca-5233-e40c-d59579469ff2.png)



![u34.png](https://qiita-image-store.s3.amazonaws.com/0/13776/50d8ce58-c6cd-b8cc-1cbe-98602b900904.png)


不要なサービスが上がっていたら落としておきましょう。

# まとめ
Cloudera Manager を使うことで、比較的容易にクラスタのアップグレードを行うことができました。ドキュメントはちゃんと読んでおく必要がありますが、手作業での人的エラーを避けるには便利ですね。（しかも無料で使えるし、日本語化されているのは嬉しい）