Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

vSphere BDE Serengeti CLI で Hadoop クラスタ構築。(デフォルト編)

$
0
0

vSphere Big Data Extensions(BDE)では、

コマンドラインのツール(Serengeti CLI)から

Hadoop クラスタを自動構築することもできます。

 

今回は、Serengeti CLI の「cluster create ~」で作成したクラスタが

ほとんどデフォルトの状態でどのような構成になるのか見てみようと思います。


Serengeti-CLI については、こちらもどうぞ。

vSphere で Hadoop してみる。BDE 第6回(Serengeti CLI)

 

Serengeti CLI での Hadoop クラスタ作成

 

まず、serengeti で、BDE の管理サーバに接続します。

BDE の管理サーバ(management-server VM)に SSH でログインして、

そこから Serengeti CLI を起動します。

[serengeti@192 ~]$ serengeti

=================================================

*  _____                                 _   _  *

* / ____|  ___ _ __ ___ _ __   __ _  ___| |_(_) *

* \____ \ / _ \ '__/ _ \ '_ \ / _` |/ _ \ __| | *

*  ____) |  __/ | |  __/ | | | (_| |  __/ |_| | *

* |_____/ \___|_|  \___|_| |_|\__, |\___|\__|_| *

*                             |___/             *

*                                               *

=================================================

Version: 2.0.0

Welcome to Serengeti CLI

serengeti>connect --host localhost:8443

Enter the username: vmad\administrator ★vCenterSSO 認証できるユーザでログイン。

Enter the password: **********

Connected

serengeti>

 

BDE には、ディストリビューションを追加していないので、

デフォルトの「apache」(Apache Hadoop 1.2.1)が使われます。

serengeti>distro list

  NAME    VENDOR  VERSION  HVE    ROLES                                                                                                                                                                    

  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  apache  Apache  1.2.1    true   [hadoop_client, hadoop_datanode, hadoop_jobtracker, hadoop_namenode, hadoop_tasktracker, hbase_client, hbase_master, hbase_regionserver, hive, hive_server, pig, zookeeper]

  bigtop  BIGTOP  0.7.0    false  [hadoop_client, hadoop_datanode, hadoop_journalnode, hadoop_namenode, hadoop_nodemanager, hadoop_resourcemanager, hbase_client, hbase_master, hbase_regionserver, hive, hive_server, pig, zookeeper]

 

vCenter で既にリソースプールが作成してあり、

BDE 側では「auto--~」という名前で自動認識されています。

今回は「hdp_pool01」というリソースプールに Hadoop クラスタを作成しようと思うので、

「auto--4278031577701708056」を create コマンドに指定します。

serengeti>resourcepool list

  NAME                       PATH

  ----------------------------------------------------------

  defaultRP                  cluster01_mgmt/

  auto--4278031577701708056  cluster02/hdp_pool01

  auto--6950730206449699834  cluster02/sv-pool01

 

Hadoop クラスタで使用するつもりの データストアも、BDE に登録してあります。

※これらは、以前に手動登録しました。

serengeti>datastore list

  NAME                TYPE    REG EX

  ----------------------------------

  defaultDSLocal      LOCAL   FALSE

  ds_local_hadoop_01  LOCAL   FALSE

  ds_local_hadoop_02  LOCAL   FALSE

  ds_local_hadoop_03  LOCAL   FALSE

  ds_local_hadoop_04  LOCAL   FALSE

  ds_nfs_hadoop_01    SHARED  FALSE

 

Hadoop クラスタのノードが接続するポートグループも、BDE に登録してあります。

※これも、以前に手動登録しました。

今回は、vCenter の「dvpg-vlan-0005」というポートグループを使用するつもりなので

コマンドでは、BDE に登録する時につけた「bde-vlan-0005」という名前を指定します。

serengeti>network list

  NAME            PORTGROUP       TYPE  IP_RANGES  DNS1  DNS2  GATEWAY  MASK

  --------------------------------------------------------------------------

  defaultNetwork  pg-vlan-0005    dhcp

  bde-vlan-0005   dvpg-vlan-0005  dhcp

 

それでは、Hadoop クラスタ作成コマンドを実行してみます。

今回指定したパラメータは、下記の3つだけです。

  • --name → 新規作成する Hadoop クラスタの名前
  • --rpNames → Hadoop クラスタを作成するリソースプール
  • --networkName → クラスタノードが利用する、BDEポートグループ

serengeti>cluster create --name hdp_cluster03 --rpNames auto--4278031577701708056 --networkName bde-vlan-0005

 

コマンドを実行すると、下記のような進捗表示になります。

STARTED 0%

 

node group: master,  instance number: 0

roles:[hadoop_namenode, hadoop_jobtracker]

 

node group: worker,  instance number: 0

roles:[hadoop_datanode, hadoop_tasktracker]

 

node group: client,  instance number: 0

roles:[hadoop_client, pig, hive, hive_server]

 

ちなみに、Serengeti-CLI の「cluster create ~」では、

他にも下記のようなパラメータが指定できます。※下記以外にもいくつかあります。

  • --type → Hadoop / HBase どちらのクラスタか
  • --distro → Hadoop ディストリビューション
  • --networkName → Hadoop クラスタで使用する NW(ポートグループ)を指定する。
  • --hdfsNetworkName → HDFS の NW を分ける場合に指定する。
  • --mapredNetworkName → MapReduce の NW を分ける場合に指定する。
  • --topology → トポロジ。HOST_AS_RACK、HVE など
  • --password → Hadoop ノードに設定するパスワード
  • --specFile →クラスタ構成をファイルで指定することもできる。

 

詳しくは下記のあたりを参照・・・

VMware vSphere Big Data Extensions Command-Line Interface Guide

> Serengeti CLI Command Reference

> cluster Commands

cluster create Command

 

 

クラスタ自動構築の様子

 

徐々にクラスタが構築されていきます。

STARTED 22%

 

node group: master,  instance number: 1

roles:[hadoop_namenode, hadoop_jobtracker]

  NAME                    IP  STATUS     TASK

  -------------------------------------------------

  hdp_cluster03-master-0      Not Exist  Cloning VM

 

node group: worker,  instance number: 3

roles:[hadoop_datanode, hadoop_tasktracker]

  NAME                    IP  STATUS       TASK

  ---------------------------------------------------------

  hdp_cluster03-worker-0      Not Exist    Cloning VM

  hdp_cluster03-worker-1      Not Exist    Cloning VM

  hdp_cluster03-worker-2      Powered Off  Reconfiguring VM

 

node group: client,  instance number: 1

roles:[hadoop_client, pig, hive, hive_server]

  NAME                    IP  STATUS       TASK

  ---------------------------------------------------------

  hdp_cluster03-client-0      Powered Off  Reconfiguring VM

 

ジョジョにクラスタが構築されていきます。

この画面は Ctrl+C キーなどで抜けてしまっても、自動構築は止まらないようです。

STARTED 78%

 

node group: master,  instance number: 1

roles:[hadoop_namenode, hadoop_jobtracker]

  NAME                    IP             STATUS    TASK

  -----------------------------------------------------------------

  hdp_cluster03-master-0  192.168.5.138  VM Ready  Bootstrapping VM

 

node group: worker,  instance number: 3

roles:[hadoop_datanode, hadoop_tasktracker]

  NAME                    IP             STATUS    TASK

  --------------------------------------------------------------------------

  hdp_cluster03-worker-0  192.168.5.129  VM Ready  Formatting data disks

  hdp_cluster03-worker-1  192.168.5.128  VM Ready  Installing package hadoop

  hdp_cluster03-worker-2  192.168.5.137  VM Ready  Formatting data disks

 

node group: client,  instance number: 1

roles:[hadoop_client, pig, hive, hive_server]

  NAME                    IP             STATUS    TASK

  -----------------------------------------------------------------

  hdp_cluster03-client-0  192.168.5.139  VM Ready  Bootstrapping VM

 

ちなみに、上記の状態は、BDE の Web Client プラグインからも確認できます。

Task 列にも、上記と同じものが表示されています。

bde-cli-cluster-create-01.png

 

Serengeti-CLI から「cluster list ~」コマンドで

デプロイ処理中の Hadoop クラスタを表示すると、

STATUS が PROVISIONING になっています。

serengeti>cluster list --name hdp_cluster03

  ============================================================================

 

  CLUSTER NAME              :  hdp_cluster03

  AGENT VERSION             :  2.0.0

  DISTRO                    :  apache

  AUTO ELASTIC              :  N/A

  MIN COMPUTE NODES NUM     :  N/A

  MAX COMPUTE NODES NUM     :  N/A

  IO SHARES                 :  NORMAL

  STATUS                    :  PROVISIONING

 

  GROUP NAME  ROLES                                    INSTANCE  CPU  MEM(MB)  TYPE    SIZE(GB)

  ---------------------------------------------------------------------------------------------

  master      [hadoop_namenode, hadoop_jobtracker]     1         2    7500     SHARED  50

  worker      [hadoop_datanode, hadoop_tasktracker]    3         1    3748     LOCAL   50

  client      [hadoop_client, pig, hive, hive_server]  1         1    3748     SHARED  50

 

  ============================================================================

 

 

構築された Hadoop クラスタの様子

 

自動構築が完了すると、cluster list コマンドでは

STATUS が「RUNNING」になります。

トポロジ指定(HOST_AS_RACK、HVE など)は、デフォルトではないようです。

HDFS / MapReduce のマスタノードは、「master」として 1つの VM にまとめられています。

スレーブノード(DataNode + TaskTracker)は 3台作成されます。

serengeti>cluster list --name hdp_cluster03

  ============================================================================

 

  CLUSTER NAME              :  hdp_cluster03

  AGENT VERSION             :  2.0.0

  DISTRO                    :  apache

  AUTO ELASTIC              :  N/A

  MIN COMPUTE NODES NUM     :  N/A

  MAX COMPUTE NODES NUM     :  N/A

  IO SHARES                 :  NORMAL

  STATUS                    :  RUNNING

 

  GROUP NAME  ROLES                                    INSTANCE  CPU  MEM(MB)  TYPE    SIZE(GB)

  ---------------------------------------------------------------------------------------------

  master      [hadoop_namenode, hadoop_jobtracker]     1         2    7500     SHARED  50

  worker      [hadoop_datanode, hadoop_tasktracker]    3         1    3748     LOCAL   50

  client      [hadoop_client, pig, hive, hive_server]  1         1    3748     SHARED  50

 

  ============================================================================

 

もう少し詳細な、Hadoop クラスタとノードの構成情報を表示してみました。

マスタノードでは、vSphere HA が有効です。("haFlag" : "on")

serengeti>cluster export --name hdp_cluster03

{

  "nodeGroups" : [

    {

      "name" : "master",

      "roles" : [

        "hadoop_namenode",

        "hadoop_jobtracker"

      ],

      "instanceNum" : 1,

      "instanceType" : "MEDIUM",

      "storage" : {

        "type" : "shared",

        "sizeGB" : 50

      },

      "cpuNum" : 2,

      "memCapacityMB" : 7500,

      "swapRatio" : 1.0,

      "haFlag" : "on",

      "configuration" : {

      }

    },

    {

      "name" : "worker",

      "roles" : [

        "hadoop_datanode",

        "hadoop_tasktracker"

      ],

      "instanceNum" : 3,

      "instanceType" : "SMALL",

      "storage" : {

        "type" : "local",

        "sizeGB" : 50

      },

      "cpuNum" : 1,

      "memCapacityMB" : 3748,

      "swapRatio" : 1.0,

      "haFlag" : "off",

      "configuration" : {

      }

    },

    {

      "name" : "client",

      "roles" : [

        "hadoop_client",

        "pig",

        "hive",

        "hive_server"

      ],

      "instanceNum" : 1,

      "instanceType" : "SMALL",

      "storage" : {

        "type" : "shared",

        "sizeGB" : 50

      },

      "cpuNum" : 1,

      "memCapacityMB" : 3748,

      "swapRatio" : 1.0,

      "haFlag" : "off",

      "configuration" : {

      }

    }

  ],

  "configuration" : {

  },

  "networkNames" : [ ]

}

 

今回は、create コマンドにパスワードを指定していないので、

Hadoop ノードの OS にログインするためのパスワードは自動生成されます。

 

自動生成されたパスワードは VM のコンソール画面に表示されるので・・・

bde-cli-cluster-create-02.png

 

ノードのゲスト OS にアクセスする場合は

いったん serengeti ユーザで SSH ログインして変更します。

これは面倒なので、パスワードは Hadoop クラスタ構築時に指定しておいた方がよさそうです。

[serengeti@192 ~]$ sudo /opt/serengeti/sbin/set-password -u

New password:  ★パスワードを入力する。

Retype password:

 

特にトポロジ指定していないので、

Hadoop ノードの topology.data は空ファイルになっています。

[serengeti@192 ~]$ cat /etc/hadoop/conf/topology.data

    ★何も記載なし。

[serengeti@192 ~]$ ls -l /etc/hadoop/conf/topology.data

-rw-r--r-- 1 root root 1 Oct  4 07:10 /etc/hadoop/conf/topology.data

 

 

今回の話は、マニュアルではこのあたりです。

VMware vSphere Big Data Extensions Command-Line Interface Guide

  > Creating Hadoop and HBase Clusters

Serengeti’s Default Hadoop Cluster Configuration

 

BDE については、こちらもどうぞ・・・

vSphere で Hadoop してみる。(Big Data Extentions) 第1回

vSphere BDE(Hadoop)と vSphere HA の関係について。

vSphere BDE の Hadoop 的なデータストア活用について。(Local / Shared)

vShere BDE の Hadoop 的なトポロジ認識について。(Rack awareness と HVE)

 

以上、Serengeti CLI で Hadoop クラスタを作成してみる話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>