SoftLayerでCloudera Solutionの構築を検証する(2/2):Cloudera Manager編 #softlayer
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
今回は、「SoftLayerでCloudera Solutionの構築を検証する(1/2): オーダ編」に 続き、「Cloudera Manager編」を解説します。
前回は、Cloudera Solution 構築のためのサーバや Cloudera のライセンスなどを SoftLayer のソリューションデザイナーを使って設計し、オーダを出しました。そして最後に、オーダ通りにサーバが起動していることまで確認しています。
今回の記事では、Cloudera Manager を使って、Cloudera ディストリビューションのコンポーネントをエージェントサーバにインストールし、さらにもう一台のサーバを調達し、Cloudera Manager から Hadoop クラスタに追加しています。
記事の内容は、実質的に Cloudera Manager を使った Cloudera のインストールガイドとほとんど変わりません。そのご了承ください。ただし、Cloudera Manager は既にインストール済みの状態です。
なお、今回の記事は SoftLayer で Cloudera Solution の構築過程を解説することが主な目的なので、Cloudera Manager の機能の解説は割愛します。
事前準備
SSL-VPN 設定
Cloudera Manager への接続は SSL-VPN 経由でプライベートネットワークを使用しますが、SSL-VPN を使うためにはいくつかの事前準備が必要です。
まず、SSL-VPN の権限設定を行ってください。[Account→Users] を選択し、VPN Access 権限を確認してください。VPN Access が SSLまたは SSL&PPTP になっていない場合、 [Action→Edit VPN Access] をクリックし、SSL またはSSL & PPTP-VPN を設定してください。
SSL-VPN を使うためには、VPN Portal へ接続するためのパスワード設定が必要です。[Account→Users→Your username]をクリックしてください。そして「Edit User Profile画面」から、VPN パスワードを入力し、[Edit User] をクリックしてください。
さらに Java 7.x の方は、Java コントロール・パネルへ次の2つの URL を例外サイトリストに登録してください。
https://control.coftlayer.com
http://10.3.28.114:5199/tightvnc-jviewer.jar
[スタート→すべてのプログラム→Java→Configure Java→セキュリティ→サイト・リスト編集]を開いてサイトリストの追加を行ってください。
それから、SolfLayer のマネジメントコンソールから、[Support→Help→SSL VPN Login] をクリックして SoftLayer の VPN Portal へ接続してください。
Username | Your User Account | VPN Portal にログインするときのユーザ名です(仮想サーバのユーザ名ではありません) |
Password | ******** | VPN Portal のパスワードです |
正常に VPN Portal に接続すると、次のように Windows のタスクバーの通知領域に Array SSL VPN クライアントが表示され、「Status: Connected」と表示されます。
そして Windows タスクバーのインジケーターに「A」のように表示されます。
[注:SSL-VPN 設定失敗の場合]
もし、上記の SSL-VPN 設定が失敗し、SSL-VPN クライアントが表示されない場合、VPN Portal の「Standalone SSL VPN Clinets」から専用クライアントをダウンロードしてインストールしてください。
インストール後、「Array L3 VPN Connect」を起動します。
そして[Profile→New]を押して Profile を作成してください。
Profile Name | ssl-vpn | 任意の名称 |
SPX Host or IP | vpn.wdc01.softlayer.com | SSL-VPN Portal の https://vpn.wdc01.softlayer.com の「https://」を除いた部分です。 |
SPX Host User Name | Your User Account | VPN Portal にログインするときのユーザ名です(仮想サーバのユーザ名ではありません) |
SPX Host Password | ******** | VPN Portal のパスワードです |
作成したプロファイルを選択し[Connect」をクリックし、接続します。
VPN 接続後は、Tera Term 等を使用し、セキュアにプライベートネットワーク経由でサーバへ接続することが可能です。
Hadoop クラスタ構築
Cloudera Manager へのログイン情報取得
Cloudera Solution Group のベアメタルサーバには、1台のサーバが Cloudera Management Server として構成され、Cloudera Manager がインストール済みの状態で待っています。
[Devices→Big Data→Cloudera]を選択し、Cloudera Solution 名をクリックしてください。次のように Cloudera Manager への URL と管理ユーザ ID、パスワードが確認できます。
Cloudera Manager へのログイン
ブラウザから Cloudera Manager へ接続してください。
http://10.64.61.99:7180
Wellcome to Cloudera…
Cloudera Manager へ接続すると、「Wellcome to Cloudera…画面」が表示されます。この画面では、Cloudera の3つのライセンスパターンが表示されており、そのなかで1つを選択してインストールできます。
Cloudera ライセンスごとのすべての機能比較は www.cloudera.com/content/cloudera/en/products-and-services/product-comparison.html から参照できます。
今回は、Cloudera Enterprise Trial(60Days) を選択し、[Continue] をクリックしてください。
Restart Cloudera Manager
しばらく「Restart Cloudera Manager画面」が表示されます。数分以上持っても次の画面に遷移しない場合はリロードしてください。
Thank you choosing Cloudera Manager...
「Thank you choosing Cloudera Manager…画面」で Cloudera ディストリビューションの一覧を確認してから、 [Continue] をクリックして先に進んでください。
Specify hosts for your CDH cluster installation
「Specify hosts for your CDH cluster installation」で Cloudera Manager Server を Hadoop クラスタに含めてください。画面のテキストボックスに FQDN を書いて [Search] をクリックしてください。
次のように Clouder Manager Server が表示されます。サーバをチェックしてから、[Currently Managed Hosts] をクリックしてください。
「Currently Management Hosts」では、オーダを出したベアメタルサーバが表示されます。ここで2台のサーバをチェックし、[Continue] をクリックしてください。
Cluster Install
「Cluster Install画面」では、デフォルトの構成で [Continue] をクリックし、先に進んでください。ただちに Hadoop クラスタのイントールが始まります。
- Use Parcels(Recommanded)
- CDH-4.7.0-1.cdh4.7.0.p0.40
- SOLR-1.3.0-1.cdh4.5.0.p0.9
- IMPALA-1.3.1-1.impala1.3.1.p0.1172
Hadoop クラスタのインストールが終了するまでは、約30分かかります。
インストールが終了したら、[Continue] をクリックして先に進んでください。
Validations
まずインストールが正しいか検証が行われます。
最後に Cloudera ディストリビューションのバージョンサマリが確認できます。
[Continue] をクリックし、次に進んでください。
Choose the CDH4 services that you...
「Choose the CDH4 services that you…画面」では、Hadoop クラスタの上にインストールするアプリケーションの構成を選択します。今回の記事では、なるべく広く触れてみるために「All Services」を選択しています。
そして [Inspect Role Assignment] をクリックしてください。
Inspect Role Assignment
「Inspect role assignment画面」では、Cloudera Agent Server ごとのロールを指定します。各 Cloudera Agent Server には、この指定に従って必要なコンポーネントがインストールされます。今回の検証ではデフォルト構成で実行しています。
ロール設定が終了したら「Choose the CDH4 service that you…画面」に戻って [Continue] をクリックしてください。
Database Setup
「Database Setup画面」では、Cloudera Manager および Hadoop アプリケーションのレポジトリデータベースを指定します。今回の検証では、[User Embeded Database] を選択しています。これは PostgreSQL データベースの使用を意味します。
[Test Connection] を実行し、データベース接続が問題ないか確認してください。そして [Continue] をクリックし、次に進んでください。
Review configuration change
「Review configuration changes画面」では、重要な Hadoop の環境パラメータの値を設定をすることができます。Hadoop 環境設定は、Cloudera のHadoo ディストリビューションのインストールが終了してからでも編集可能なのでデフォルトでも結構です。
ただし、念のために必須パラメータ(*)および拡張 DISK 上のディレクトリ構成などは確認をお勧めします。特にベアメタルサーバの構成に問題がある場合、必須パラメータがブランクになっている可能性があります。
一通りチェックが終ったら [Continue] をクリックしてください。
Starting your cluster services
最後に、ロール構成や環境変数に従って、環境の構成および Hadoop アプリケーションのサービス起動が行われます。
Cloudera Manager では、Hadoop アプリケーション間の依存関係を考慮しながらサービスを起動します。
環境構成とサービスの起動が終了したら、[Continue] をクリックしてください。次のように「Congratulation!」画面が表示されます。これで Hadoop アプリケーションのインストールや環境構成、サービスの起動がすべて終了しました。 [Continue] をクリックしてください。
「Cloudera manager画面」に遷移します。
Cloudera Manager Console
Home
最初に見える画面は、次のようなダッシュボード画面(ホーム)です。画面の左に稼働しているサービス一覧とステータスが表示されます。ここからサービスごとの起動、停止などができます。
ステータスにサービスごとにエラーや警告があれば表示します。さらに、トレースして詳細なログを確認し、問題を解決に臨むことができます。
今回の検証では Cloudera Agent Serverを2台で開始したことで起因する警告が出ました。
例えば次のような問題です。
- Data Node は3台を推奨します(HDFS のレプリケーションのデフォルト値が3なので)
- Zookeeper の構成は最低3ノードが必要です
- HDFS_UNDER_REPLICATED_BLOCKS のクリティカルエラーが Agent Server 2台構成では直らず、Agent Server を3台にしたところ解消しました。
致命的な問題はないということがわかったところで、Agent Server の拡張に進みます。
Hadoop クラスタの拡張
Cloudera Solution Group へのサーバの追加
Hadoop クラスタの運用では、さまざまな問題で Agent Server の追加が必要なシチュエーションが発生します。今回の検証は、そのような状況を想定したものです。
既に構築している Hadoop クラスタへの Agent Server の追加は、Cloudera Solution グループから行います。Clooudera Solution 画面を開いてください [Devices→Big Data→Cloudera]。そして [Add Server to Solution] をクリックしてください。
Cloudera ソリューションデザイン
既存の Cloudera Solution Group への追加の場合、ソリューションデザイナーから既存の構成が確認できます (SNG01-M1,SNG01-P1,SNG01-P2)。Agent Server の追加は「Cloudera のソリューションデザイナー画面」の左下のプラス(+)をクリックしてください。
「Add Server画面」から、他の Agent Server 同様のスペックを指定し、[OK]をクリックしてください。
Agent Server の追加は、直観的に確認できます。[COMPLATE ORDER] をクリックし、次に進んでください。
Order Summary and Billing
「Order Summary and Billing 画面」が表示されます。この画面では、オーダ内容と金額が確認できます。
ホスト名とドメインを確認してください。
問題なければ、[Finalize Your Order] をクリックしてください。
Your Recript
オーダ受理の旨の画面が表示されます。
この段階では、既に Agent Server のプロビジョニングは始まっています。そしてオーダを出したユーザ宛へのメール配信も行われます。
これからベアメタルサーバが起動するまでは前回同様、約4時間かかります。
Hadoop クラスタへの Agent Server の追加
Cloudera Solution Group から追加オーダを出した Agent Server は Clouder manager から確認できます。Clouder Manager から [Hosts] をクリックしてください。「All Hosts 画面」の「Status シート」から、次のように追加した Agent Server が確認できます。
ただし、Hadoop クラスタへの構成は、まだできていない状態です (SNG01-p3/None)。
[Add New Hosts to Cluster] をクリックしてください。そして「New Hosts シート」から Cloudera manager Server を検索してください。
次のように Cloudera manager Server をチェックしてください。
それから「Currently Managed Host シート」をクリックしてください。追加オーダした Cloudera Agent Server が表示されているはずです。ステータスに問題がないことを確認してから、[Continue] をクリックしてください。
Hadoop クラスタへの追加構成が行われます。終了したら [Continue] をクリックしてください。
それからクラスタ構成のチェックが行われます。終了したら [Continue] をクリックし、次に進んでください。
そして「Select Repository」では、「Matched release for the Cloudera Manager server」を選択してください。
次は、「Provide SSH login credential」でログインユーザおよび認証証明を指定してください。
- Login to all hosts as : root
- Authentfication Method : All hosts accept same private key
- Private Key File : オーダ編で作った秘密鍵を指定してください
「Choose a host template」は、「None」にしてください。
これで Cloudera Solution Group に追加した Agent Server の Hadoop クラスタへの追加は終わりました。
Cloudera Manager の [Hosts] から見ると、Agent Server (SNG01-p3) が追加され、Cloudera のバージョン表示が変わっているのが確認できます(None→CDH4)。
サービスの構成
Hadoop クラスタに追加した Agent Server のロールを決めて Hadoop アプリケーションのサービスを構成する必要があります。
追加した Cloudera Agent Server には、次の3つのサービスを構成します。
- HDFS
- MapReduce
- Zookeeper
今回の記事では、Hadoop アプリケーションのサービス構成についてサービスメニューから Agent Server に対して、それぞれ個別に設定する方式を紹介します。
HDFS 設定
[Services→hdfs1→Instances]を選択し、[Add]をクリックしてください。
「Add Role Instances mgmt1 画面」が表示されます。この画面では Cloudera Solution Group 内にあるサーバ一覧が表示され、ロールの設定が可能です。SNG01-p3 を HDFS サービスに追加してください。他のサーバは設定ずみなので Disable になっています。
- HDFS:sng01-p1, sng01-p2, sng01-p3
それから datanode(sng01-p3) をチェックし、[Action for Selected→Start] でサービスを起動してください。
HDFS サービスの起動を確認してください。
Zookeeper/MapReduce 設定
同様な設定を MapReduce および Zookeeper に対しても実行してください。設定手順は、どのサービスを選ぶかの違いがあるだけで同じです。
- LZookeeper : sng01-p1, sng01-p2, sng01-p3
- MapReduce TaskTracker : sng01-p1, sng01-p2, sng01-p3
Hadoop Application の使用
Hue
Hue は、Hadoop アプリケーションを操作するために Web インターフェースを提供してくれます。 [Services→Hue1] をクリックしてください。
- Username : admin
- Password : 任意のパスワードを設定すると、次回から有効になります
今回の記事では、詳細な使用方法の解説は割愛します。
Tera Term/PuTTy
SSL-VPN 経由で Tera Term や PuTTy などを使って Cloudera Management Server または Hadoop クラスタのネームノードへ接続し、それぞれの Hadoop アプリケーションを使うことも可能です。
Last login: Thu Jun 19 22:08:15 2014 from 10.1.37.186
[root@sng01-p1 ~]#
[root@sng01-p1 ~]# hbase shell
14/06/20 02:32:10 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help' for list of supported commands.
Type "exit" to leave the HBase Shell
Version 0.94.15-cdh4.7.0, rUnknown, Wed May 28 10:48:53 PDT 2014
hbase(main):001:0> quit
[root@sng01-p1 ~]# hive
Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/lib/hive/lib/hive-common-0.10.0-cdh4.7.0.jar!/hive-log4j.properties
Hive history file=/tmp/root/hive_job_log_29d09e2d-ab90-4e74-a7a4-111ef625aa3b_105606433.txt
hive> exit;
[root@sng01-p1 ~]# pig
2014-06-20 02:33:06,801 [main] INFO org.apache.pig.Main - Apache Pig version 0.11.0-cdh4.7.0 (rexported) compiled May 28 2014, 11:05:48
2014-06-20 02:33:06,802 [main] INFO org.apache.pig.Main - Logging error messages to: /root/pig_1403249586797.log
2014-06-20 02:33:06,825 [main] INFO org.apache.pig.impl.util.Utils - Default bootup file /root/.pigbootup not found
2014-06-20 02:33:07,098 [main] WARN org.apache.hadoop.conf.Configuration - fs.default.name is deprecated. Instead, use fs.defaultFS
2014-06-20 02:33:07,098 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://sng01-p1.cdh.example.jp:8020
2014-06-20 02:33:07,717 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: sng01-p1.cdh.example.jp:8021
2014-06-20 02:33:07,720 [main] WARN org.apache.hadoop.conf.Configuration - fs.default.name is deprecated. Instead, use fs.defaultFS
grunt> quit
[root@sng01-p1 ~]# impala-shell -i localhost
Starting Impala Shell without Kerberos authentication
Connected to localhost:21000
Server version: impalad version 1.3.1-cdh4 RELEASE (build 907481bf45b248a7bb3bb077d54831a71f484e5f)
Welcome to the Impala shell. Press TAB twice to see a list of available commands.
Copyright (c) 2012 Cloudera, Inc. All rights reserved.
(Shell build version: Impala Shell v1.3.1-cdh4 (907481b) built on Wed Apr 30 14:23:48 PDT 2014)
[localhost:21000] > quit;
Goodbye
KVM
Hadoo pクラスタへの各サーバには、KVM 接続も可能です。マネジメントコンソールのサーバ一覧から、[Action→KVM Console] をクリックしてください。
各サーバには、SUPERMICRO がインストールされています。こちらのログインのユーザは root ですがパスワードは Cloudera Mananger の初期パスワードを使ってください。
Oozie
Apache Oozie は、ワークフローを作成し、ジョブ間での調整管理を行うことができます[Services→oozie1]。
Hadoop Administraton
従来のHadoop Administartionは、ネームノードに構成されています。
Hadoop Administration-MapReduce
http://10.64.61.95:50030
Hadoop Administration-Name Node
http://10.64.61.95:50070
まとめ
2回に渡って Cloudera Solution On SoftLayer を解説しました。今回の検証では、SolftLayer のソリュションデザイナーの使い方および Hadoop クラスタ構築に範囲を絞った内容になっています。本番向けの運用のためには、セキュリティやネットワーク構成などに工夫が必要でしょう。SoftLayer は、顧客のデータセンターから SoftLayer のデータセンターまで VPN または専用線を引いてプライベートネットワーク上で Cloudera Solution を運用することが可能です。ネットワークの構成方法やセキュリティについては、別の記事で紹介させて頂きたいと思います。
今回の SoftLayer の Cloudera Solution の検証では、非常にスムーズに構築することができました。実際にサーバを用意し Cloudera Manager をインストールすると、想定外のトラブルに悩まされることも多くあります。しかし今回の検証では、ハードウェアおよびソフトウェアのどちらのトラブルもありませんでした。これは現在 SoftLayer が提供している「ベアメタルサーバ/ソリューションデザイナ/プロビジョニング/CDH4.4 & Clouder Manager4.7」の完成度が高いと証左と言えるでしょう。