LoginSignup
2
1

More than 3 years have passed since last update.

GCP環境にCloudera Altus Directorを入れてみた話(導入手順編)

Last updated at Posted at 2019-12-02

Distributed computing (Apache Spark, Hadoop, Kafka, ...) Advent Calendar 2019 の 3日目(12/3)の記事になります!

今日は、 昨日 の続編として、GCP環境にCloudera Altus Directorを導入する手順となります。
作成する環境はこんな感じです。

image.png

手順1)GCPのプロジェクトを準備

GCPコンソールからプロジェクト名を入力して作成します。ここでは「microadprj」とします。

手順2)GCPのアカウント周りの準備

  • IAMからサービスアカウントを作成し、「キーを作成」します。
    秘密鍵を含むファイルをJson指定でダウンロードしておきます。(★)
  • 作成したサービスアカウントに、 役割「Compute 管理者」を付与します。 1

  • ssh-keygenコマンドでキーペア(★★)を作成し、作成した公開鍵はGCEのメタデータに登録しておきます。

手順3)Director用GCEインスタンスを作成

GCPコンソールからGCEインスタンスを一つ作成します。

  • スペック: お試しにはn1-standard-1以上、本番ならn1-standard-2以上が推奨されています。
  • ブートディスク: お試しには標準の永続ディスク、本番ならSSDが推奨です。
  • プリエンプティブルVMの利用:  必ずオフ(デフォルト)にしましょう。

という訳で、下記のようなインスタンスを作成しました。

名前 : cloudera-director
リージョン:asia-northeast1
ゾーン:  asia-northeast1-b
マシンタイプ:n1-standard-2 (vCPU x 2、メモリ 7.5 GB)
ブートディスク:CentOS7 標準の永続ディスク10GB
IDとAPIへのアクセス:デフォルト(Compute Engine default service account)
ファイアウォール:HTTPもHTTPSもチェックなし
プリエンプティブルVMの利用:オフ

手順4)Director用GCEインスタンスにDirectorServerとClientをインストール

前項で作成したインスタンスにSSHログインしOpenJDKをインストールします。

$ sudo yum install java-1.8.0-openjdk

DirectorServerとClientをインストールしてDirectorServerを起動します。

$ sudo yum -y install wget
$ cd /etc/yum.repos.d/ 
$ sudo wget "http://archive.cloudera.com/director6/6.2/redhat7/cloudera-director.repo"
$ sudo yum install cloudera-director-server cloudera-director-client
$ sudo systemctl start cloudera-director-server
$ sudo systemctl disable firewalld 
$ sudo systemctl stop firewalld

無事起動すれば、7189ポートがListenします。起動しない場合は次のようにしてログを見ると良いです。

$ sudo less /var/log/cloudera-director-server/application.log

手順5)ローカルPCからSOCKSプロキシ経由でDirector画面を見る

セキュリティへの配慮でClouderaはSOCKSプロキシ経由でDirector画面を見る事を推奨しています。

まずはMacのTerminalからSOCKSプロキシ起動 2

$ gcloud compute --project "microadprj" ssh --zone "asia-northeast1-b" "cloudera-director" --ssh-key-file=~/ClouderaDirector/ssh/cloudera-director --ssh-flag="-D" --ssh-flag="1080" --ssh-flag="-N"'

MacのTerminalからChrome起動 2

$ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --user-data-dir="$HOME/chrome-proxy-profile" --proxy-server="socks5://localhost:1080"

このChrome画面からhttp://(Director用インスタンスのローカルIP):7189/ のURLを叩くと、 Welcome to Cloudera Altus Director 画面が表示されます。

手順6)DirectorおよびCM用のデータベースサーバを準備

Director及びCMのサービスと、そこで情報を保持するためのデータベースのリソースを分離したいので、外部データベースサーバを準備します。今回はMySQLを利用しました。

  • GCEインスタンスを作成 下記のように作成しました。
名前 : cloudera-db
リージョン:asia-northeast1
ゾーン:  asia-northeast1-b
マシンタイプ:n1-standard-2(vCPU x 2、メモリ 7.5 GB)
ブートディスク:CentOS7 標準の永続ディスク20GB
IDとAPIへのアクセス:デフォルト(Compute Engine default service account)
ファイアウォール:HTTPもHTTPSもチェックなし
プリエンプティブルVMの利用:オフ
mysql> grant all on *.* to 'privilegeduser'@'%' identified by '適宜';
  • MySQLにDirector用DBとDBアカウントを作成 Director用に、専用アカウントとDBを用意します。
mysql> create database director_db DEFAULT CHARACTER SET utf8;
mysql> grant all on director_db.* TO 'directoruser'@'%' IDENTIFIED BY '適宜';

手順7)DirectorからCMをデプロイ

ここからDirectorを使ってデプロイを進めます。

Environment の作成

手順5) で表示されたWelcome to Cloudera Altus Director画面にて、チェックを入れてContinueを押下します。ログイン画面が出てきたら、Username、Passwordともadminでログインし、Add Environment ボタンを押下します。Add Environment画面になりますので、以下のように入力します。

  • Environment name: 環境名を適宜入力します。
  • Project ID   : 手順1)で作成したプロジェクト名「microadprj」を入力。
  • Cloud provider: Google Cloud Platform
  • Client ID JSON Key : 手順2)でダウンロードしたJsonファイル(★)を選択します。この中にはサービスアカウントの秘密鍵が含まれます。
  • SSH credentials: 
    • UsernameはこれからDirectorが作成するインスタンスにSSHログインする際のアカウント名です。適当なものを入力します。
    • Private Keyは手順2)で作成したキーペア(★★)の秘密鍵です。(GCEのメタデータ に登録した公開鍵と対になるもの)

Continueを押下すると、Environmentが作成されます。

Deployment=CM の作成

次に、Advanced Setupを選択します。3
するとAdd Deployment画面になります。
Deployment名を「CM62」など適宜入力後、Instance TemplateCreate New Instance Templateを選択しインスタンステンプレートを作成します。

AddDeployment.png

CM用のインスタンステンプレートとして、下記の設定で作成します。

  • Instance Template name: template_CM など適宜
  • Machine Type :   n1-standard-4 を選択
  • Image Alias or URL:「https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-7-v20190515」 4

  • Tags : centos7 など適当に

  • Zone : asia-northeast1-a などインスタンスを展開したいゾーンを指定

  • Instance name prefix: cloudera-manager などGCEインスタンス名のプレフィクスを指定

  • Boot Disk Type :  Standard   ※デフォルトだとローカルSSDなので注意!

  • Data Disk Count:  0

  • Use Preemptible Instances:  オフ

CreateNewInstanceTemplate.png

「Save Changes」を押下するとAdd Deployment画面に戻ります。 

  • License Type: Expressを選択

  • Database Server:Register Existing Database Server を選択し、手順6)で準備したデータベースサーバ、特権アカウントの情報を入力
    Save Database Serverを押下するとAdd Deployment画面に戻ります。 

Cloudera Manager Configurationsボタンを押下するとCloudera Manager Configurations画面が出ます。下記のように設定します。

  • Host Monitor        firehose_heapsize 1073741824
  • Service Monitor   firehose_heapsize 1073741824

Save Changesを押下するとAdd Deployment画面に戻ります。 
CMログイン画面に設定したいユーザ名とパスワードを入力します。

Continueを押し同意画面を同意すると、GCEインスタンスの生成とCMのインストールが始まります。画面はAdd Cluster画面に遷移します。
GCEインスタンスが追加され、Cloudera ExpressのDirectorバージョン6.2 に合わせた最新版 が入ります。5

手順8)DirectorからCDHクラスタをデプロイ

  • Add Cluster画面でCluster名を入力、CDHのバージョンを入力します。「6」と入れておくと、Directorバージョンに合わせた最新版 が入ります。6

  • Servicesから入れたいサービスを選びます。

  • Instance groupsエリアで、インスタンス作成する台数とインスタンステンプレートを選択します。インスタンステンプレートを作成する場合はCreate New Instance Templateを選択し、手順7)で実施した要領でインスタンステンプレートを作成します。

  • Continueを押し同意画面を同意すると、GCEインスタンスが追加され、CDHクラスタのデプロイが始まります。

AddCluster.png

手順9)CDHクラスタの接続確認

Gatewayからhdfsやbeelineコマンドで確認します。

手順10)DirectorのDBをMySQLに載せ替える

デフォルトだと、組み込みのH2というDBに情報を持っていますが、本番利用では推奨されていません。
手順6)で用意したMySQLのDBに載せ替えます。

  • cloudera-directorのインスタンスにSSHしDirectorを停止します。
# systemctl stop cloudera-director-server
# systemctl start cloudera-director-server

あとはDirectorの動作確認をします。

手順としては以上になります。お役に立てれば幸いです。
ここまでお読み頂き有り難うございました。


  1. サービスアカウントには権限をつける必要があるはずなのですが、Clouderaのドキュメントには言及が見当たりませんでした。AWSのCreating AWS Identity and Access Management (IAM) Policies | 6.3.x | Cloudera Documentation を参考にし、GCEの管理者権限を持たせれば十分と判断し付与しています。が厳密には権限オーバーと思われます。 

  2. 毎回長いコマンドを叩くのは面倒ですのでエイリアスを設定すると便利です。 

  3. Simple SetupはGCPではサポートされていませんでした。 

  4. Director6.2.0では、Image Aliasの選択肢にはcentos6とrhel6しか出て来なかったので、URLを指定しています。6.3系では解消されていると思われます。
    参考:Solved: Re: Deploying Centos 7 on GCE - Cloudera Community 

  5. CMのバージョンを指定したい場合は、「Override default Cloudera Manager repository」にチェックを入れ、RepositoryのURLを入力します。 

  6. CDHのバージョンを指定したい場合は、画面下方の「Configurations (optional)」を展開し、「Override default parcel repositories」にチェックを入れ、RepositoryのURLを入力します。 

2
1
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
2
1