Quantcast
Channel: にほんごVMware
Viewing all 495 articles
Browse latest View live

vCenter Log Insight のデプロイの続き。

$
0
0

前回のポストの続きで、Log Insight をセットアップしていきます。

vCenter Log Insight のデプロイ。

 

それでは、OVA ファイルのデプロイ後に起動した Log Insight のセットアップを進めます。

 

Web ブラウザでアクセスすると、セットアップ画面が表示されます。

  https://<Log Insight 仮想アプライアンスに設定したアドレス>

log-insight-setup01.png

 

「Deployment Type」は、最初の 1台目の Log Insight なので

「Start New Deployment」を選択します。

log-insight-setup02.png

 

Log Insight の Web UI にログインするための

admin ユーザのパスワードを設定します。

log-insight-setup03.png

 

ライセンスキーを入力して、「Add License Key」をクリックします。

log-insight-setup04.png

 

入力したライセンスキーの情報が表示されるので「Continue」。

log-insight-setup05.png

 

Log Insight からの情報通知先のメールアドレス設定、

カスタマエクスペリエンス向上プログラムへの送信などができますが、

今回はメールサーバもなく、インターネットにつながらない検証サーバなのでスキップします。

log-insight-setup06.png

 

時刻同期の設定は

デフォルトでは VMware の NTP サーバが 4台 設定されていますが、

今回は 自宅内の NTP サーバにしました。

log-insight-setup07.png

 

SMTP サーバの設定も、

今回はメールを使わないつもりなのでデフォルトのままです。

log-insight-setup08.png

 

Log Insight のセットアップが終わりました。

log-insight-setup09.png

 

まだ、ログ収集対象を何も登録していないので、

この流れで vCenter (と ESXi)を登録しておきます。

画面に表示される「vSphere Integration」のリンクをクリックすると、

そのまま vCenter 登録の画面に進めます。

log-insight-setup10.png

 

vSphere Integration の画面で、ログを収集する vCenter の情報を入力します。

  • vCenter のアドレス(hostname)
  • vCenter にログインするユーザ名
  • vCenter にログインするユーザのパスワード

この画面で「Advanced options」リンクをクリックすると

vCenter 管理下の ESXi を個別選択して登録することもできます。

log-insight-setup11.png

 

「Advanced options」をクリックすると、ESXi の一覧が表示されます。

ちなみに、デフォルトは ESXi をまとめて登録できる

「Configure all ESXi hosts」でした。

log-insight-setup12.png

 

「Test Connection」で接続テストをして、「Save」します。

log-insight-setup13.png

 

vCenter や ESXi の登録設定中です。

ESXi の Syslog 転送先設定も、自動的に Log Insight に変更されます。

log-insight-setup14.png

 

設定完了です。

log-insight-setup15.png

 

Dashboards を開くと、

ログがすでに収集されている様子が見られます。

log-insight-setup16.png

 

ESXi の Syslog 設定もちゃんと変更されてました。

※今回は PowerCLI で確認してます。

※「192.168.5.197」は、今回 Log Insight に設定した IP アドレスです。

PowerCLI C:\> Connect-VIServer vc55u1-1.vmad.local

PowerCLI C:\> Get-VMHost | select Name,Version,Build | sort Name | ft -AutoSize

 

Name                 Version Build

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

hv55-has1.vmad.local 5.5.0   1623387

hv55-has2.vmad.local 5.5.0   1623387

hv55-ivy1.vmad.local 5.5.0   1623387

hv55n1.vmad.local    5.5.0   1623387

hv55n2.vmad.local    5.5.0   1623387

hv55n3.vmad.local    5.5.0   1623387

hv55n4.vmad.local    5.5.0   1623387

 

PowerCLI C:\> Get-VMHost | select Name,{$_|Get-VMHostSysLogServer} | sort Name | ft -AutoSize

 

Name                 $_|Get-VMHostSysLogServer

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

hv55-has1.vmad.local udp://192.168.5.197:514

hv55-has2.vmad.local udp://192.168.5.197:514

hv55-ivy1.vmad.local udp://192.168.5.197:514

hv55n1.vmad.local    udp://192.168.5.197:514

hv55n2.vmad.local    udp://192.168.5.197:514

hv55n3.vmad.local    udp://192.168.5.197:514

hv55n4.vmad.local    udp://192.168.5.197:514

 

ちなみに、今回の Log Insight のバージョンは

2.0 GA (2.0.3-1879692)でした。

log-insight-setup17.png

 

ふと VMworld などの発表を見ていたら

どうやらクラウド管理製品群が vRealize Suite という名前になって、

vCenter Log Insight も

vRealize Log Insight という名前になるようです。

 

すでに vRealize な Datasheet も公開されていました。

http://www.vmware.com/files/pdf/products/vrealize-cmp/vmware_vrealize_cloud_management_platform.pdf

 

以上、Log Insight のセットアップでした。


vCenter Log Insight に VC 追加登録。

$
0
0

Log Insight には 複数台の vCenter Server を登録できます。

解析対象のログを増やしたかったので、vCenter を追加登録してみました。


Log Insight の Web UI にログインして、画面右上のアイコン →「Administration」を開き

左画面にある「vSphere」を開きます。

ここで「Add vCenter Server」をクリックします。

log-insight-vcadd-01.png


追加登録する vCenter の情報を入力して「Test Connection」でテストします。

そして「Save」で保存します。

log-insight-vcadd-02.png


設定変更が完了しました。

log-insight-vcadd-03.png

 

追加登録した vCenter の「View details」をクリックすると・・・

log-insight-vcadd-04.png


その vCenter で管理していた ESXi も登録されたことがわかります。

※ ESXi の Syslog 転送先が変更されます。

log-insight-vcadd-05.png

 

ダッシュボードを開いて

ホスト名などで検索すると、新たにログが追加されていることがわかります。

log-insight-vcadd-06.png

 

以上、地味な話ですが、Log Insight への vCenter 追加登録でした。

PowerCLI で接続中 vCenter の確認。($global:DefaultVIServers)

$
0
0

PowerCLI で、接続中の vCenter を確認したいことがあります。


実は $global:DefaultVIServer、$global:DefaultVIServers

という変数に、接続中 vCenter が含まれまれるので

それを参照するとよいのではないかと思いました。

 

まず、PowerCLI で vCenter に接続しておきます。

今回は、2台の vCenter に接続します。

 

※複数 vCenter への接続については下記もどうぞ。

PowerCLI から複数の vCenter に接続する方法。

PowerCLI> Connect-VIServer vc55u1-1.vmad.local, vc55u1-2.vmad.local

 

Name                           Port  User

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

vc55u1-1.vmad.local            443   VMAD\Administrator

vc55u1-2.vmad.local            443   VMAD\Administrator

 

このような感じで、何らかのオブジェクトの UID で

確認もできるのですが、結構微妙な感じです。

PowerCLI> Get-Datacenter | select Uid -Unique

 

Uid

---

/VIServer=vmad\administrator@vc55u1-1.vmad.local:443/Datacenter=Datacenter-datacenter-21/

/VIServer=vmad\administrator@vc55u1-2.vmad.local:443/Datacenter=Datacenter-datacenter-2/

 

PowerCLI> Get-Datacenter | select @{N="VIServer";E={$_.Uid -replace ".*@|:443.*",""}} -Unique

 

VIServer

--------

vc55u1-1.vmad.local

vc55u1-2.vmad.local

 

そんなとき

上記よりよさそうな確認方法を見つけました。

 

では、$global:DefaultVIServer と $global:DefaultVIServers

という変数を見てみます。

接続中の vCenter 情報が入っていて、

$global:DefaultVIServers の方が複数 vCenter に接続した時も使えて便利そうです。

PowerCLI> $global:DefaultVIServer

 

Name                           Port  User

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

vc55u1-2.vmad.local            443   VMAD\Administrator

 

PowerCLI> $global:DefaultVIServers

 

Name                           Port  User

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

vc55u1-2.vmad.local            443   VMAD\Administrator

vc55u1-1.vmad.local            443   VMAD\Administrator

 

下記のようなコマンドラインで、接続中の vCenter が確認できます。

2台の vCenter 5.5 に接続していることがわかります。

PowerCLI> $global:DefaultVIServers | select Name,IsConnected,Version,Build | ft -AutoSize

 

Name                IsConnected Version Build

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

vc55u1-2.vmad.local        True 5.5     1623101

vc55u1-1.vmad.local        True 5.5     1623101

 

ちなみに、ESXi にも PowerCLI 接続した場合も、

ちゃんと見分けることができます。

ためしに、ESXi 5.1 u1 に追加接続してみました。

PowerCLI> Connect-VIServer hv51-opt1.gowatana.lab

Name                           Port  User

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

hv51-opt1.gowatana.lab         443   root

 

ProductLine が

vpx だと vCenter で、embeddedEsx だと ESXi です。

PowerCLI> $global:DefaultVIServers | select Name,IsConnected,ProductLine,Version,Build | ft -AutoSize

 

Name                   IsConnected ProductLine Version Build

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

hv51-opt1.gowatana.lab        True embeddedEsx 5.1     1065491

vc55u1-2.vmad.local           True vpx         5.5     1623101

vc55u1-1.vmad.local           True vpx         5.5     1623101

 

作業手順書とかで「接続している vCenter が正しいことを確認して~」

みたいなときに便利そうな気がしました。

 

ちなみに、今回試した PowerCLI のバージョンはこれです。

PowerCLI> $version.UserFriendlyVersion

VMware vSphere PowerCLI 5.5 Release 2 build 1671586

 

以上、PowerCLI で接続中 vCenter を確認する方法でした。

PowerCLI で vCenter 設定情報を取得(簡易版)

$
0
0

以前、PowerCLI で vCenter の設定情報を取得するポストをしましたが・・・

vCenter 5.x の設定をPowerCLIで確認してみる


もっと、簡単なコマンドラインで取得できることに気づきました。

$global:DefaultVIServers と、Get-AdvancedSetting を使用します。

PowerCLI で接続中 vCenter の確認。($global:DefaultVIServers)

 

この1行だけでも、接続中 vCenter の設定情報が取得できます。

PowerCLI> $global:DefaultVIServers | Get-AdvancedSetting

 

最初に、vCenter に接続しておきます。

この例の環境では、独自の Active Directory を使用しているため

VMAD\Administrator というユーザで接続していますが、

administrator@vsphere.local (デフォルト管理者)などのユーザのほうが一般的かもしれません。

PowerCLI> Connect-VIServer vc55u1-1.vmad.local -User vmad\administrator -Password ******

 

Name                           Port  User

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

vc55u1-1.vmad.local            443   VMAD\Administrator

 

PowerCLI> $global:DefaultVIServers

 

Name                           Port  User

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

vc55u1-1.vmad.local            443   VMAD\Administrator


Get-AdvancedSetting では、下記のように情報取得できます。

※見やすくするために「select ~」も付けています。

PowerCLI> $global:DefaultVIServers | Get-AdvancedSetting | select Entity,Name,Value | ft -AutoSize

 

Entity              Name                            Value

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

vc55u1-1.vmad.local ads.checkInterval                1440

vc55u1-1.vmad.local ads.checkIntervalEnabled         True

vc55u1-1.vmad.local ads.maxFetch                     5000

vc55u1-1.vmad.local ads.maxFetchEnabled              True

vc55u1-1.vmad.local ads.timeout                        60

vc55u1-1.vmad.local AgentUpgrade.autoUpgradeAgents   True

vc55u1-1.vmad.local AgentUpgrade.checkPeriodSeconds    30

vc55u1-1.vmad.local alarms.upgraded                 False

vc55u1-1.vmad.local alarms.version                     30

vc55u1-1.vmad.local client.timeout.long               120

(以下省略)

 

設定項目が多いので、下記のように Export-Csv を使うと、

CSV ファイルに設定を保存できます。

※例では「C:\work\vc_advanced_setting.csv」というファイルに保存しています。

PowerCLI> $global:DefaultVIServers | Get-AdvancedSetting | select Entity,Name,Value,Description | Export-Csv -Encoding utf8 -NoTypeInformation -Path C:\work\vc_advanced_setting.csv

PowerCLI> cat C:\work\vc_advanced_setting.csv

"Entity","Name","Value","Description"

"vc55u1-1.vmad.local","ads.checkInterval","1440","User validation interval"

"vc55u1-1.vmad.local","ads.checkIntervalEnabled","True","Enable user validation"

"vc55u1-1.vmad.local","ads.maxFetch","5000","Maximum users to retrieve"

"vc55u1-1.vmad.local","ads.maxFetchEnabled","True","Enable user retrieve limits"

"vc55u1-1.vmad.local","ads.timeout","60","User retrieve timeout"

"vc55u1-1.vmad.local","AgentUpgrade.autoUpgradeAgents","True","vCenter Agent Upgrade"

"vc55u1-1.vmad.local","AgentUpgrade.checkPeriodSeconds","30","Host upgrade check frequency"

"vc55u1-1.vmad.local","alarms.upgraded","False","Default alarms have been created"

"vc55u1-1.vmad.local","alarms.version","30","Default alarm upgrade version"

(以下省略)


下記のように、個別のパラメータだけに絞って

確認したい設定項目だけを表示することもできます。

PowerCLI> $global:DefaultVIServers | Get-AdvancedSetting | select Entity,Name,Value,Description | where {$_.Name -like "event.*"} | ft -AutoSize

 

Entity              Name                Value Description

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

vc55u1-1.vmad.local event.maxAge          180 Maximum event age

vc55u1-1.vmad.local event.maxAgeEnabled False Enable event cleanup

 

PowerCLI> $global:DefaultVIServers | Get-AdvancedSetting | select Entity,Name,Value,Description | where {$_.Name -eq "event.maxAge"} | ft -AutoSize

 

Entity              Name         Value Description

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

vc55u1-1.vmad.local event.maxAge   180 Maximum event age

 

ちなみに、今回も PowerCLI バージョンは 5.5 R2 でした。

PowerCLI> $version.UserFriendlyVersion

VMware vSphere PowerCLI 5.5 Release 2 build 1671586

 

以上です。PowerCLI での vCenter 設定情報取得についてでした。

vCenter Log Insight を VCOPS と統合してみる。

$
0
0

Log Insight と、

vCenter Operations Manager(VCOPS)が統合できるようなので

ためしに統合してみました。

 

VCOPS はバージョン 5.8.1 、

Log Insight は バージョン 2.0.3 です。

 

ちなみに VCOPS の admin UI を見ると、統合前は下記のように

「vCenter Log Insight は統合されていません。」 となっています。

vcops-logInsight01.png

 

Log Insight を VCOPS に統合する設定


VCOPS との統合は、Log Insight 側で設定します。

vcops-logInsight02.png

 

Log Insight の Web UI 画面右上から「Administration」を開きます。

vcops-logInsight03.png

 

右画面にある「vCenter Operations Manager」を開いて、

VCOPS のアドレスと、

標準 UI にログインできるユーザ(例では admin)とパスワードを入力します。

 

「Enable alerts integration」と

「Enable launch in context」は

どちらもチェックを ON にしておきます。


「Test Connection」をクリックして「Test successful」 になることを確認したら

「Save」します。

vcops-logInsight04.png


設定が終わるまで、数分待ちます。

vcops-logInsight05.png

 

設定が終わりました。

vcops-logInsight06.png

 

VCOPS と Log Insight が統合されたことを確認

 

VCOPS の admin UI で確認してみると・・・

vcops-logInsight07.png

 

「登録」タブの一番下に、

Log Insight サーバのアドレスが表示されるようになります。

vcops-logInsight08.png

 

VCOPS の標準 UI では、

「アクション」メニューに

「Search for Logs in vCenter Log Insight...」が追加されます。

これをクリックすると、VCOPS で選択されているオブジェクト

検索された状態の Log Insight が開かれます。

※下記の例だと、hv55n2.vmad.local という ESXi が検索された状態で表示されます。

vcops-logInsight09.png

 

VCOPS でアラートが検知されている場合は、

そのアラート(例では「vSphere HA detected ~」)を選択して

「外部アプリケーションで開く」ボタンをクリックしても

同様に Log Insight 開くことができます。

vcops-logInsight10.png

 

開かれる Log Insight は、こんな感じです。

「Interactive Analytics」画面が、

そのオブジェクトを検索した状態で表示されます。

表示された結果から、さらにログを絞り込んだりできます・・・

vcops-logInsight11.png

 

逆に、Log Insight が収集したログ内容をもとに

VCOPS にむけてアラート発報したりもできるようです。

 

こちらもどうぞ・・・

vCenter Log Insight のデプロイ。

vCenter Log Insight のデプロイの続き。

vCenter Log Insight に VC 追加登録。

 

以上、VCOPS と Log Insight を連携させてみる話でした。

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

$
0
0

Hadoop 検証環境がほしくなり、

せっかくなので vSphere Big Data Extentions(BDE)を試してみようと思います。


vSphere Big Data Extensions

http://www.vmware.com/jp/products/big-data-extensions

 

BDE は、vSphere 環境で

Hadoop クラスタの自動プロビジョニングや VM 追加などができるソリューションです。

GUI(vSphere Web Client のプラグイン)と

CLI(serengeti)どちらでも、Hadoop 環境を構築できます。

ちなみに、これまで serengeti というプロジェクトで取り組まれていたもので

その名前が残っています。

 

この機能は、OVF 形式(.ova ファイル)で提供されていて、

vCenter から vApp としてデプロイできます。

 

BDE の vApp は、2つの VM を含みます。

この BDE で Hadoop クラスタを構成する場合は

検証目的でも Hadoop 環境にそこそこマシンスペックが高くないと厳しいと思いますが

この vApp 自体にはそんなにリソースを必要としません。

  • management-server
    Hadoop クラスタの自動プロビジョニングや、
    クラスタへのノード追加、自動削除をする、BDEの管理サーバです。
    SSH でログインして、CLI(serengeti という名前)を実行することもできます。
  • hadoop-template
    Hadoop 関連のサーバを自動構成する時に使用するテンプレート用 VM です
    vApp に含まれますが、普段は起動しない VM です。

 

それでは、BDE をデプロイしてみます。

今回は、vSphere 5.5 u1 の環境を使用しています。

 

まず、Web Client で vCenter にログインして、

インベントリのどこかに「OVF テンプレートのデプロイ」 をします。

vApp なので、一応 DRS クラスタにデプロイしています。

bde-deploy01.png

 

BDE の OVF ファイルを指定します。

  • VMware-BigDataExtensions-2.0.0.951-1885370_OVF10.ova

今回は、BDE 2.0 を使用しています。評価版は MyVMware からダウンロードできます。

bde-deploy02.png

 

BDE の vApp は、

シックプロビジョニングの場合、デプロイに 40GB 以上のディスク容量が必要です。

シン プロビジョニングであれば、10GB に収まるようです。(初期だと 7.6GB)

これとはべつに、Hadoop クラスタの容量が必要になります。

bde-deploy03.png

 

EULA を「承諾」して「次へ」をクリック。

bde-deploy04.png

 

vApp の名前を変更できます。デフォルトだと

「vSphere Big Data Extensions Server」です。

bde-deploy05.png

 

デプロイ先のデータストアを指定します。

今回は データストアの空き容量があまりなく、

検証環境なので、今回は「Thin Provision」(シン プロビジョニング)にしました。

bde-deploy06.png

 

BDE の vApp に含まれる、

管理サーバが使用するネットワーク(ポートグループ)を指定します。

Network 1 は IPv4、Network 2 は IPv6 で使用するようです。

bde-deploy07.png

 

BDE の管理サーバに対する設定を入力します。

  • 「Initialize Resources?」のチェックは ON にしておきます。
  • VCSSO(vCenter SSO)の Lookup Service の URL は、
    ホスト名の部分を VCSSOのアドレスに書き換えます。
    VCSSOは、だいたいvCenter と一緒だと思うので、
    ここでは、vCenter のアドレスを指定することが多いでしょう。
  • 参照する DNS サーバのアドレスもここで指定します。

まだこの画面で入力します・・・

bde-deploy08.png

 

管理サーバのネットワーク設定も入力します。

  • ネットワーク設定のタイプ(Static か、DHCP か)
  • IP アドレス
  • ネットマスク
  • デフォルトゲートウェイ

入力したら「次へ」。

bde-deploy09.png

 

ちなみに、上記の画面の「~ Network 2 Settings」では IPv6 の設定も出来ますが、

今回は IPv6 を使用しないのでデフォルトのままにしています。

bde-deploy10.png

 

「次へ」・・・

bde-deploy11.png

 

確認画面が表示されるので、内容を確認して「終了」すると

OVF のデプロイ処理が開始されます。

bde-deploy12.png

 

OVF のデプロイ処理が完了すると、

下記のように vApp が作成されています。

VM が 2つ含まれていることもわかります。

bde-deploy13.png

 

vApp を「パワーオン」します。

bde-deploy14.png

 

BDE の管理サーバ(management-server)だけ起動し

テンプレート用 VM(hadoop-template) は起動されません。

bde-deploy15.png

 

以上、BDE のデプロイでした。セットアップはつづく・・・

vSphere で Hadoop してみる。BDE 第2回

$
0
0

前回につづき、

vSphere Big Data Extensions(BDE)をセットアップしていきます。

 

前回はこちら・・・

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

 

まずは、BDE の vApp を起動します。

bde-setup01.png

 

vApp に含まれる VM のうち、

BDE 管理サーバ(management-server)だけがパワーオンされます。

bde-setup02.png

 

management-server をコンソールで開くと

初期パスワードが表示されているので、

このまま Enter キーなどを押して serengeti ユーザでログインして

すぐ下に表示されているコマンドラインでパスワードを変更します。

※ちなみに、SSH で ログインしてパスワード変更することもできます。

bde-setup03.png

 

パスワード変更は、こんな感じです。

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

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

Retype password: ★もう一度パスワードを入力する。

[serengeti@192 ~]$

 

Web Client に BDE のプラグインを登録します。

下記の URL にアクセスすると、登録画面が表示されます。

    https://<management-server の IP アドレス>:8443/register-plugin/

 

「Install」を選択して、vCenter のアドレスと

vCenter にログインできる管理者ユーザ名 / パスワード を入力します。

 

「Big Data Extentions Package URL」の

IP アドレスの部分は、起動した BDE 管理サーバのものです。

 

入力したら「Submit」します。

bde-setup04.png

 

「Installation successful! ~」と表示されます。

bde-setup05.png

 

Web Client にログインしなおすと・・・

bde-setup06.png

 

BDE のプラグインが登録されています。

アイコンをクリックして、BDE の画面を開きます。

bde-setup07.png

 

BDE の管理サーバに接続します。

「Geting Start」のタブで

「Connect to a Serengeti Server」をクリックします。

※Serengeti Server は、BDE 管理サーバのことです。

bde-setup08.png

 

インベントリから、management-server を選択して「OK」をクリックします。

bde-setup09.png

 

証明書の警告が出ますが「OK」をクリックします。

bde-setup10.png

 

BDE 管理サーバが登録されて、

Big Data Cluster 作成などができるようになりました。

これで、GUI (この Web Client)から Hadoop クラスタがデプロイできるようになります。

bde-setup11.png

 

「Summary」タブでも、

BDE 管理サーバが登録されたことがわかります。

bde-setup12.png

 

ちなみに、BDE 管理サーバに SSH でログインすると

CLI で Hadoop クラスタをデプロイすることもできます。

 

日本語環境の都合でバックスラッシュが「\」になって

CLI ログイン時の serengeti のロゴがうまく表示できてませんが・・・

bde-setup13.png

 

以上、BDE のセットアップでした。まだつづく・・・

vSphere で Hadoop してみる。BDE 第3回

$
0
0

今回から、

vSphere Big Data Extensions(BDE)で

vSphere 環境に Hadoop クラスタを作成してみます。

 

これまでの流れ

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

vSphere で Hadoop してみる。BDE 第2回

 

今回は BDE で Hadoop クラスタを作成する準備として下記を実施します。

  • BDE で使用するストレージの指定
  • BDE で使用するネットワークの指定
  • Hadoop クラスタで利用するリソースプールの作成

 

BDE でリソースの指定は、

vSphere Web Client の BDE プラグインの画面で設定します。

 

Web Client にログインしたら、「ホーム」で

「Big Data Extentions」を開きます。

bde-res-setting-01.png

 

BDE の画面が開くので「Resources」を開きます。

bde-res-setting-02.png

 

BDE で使用するストレージの指定


BDE でストレージを利用するには、

すでに vSphere 環境で作成してあるデータストアを指定します。


「Invenory Lists」配下の「Datastores」を開いて「+」ボタンをクリックして下記を設定します。

  • BDE でのデータストアの名前。データストアに BDE 独自の名前を設定します。
  • Type → データストアのタイプを指定します。Local か Shared。
  • 使用するデータストアのチェックを ON にします。

bde-res-setting-03.png

 

指定したデータストアは、

下記のように表示されるようになります。

bde-res-setting-04.png

 

BDE で使用するネットワークの指定


BDE でストレージを利用するには、

すでに vSphere 環境で作成してあるポートグループを指定します。

vSS の標準ポートグループでも、vDS の分散ポートグループでも

どちらでも指定できます。


「Invenory Lists」配下の「Networks」を開いて「+」ボタンをクリックして下記を設定します。

  • BDE でのネットワークの名前。ポートグループに BDE 独自の名前を設定します。。
  • 使用するデータストアのチェックを選択する。
  • IP アドレス設定を、DHCP か、静的に指定かを選択します。

 

ちなみに、今回はもともと DHCP サーバがいるネットワークセグメントの

ポートグループを使用するつもりなので、DHCP を選択しています。

bde-res-setting-05.png

 

指定したネットワークは、

下記のように表示されるようになります。

bde-res-setting-06.png

 

Hadoop クラスタで利用するリソースプールの作成

 

BDE での Hadoop クラスタを作成先として

リソースプールを作成しておきます。

これは、BDE 独自のリソースではなく

普通に vSphere 環境で作成できる一般的な「リソースプール」のことです。

 

Web Client の「ホストおよびクラスタ」インベントリで、

vSphere のクラスタに対して「新規リソースプール」を作成します。

bde-res-setting-07.png

 

今回のリソースプールには、リソースプール名だけ指定しておきます。

ちなみにリソースプールで CPU、メモリのリソース制御設定をした場合は、

BDE で作成する Hadoop クラスタにも反映されるはずです。

bde-res-setting-08.png

 

リソースプールが作成されました。

この時点では VM 等が何も含まれていません。

bde-res-setting-09.png

 

このあとは BDE での

Hadoop クラスタ作成に続く・・・


vSphere で Hadoop してみる。BDE 第4回

$
0
0

今回は、前回までの流れをひきついで

vSphere Big Data Extensions(BDE)で Hadoop クラスタを作成してみます。


Web ブラウザからでも、CLI でもクラスタ作成することができますが、

今回は Web ブラウザ(BDE の vSphere Web Client プラグイン)から実施します。

この Web Client は、普段 vCenter にアクセスする Web Client と同じものです。

 

これまでの BDE ポストはこちら。

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

vSphere で Hadoop してみる。BDE 第2回

vSphere で Hadoop してみる。BDE 第3回

 

BDE でデプロイする Hadoop ディストリビューションについて

 

BDE には、デフォルトでは

Apache の コミュニティ版 の Hadoop 1.2 と bigtop が

ディストリビューションとして登録されています。


BDE に登録されているディストリビューションは、

BDE の vSphere Web Client プラグインの「Hadoop Distributions」から確認できます。

bde-new-cluster-01.png


他にもいくつかの Hadoop ディストリビューション(CDH や MapR など)

に対応していて、追加するとこの画面に表示されるようになります。

 

マニュアルでは下記のあたりを参照・・・

VMware vSphere Big Data Extensions Administrator's and User's Guide

Hadoop Feature Support By Distribution

http://pubs.vmware.com/bde-2/topic/com.vmware.bigdataextensions.admin.doc/GUID-2D9092BA-771B-4FCC-AE5C-72761720D303.html

 

BDE での Hadoop クラスタ自動構築

 

それでは、Hadoop クラスタを作成してみます。

「ホーム」から「Big Data Extentions」の画面を開いて、

「Big Data Clusters」→「Getting Started」→

「Create a New Big Data Cluster」をクリックします。

bde-new-cluster-02.png

 

Name and node group 画面で、下記を指定します。

  • Name
    BDE で独自に使用するクラスタの名前を指定します。
  • Hadoop distribution
    使用する Hadoop ディストリビューションを選択します。
    今回はコミュニティ版 Hadoop を使用します。
  • Deployment type
    Hadoop をどのようなクラスタ構成にするか、HBbase クラスタにするかなど。
    この選択内容によって、すぐ下に表示されている Node group で
    設定できるものが変化します。

bde-new-cluster-03.png

 

Hadoop クラスタのノード構成を決めます。今回のように

Deployment type で「Basic Hadoop Cluster」を指定している場合は

ノードグループは下記の4つになります。

  • DataMaster Node Group(HDFS のマスタになるサーバ)
  • ComputeMaster Node Group(MapReduce のマスタになるサーバ)
  • Worker Node Group(HDFS と MapReduce のスレーブになるサーバ)
  • Client Node Group(Hadoop に処理をさせるクライアント。なくてもよい)

 

それぞれのグループで、仮想マシン数を指定し、

「Resource template」で割り当てるリソースを指定します。

Large、Medium...といったあらかじめ用意されたテンプレートがありますが、

今回は出来るだけ小規模にしたいので、すべて「Customize」を指定しました。


DataMaster と ComputeMaster は下記が最小リソース構成です。

「Basic Hadoop Cluster」を指定する場合は、

DataMaster、ComputeMaster どちらも 1台だけになります。

bde-new-cluster-04.png

 

Worker と Client は下記が最小リソース構成のようです。

Worker は、せっかくなので2台にしました。(デフォルトは3台)

bde-new-cluster-05.png

 

「Resource template」で「Customize」を選択する場合は、

下記のような指定ができます。

  • vCPU 数
  • メモリ容量
  • ストレージ容量
    各サーバに、この容量の VMDK ファイルが 自動追加されます。
  • Datastore type
    事前に BDE で使用できるようにリソース登録したデータストアのうち、
    Local、Shared どちらとして定義したものを使用するか指定します。

bde-new-cluster-05a.png

 

ちなみに、最小値よりも小さくしようとするとエラーになります。

メモリなどは最小値自体が結構大きいので、

検証目的で利用する場合など、物理サーバのスペックが低い環境では要注意だと思います。

bde-new-cluster-05b.png

 

Hadoop のトポロジと、クローンされた VM を接続するネットワークを指定します。

トポロジは、BDE デプロイ直後は「HOST_AS_RACK」と「NONE」が選択できます。

※これは MapReduce や HDFS の動作に影響を与えます。詳しくは別途…(ないかも)


ネットワークは、BDE に事前登録してあるポートグループから指定できます。

ここで選択する名前は、通常のポートグループ名でははなく

BDE にリソース登録した時に指定した名前です。

※Customize にチェックを入れると、もう少し細かく使用ネットワークを指定できます。

bde-new-cluster-06.png

 

Hadoop クラスタの作成先となるリソースプールを指定します。

ここで指定するリソースプールは、事前に作成しておく必要があります。

このリソースプールの下に、さらに子リソースプールが自動作成されて VM がクローンされます。

bde-new-cluster-07.png

 

自動クローンされる VM の、ゲスト OS の root パスワードを指定します。

今回は、「Set password」を指定します。

デプロイされた Hadoop クラスタに含まれるゲスト OS の root ユーザには

自動的にこのパスワードがセットされます。

ちなみに、デプロイされるゲスト OS は CentOS 6.4 64bit です。

bde-new-cluster-08.png

 

設定内容が表示されるので、確認して「終了」をクリックします。

bde-new-cluster-09.png

 

Hadoop クラスタの自動構築が開始されます。

bde-new-cluster-10.png

 

vCenter に vSphere Client で接続してみると、

リソースプール作成や VM をクローンしている様子が見やすいと思います。

bde-new-cluster-11.png

 

処理がすべて完了すると、

自動構築したクラスタのすべてのゲスト OS が自動設定されて、VM が起動された状態になります。

bde-new-cluster-12.png

 

クラスタ名をダブルクリックして開くと、

今回の Hadoop クラスタ(hdp_cluster01)には5台の VM が含まれることがわかります。

VM 名は自動設定されたものです。

bde-new-cluster-13.png

 

「ホストおよびクラスタ」インベントリから見ると、このような感じになります。

bde-new-cluster-14.png

 

ちなみに、このクラスタ自動構築処理は複数台の VM をクローンしたりするので、

結構時間がかかります。(数時間かかることがあります)

Nested ESXi 環境などで Hadoop クラスタを 1台の HDD にすべて乗せたりする場合は

半日くらいかかると思っておいた方がよいです。

 

以上、Web Client + BDE での Hadoop クラスタ自動作成でした。

まだまだ続く・・・

vSphere で Hadoop してみる。BDE 第5回

$
0
0

今回は、前回までに vSphere Big Data Extensions(BDE)で作成した

Hadoop 環境を、もう少し見てみようと思います。

そして、かるく WordCount してみます。


これまでの流れは・・・

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

vSphere で Hadoop してみる。BDE 第2回

vSphere で Hadoop してみる。BDE 第3回

vSphere で Hadoop してみる。BDE 第4回


BDE で構築した Hadoop 環境について


Client ノードとして作成された VM に SSH でログインして確認してみます。

※Client 以外の、マスタ / スレーブ ノードも同様の構成になります。

bde-trywc-01.png

 

Hadoop クラスタに作成されたノードは、

CentOS 6.4 64bit です。

[root@192 ~]# cat /etc/centos-release

CentOS release 6.4 (Final)

[root@192 ~]# uname -r

2.6.32-358.el6.x86_64

 

IP アドレスが、そのままホスト名になっています。

[root@192 ~]# uname -n

192.168.5.124

 

Java は、Oracle (Sun)の HotSpot 1.7.0_51 でした。

[root@192 ~]# /usr/java/default/bin/java -version

java version "1.7.0_51"

Java(TM) SE Runtime Environment (build 1.7.0_51-b13)

Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

 

Apache Hadoop のバージョンは、1.2.1 です。

[root@192 ~]# hadoop version

Hadoop 1.2.1

Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152

Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013

From source with checksum 6923c86528809c4e7e6f493b6b413a9a

This command was run using /usr/lib/hadoop-1.2.1/hadoop-core-1.2.1.jar

 

HDFS のマスターノード(NameNode)と

MapReduce のマスターノード(JobTracker)が

自動的に設定ファイルに記載されています。

※今回の IP アドレスは、DHCP で設定されたものです。

[root@192 ~]# grep -A1 "fs.default.name" /etc/hadoop/conf/core-site.xml

  <name>fs.default.name</name>

  <value>hdfs://192.168.5.128:8020</value>

[root@192 ~]# grep -A1 "mapred.job.tracker<" /etc/hadoop/conf/mapred-site.xml

  <name>mapred.job.tracker</name>

  <value>192.168.5.125:8021</value>

 

HDFS の操作をしてみる。

 

Client ノードから NameNode の URL を指定して HDFS を見てみます。

[root@192 ~]# hadoop fs -fs hdfs://192.168.5.128:8020 -ls /

Found 3 items

drwxrwxr-x   - hdfs hadoop          0 2014-09-17 23:11 /hadoop

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:14 /tmp

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:12 /user

[root@192 ~]# hadoop fs -fs hdfs://192.168.5.128:8020 -ls /tmp

Found 2 items

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:14 /tmp/hadoop-mapred

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:13 /tmp/hadoop-yarn

 

デフォルトの NameNode が設定してあるので、「-fs hdfs://~」は

省略しても HDFS にアクセスできます。

※ついでに HDFS にディレクトリを作成しています。

[root@192 ~]# hadoop fs -ls /tmp

Found 2 items

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:14 /tmp/hadoop-mapred

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:13 /tmp/hadoop-yarn

[root@192 ~]# hadoop fs -mkdir /tmp/test

[root@192 ~]# hadoop fs -mkdir /tmp/test/input

[root@192 ~]# hadoop fs -chmod -R 777 /tmp/test

[root@192 ~]# hadoop fs -lsr /tmp/test

drwxrwxrwx   - root hadoop          0 2014-09-21 23:22 /tmp/test/input

 

MapReduce ジョブ(サンプルの WordCount)を実行してみようと思うので、

HDFS にファイルをアップロードしておきます。

今回は、hadoop コマンドのヘルプを WordCount してみます。

[root@192 ~]# hadoop help > sample.txt

[root@192 ~]# head sample.txt

Usage: hadoop [--config confdir] COMMAND

where COMMAND is one of:

  namenode -format     format the DFS filesystem

  secondarynamenode    run the DFS secondary namenode

  namenode             run the DFS namenode

  datanode             run a DFS datanode

  dfsadmin             run a DFS admin client

  mradmin              run a Map-Reduce admin client

  fsck                 run a DFS filesystem checking utility

  fs                   run a generic filesystem user client

[root@192 ~]# hadoop fs -put ./sample.txt /tmp/test/input/

[root@192 ~]# hadoop fs -ls /tmp/test/input

Found 1 items

-rw-r--r--   3 root hadoop       1567 2014-09-21 23:37 /tmp/test/input/sample.txt

 

ちなみに、Web Client の BDE プラグインから、

おなじみの HDFS ステータス確認のページを表示することができます。

クラスタを右クリックして 「Open HDFS Status Page」をクリックすると・・・

bde-trywc-02.png

 

Web ブラウザで HDFS の NameNode のページが開きます。

bde-trywc-03.png

 

MapReduce ジョブの実行

 

サンプルアプリケーションの WordCount を実行してみます。

Client ノードに配置されている、

hadoop-examples-1.2.1.jar を使用します。

[root@192 ~]# ls -l /usr/lib/hadoop-1.2.1/hadoop-examples-1.2.1.jar

-rw-rw-r-- 1 hdfs hadoop 142726 Jul 22  2013 /usr/lib/hadoop-1.2.1/hadoop-examples-1.2.1.jar

 

それでは、MapResuce してみます。

先ほど、HDFS にアップロードした hadoop コマンドのヘルプを WordCount してみます。

[root@192 ~]# hadoop jar /usr/lib/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount /tmp/test/input /tmp/test/output

14/09/21 23:38:47 INFO input.FileInputFormat: Total input paths to process : 1

14/09/21 23:38:47 INFO util.NativeCodeLoader: Loaded the native-hadoop library

14/09/21 23:38:47 WARN snappy.LoadSnappy: Snappy native library not loaded

14/09/21 23:38:49 INFO mapred.JobClient: Running job: job_201409172315_0006

14/09/21 23:38:50 INFO mapred.JobClient:  map 0% reduce 0%

14/09/21 23:39:27 INFO mapred.JobClient:  map 100% reduce 0%

14/09/21 23:39:49 INFO mapred.JobClient:  map 100% reduce 100%

14/09/21 23:39:50 INFO mapred.JobClient: Job complete: job_201409172315_0006

14/09/21 23:39:50 INFO mapred.JobClient: Counters: 29

14/09/21 23:39:50 INFO mapred.JobClient:   Job Counters

14/09/21 23:39:50 INFO mapred.JobClient:     Launched reduce tasks=1

14/09/21 23:39:50 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=28592

14/09/21 23:39:50 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0

14/09/21 23:39:50 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0

14/09/21 23:39:50 INFO mapred.JobClient:     Launched map tasks=1

14/09/21 23:39:50 INFO mapred.JobClient:     Data-local map tasks=1

14/09/21 23:39:50 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=22396

14/09/21 23:39:50 INFO mapred.JobClient:   File Output Format Counters

14/09/21 23:39:50 INFO mapred.JobClient:     Bytes Written=1081

14/09/21 23:39:50 INFO mapred.JobClient:   FileSystemCounters

14/09/21 23:39:50 INFO mapred.JobClient:     FILE_BYTES_READ=1552

14/09/21 23:39:50 INFO mapred.JobClient:     HDFS_BYTES_READ=1683

14/09/21 23:39:50 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=139783

14/09/21 23:39:50 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=1081

14/09/21 23:39:50 INFO mapred.JobClient:   File Input Format Counters

14/09/21 23:39:50 INFO mapred.JobClient:     Bytes Read=1567

14/09/21 23:39:50 INFO mapred.JobClient:   Map-Reduce Framework

14/09/21 23:39:50 INFO mapred.JobClient:     Map output materialized bytes=1552

14/09/21 23:39:50 INFO mapred.JobClient:     Map input records=30

14/09/21 23:39:50 INFO mapred.JobClient:     Reduce shuffle bytes=1552

14/09/21 23:39:50 INFO mapred.JobClient:     Spilled Records=234

14/09/21 23:39:50 INFO mapred.JobClient:     Map output bytes=1999

14/09/21 23:39:50 INFO mapred.JobClient:     Total committed heap usage (bytes)=200806400

14/09/21 23:39:50 INFO mapred.JobClient:     CPU time spent (ms)=4120

14/09/21 23:39:50 INFO mapred.JobClient:     Combine input records=192

14/09/21 23:39:50 INFO mapred.JobClient:     SPLIT_RAW_BYTES=116

14/09/21 23:39:50 INFO mapred.JobClient:     Reduce input records=117

14/09/21 23:39:50 INFO mapred.JobClient:     Reduce input groups=117

14/09/21 23:39:50 INFO mapred.JobClient:     Combine output records=117

14/09/21 23:39:50 INFO mapred.JobClient:     Physical memory (bytes) snapshot=270094336

14/09/21 23:39:50 INFO mapred.JobClient:     Reduce output records=117

14/09/21 23:39:50 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=1282797568

14/09/21 23:39:50 INFO mapred.JobClient:     Map output records=192

 

ちなみに、Web Client の BDE プラグインから、

おなじみの MapReduce ステータス確認のページも表示することができます。

クラスタを右クリック → 「Open MapReduce Status Page」をクリックすると・・・

bde-trywc-04.png

 

Web ブラウザで Map/Reduce Administration ページが開きます。

bde-trywc-05.png

 

Running Jobs のあたりで、実行中のジョブを確認できたりします。

bde-trywc-06.png

 

ジョブが終了すると、ワードをカウントしたファイルが作成されます。

[root@192 ~]# hadoop fs -ls /tmp/test/output

Found 3 items

-rw-r--r--   3 root hadoop          0 2014-09-21 23:39 /tmp/test/output/_SUCCESS

drwxrwxrwx   - root hadoop          0 2014-09-21 23:38 /tmp/test/output/_logs

-rw-r--r--   3 root hadoop       1081 2014-09-21 23:39 /tmp/test/output/part-r-00000

[root@192 ~]# hadoop fs -get /tmp/test/output/part-r-00000 ./sample_wc.txt

[root@192 ~]# wc -l sample_wc.txt

117 sample_wc.txt  ★117ワードありました。

[root@192 ~]# head -n 20 sample_wc.txt

-archiveName    1

-format 1

-p      1

2       1

<dest>  1

<desturl>       2

<jar>   1

<parent 1

<src>*  1

<srcurl>        2

CLASSNAME       2

COMMAND 2

DFS     6

DistCp  1

Hadoop  1

JobQueues       1

Map-Reduce      1

MapReduce       3

Most    1

NAME    1

 

ちなみに、ヘルプには run というワードが多いですね。

[root@192 ~]# sort -k2 -n -r sample_wc.txt | head -n 20

run     14

the     12

a       12

DFS     6

namenode        4

job     4

version 3

jar     3

filesystem      3

client  3

MapReduce       3

utility 2

to      2

print   2

or      2

node    2

hadoop  2

get     2

fsimage 2

file    2

 

以上、BDE で構築した Hadoop 環境についてでした。

たぶん、まだ続けます・・・

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

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

$
0
0

今回も、VMware と Hadoop の話です。

 

vSphere Big Data Extensions(BDE) のこれまでのポスト

PowerCLIでCPUアフィニティ設定(ESXi 5.x)

vSphere で Hadoop してみる。BDE 第2回

vSphere で Hadoop してみる。BDE 第3回

vSphere で Hadoop してみる。BDE 第4回

vSphere で Hadoop してみる。BDE 第5回

 

今回は、Serengeti CLI の話です。

BDE には、serengeti という CLI が用意されていて、

BDE の管理サーバ(management-server VM)に SSH でアクセスして

serengeti」 と実行すると、起動できます。

bde-serengeti-01.png

テキストだとこんな感じです。

[serengeti@192 ~]$ serengeti

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

*  _____                                 _   _  *

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

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

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

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

*                             |___/             *

*                                               *

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

Version: 2.0.0

Welcome to Serengeti CLI

serengeti>

 

BDE 管理サーバのサービス(localhost:8443)に接続することで

vSphere BDE 環境の Hadoop を確認したり、操作したりすることができます。

※ここのログインは、Web Client と同様に、vCenter SSO の認証を利用しています。

serengeti>connect --host localhost:8443

Enter the username: vmad\administrator ※vCenterSSOの認証でログイン

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

Connected

 

たとえば、前回までに作成した Hadoop クラスタを表示してみます。

serengeti>cluster list --name hdp_cluster01

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

 

  CLUSTER NAME              :  hdp_cluster01

  AGENT VERSION             :  2.0.0

  DISTRO                    :  apache

  TOPOLOGY                  :  HOST_AS_RACK

  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)

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

  DataMaster     [hadoop_namenode]                        1         1    3748     SHARED  10

  ComputeMaster  [hadoop_jobtracker]                      1         1    3748     SHARED  10

  Worker         [hadoop_datanode, hadoop_tasktracker]    2         1    3748     SHARED  20

  Client         [hadoop_client, pig, hive, hive_server]  1         1    3748     SHARED  20

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

 

実際にターミナルで表示する場合はこのようになります。

bde-serengeti-02.png

 

このクラスタは、BDE の Web Client プラグインから下記のように見えていたものです。

bde-new-cluster-12.png

 

BDE にリソースとして登録した、データストアや、ポートグループなどを

表示することもできます。

serengeti>datastore list

  NAME              TYPE    REG EX

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

  defaultDSLocal    LOCAL   FALSE

  ds_nfs_hadoop_01  SHARED  FALSE

 

serengeti>network list

  NAME            PORTGROUP       TYPE  IP_RANGES  DNS1  DNS2  GATEWAY  MASK

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

  defaultNetwork  pg-vlan-0005    dhcp

  bde-vlan-0005   dvpg-vlan-0005  dhcp

 

クラスタに接続して操作することもできます。

ためしに、BDE で構築した hdp_cluster01 というクラスタの HDFS 領域を参照してみます。

serengeti>cluster target --name hdp_cluster01

serengeti>cfg info

Hadoop [1.2.1 rev.1503152][fs=hdfs://192.168.5.128:8020][jt=192.168.5.125:8021]

serengeti>fs ls /tmp

Found 3 items

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:14 /tmp/hadoop-mapred

drwxrwxrwx   - hdfs hadoop          0 2014-09-17 23:13 /tmp/hadoop-yarn

drwxrwxrwx   - root hadoop          0 2014-09-21 23:38 /tmp/test

serengeti>fs ls /tmp/test

Found 2 items

drwxrwxrwx   - root hadoop          0 2014-09-21 23:37 /tmp/test/input

drwxrwxrwx   - root hadoop          0 2014-09-21 23:39 /tmp/test/output

 

serengeti CLI のヘルプは、下記のような感じです。

serengeti>help

* ! - Allows execution of operating system (OS) commands

* // - Inline comment markers (start of line only)

* ; - Inline comment markers (start of line only)

* cfg fs - Sets the Hadoop namenode - can be 'local' or <namenode:port>

* cfg info - Returns basic info about the Hadoop configuration

* cfg jt - Sets the Hadoop job tracker - can be 'local' or <jobtracker:port>

* cfg load - Loads the Hadoop configuration from the given resource

* cfg props get - Returns the value of the given Hadoop property

* cfg props list - Returns (all) the Hadoop properties

* cfg props set - Sets the value for the given Hadoop property - <name=value>

* clear - Clears the console

* cls - Clears the console

* cluster config - Config an existing cluster

* cluster create - Create a hadoop cluster

* cluster delete - Delete a cluster

* cluster export - Export cluster specification

* cluster fix - Fix a cluster failure

* cluster list - Get cluster information

* cluster resetParam - reset cluster parameters

* cluster resize - Resize a cluster

* cluster setParam - set cluster parameters

* cluster start - Start a cluster

* cluster stop - Stop a cluster

* cluster target - Set or query target cluster to run commands

* cluster upgrade - Upgrade an old cluster

* connect - Connect a serengeti server

* datastore add - Add new datastore(s)

* datastore delete - Delete an unused datastore

* datastore list - Display datastore list.

* date - Displays the local date and time

* disconnect - Disconnect a serengeti server

* distro list - Get distro information

* exit - Exits the shell

* fs cat - Copy source paths to stdout

* fs chgrp - Change group association of files

* fs chmod - Change the permissions of files

* fs chown - Change the owner of files

* fs copyFromLocal - Copy single src, or multiple srcs from local file system to the destination file system. Same as put

* fs copyMergeToLocal - Takes a source directory and a destination file as input and concatenates files in src into the destination local file

* fs copyToLocal - Copy files to the local file system. Same as get

* fs count - Count the number of directories, files, bytes, quota, and remaining quota

* fs cp - Copy files from source to destination. This command allows multiple sources as well in which case the destination must be a directory

* fs du - Displays sizes of files and directories contained in the given directory or the length of a file in case its just a file

* fs expunge - Empty the trash

* fs get - Copy files to the local file system

* fs ls - List files in the directory

* fs mkdir - Create a new directory

* fs moveFromLocal - Similar to put command, except that the source localsrc is deleted after it's copied

* fs mv - Move source files to destination in the HDFS

* fs put - Copy single src, or multiple srcs from local file system to the destination file system

* fs rm - Remove files in the HDFS

* fs setrep - Change the replication factor of a file

* fs tail - Display last kilobyte of the file to stdout

* fs text - Take a source file and output the file in text format

* fs touchz - Create a file of zero length

* help - List all commands usage

* hive cfg - Configures Hive

* hive script - Executes a Hive script

* loggedConnect - Connect a serengeti server with username/password as options and get logged into cli history

* mr jar - Run Map Reduce job in the jar

* mr job counter - Print the counter value of the MR job

* mr job events - Print the events' detail received by jobtracker for the given range

* mr job history - Print job details, failed and killed job details

* mr job kill - Kill the Map Reduce job

* mr job list - List the Map Reduce jobs

* mr job set priority - Change the priority of the job

* mr job status - Query Map Reduce job status.

* mr job submit - Submit a Map Reduce job defined in the job file

* mr task fail - Fail the Map Reduce task

* mr task kill - Kill the Map Reduce task

* network add - Add a network to Serengeti

* network delete - Delete a network from Serengeti by name

* network list - Get network information from Serengeti

* network modify - Modify a network from Serengeti by name

* pig cfg - Configures Pig

* pig script - Executes a Pig script

* quit - Exits the shell

* resourcepool add - Add a new resource pool

* resourcepool delete - Delete an unused resource pool

* resourcepool list - Get resource pool information

* script - Parses the specified resource file and executes its commands

* system properties - Shows the shell's properties

* topology list - List a rack-->hosts mapping topology

* topology upload - Upload a rack-->hosts mapping topology file

* version - Displays shell version

 

Web Client よりも細かい設定をする場合は、

この serengeti CLI を使用します。

 

マニュアルもあります。英語ですが・・・

VMware vSphere Big Data Extensions

Command-Line Interface Guide

vSphere Big Data Extensions 2.0

http://pubs.vmware.com/bde-2/topic/com.vmware.ICbase/PDF/vsphere-big-data-extensions-20-command-line-guide.pdf

 

以上、BDE のコマンドラインツールの話でした。

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

$
0
0

Hadoop では、分散処理のマスタとなるノード(サーバ)の

冗長化が課題となることがあると思います。


たとえば下記のあたりの障害対策をどうするかが、よく話題になっています。

  • HDFS のマスタノード(NameNode)
  • MapReduce のマスタノード(JobTrackser)

 

vSphere Big Data Extensions(BDE) と

vSphere での冗長化については、

マニュアルだと下記のあたりにそれとなく記載があります。

VMware vSphere Big Data Extensions Administrator's and User's Guide

  > Managing Hadoop and HBase Clusters

About vSphere High Availability and vSphere Fault Tolerance

http://pubs.vmware.com/bde-2/topic/com.vmware.bigdataextensions.admin.doc/GUID-C69A72A1-93B8-4EB9-A2B2-16E1FCAC108D.html

 

FT では当然、保護可能だと思います。

ただし FT は vSphere 5.5 までだと 1vCPU しか割り当てられないので

実際のところは vSphere HA が有効そうな気がします。


そして、vSphere HA については

マスタノードのプロセス検知まで対応しているのか気になったので試してみました。

 

BDE で自動構築した VM の HA 保護構成について


BDE で自動構築(テンプレートからクローン)された VM のうち、

マスタノードになるものは、デフォルトで

共有データストア(Shared datastores)に配置されます。


DataMaster が、HDFS の NameNode で、

ComputeMaster が、MapReduce の JobTracker です。

bde-vha-02.png

 

vSphere HA での VM の保護設定を確認してみると、

マスタノードは HA が有効で、それ以外は無効になっていました。

※仮想マシンの監視は「仮想マシンとアプリケーションの監視」にしてあります。

bde-vha-03.png

 

マスタノードの確認

 

ためしにマスタノード障害を発生させてみるために、

マスタノードを確認します。

BDE では、BDE の Web Client プラグイン画面から、マスタノードがわかります。

それぞれゲスト OS の、IP アドレスがわかります。

bde-vha-01.png

 

他にも、BDE の管理サーバに 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>cluster target --name hdp_cluster01

serengeti>cfg info

Hadoop [1.2.1 rev.1503152][fs=hdfs://192.168.5.128:8020][jt=192.168.5.125:8021]

「fs=~」が HDFS のマスタノード(NameNode)、

「jt=~」が MapReduce のマスタノード(JobTracker)です。

 

 

マスタノードを停止してみる。

 

まず、HDFS のマスタノードを停止してみます。

hdp_cluster01-DataMaster-0 に SSH でログインして

NameNode プロセスを停止してみました。

[root@192 ~]# uname -n

192.168.5.128  ★ホスト名は IP アドレスと同じになっている。

[root@192 ~]# jps

4930 NameNodeMonitor

25430 Jps

2680 NameNode

 

kill コマンドで、プロセス停止してみました。

[root@192 ~]# kill 2680

[root@192 ~]# jps

4930 NameNodeMonitor

25466 Jps

 

少し待つと、vSphere HA が作動します。

bde-vha-04.png

 

プロセスの再起動ではなく、

VM がリセットされ、ゲスト OS があらためて起動されます。

bde-vha-05.png

 

VM が vSphere HA でリセットされたことが

イベント にも残っています。

bde-vha-06.png

 

ゲスト OS 起動後は、

NameNode のプロセスが自動起動します。

[root@192 ~]# uname -n

192.168.5.128

[root@192 ~]# uptime

13:45:38 up 6 min,  1 user,  load average: 0.10, 0.45, 0.29

[root@192 ~]# jps

2716 NameNodeMonitor

2309 NameNode

2830 Jps

 

同様に、MapResuce の JobTracker のプロセスを停止してみました。

hdp_cluster01-ComputeMaster-0 に SSH でログインして、

JobTracker のプロセスを停止してみます。

[root@192 ~]# uname -n

192.168.5.125  ★ホスト名は IP アドレスと同じになっている。

[root@192 ~]# jps

2656 JobTracker

15403 Jps

2802 JobTrackerMonitor

[root@192 ~]# kill 2656

[root@192 ~]# jps

15418 Jps

2802 JobTrackerMonitor

 

しばらくすると、JobTracker の VM も

vSphere HA によってリセットされました。

VM がリセットされることで、

ゲスト OS の起動に合わせて JobTracker のプロセスが起動(復旧)されます。

bde-vha-07.png

 

vSphere HA では、ESXi ホスト障害や、VM(ゲスト OS)のハングといった

障害は標準で検知でき、自動復旧できます。

アプリケーション障害を検知する場合には

そのアプリケーション側で vSphere HA に対応している必要があるのですが、

BDE で自動構築した Apache Haoop のマスタノードは

NameNode も、JobTracker も vSphere HA のアプリケーション監視に

対応しているようです。

 

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

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

 

以上、BDE と vSphere HA についてでした。

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

$
0
0

Hadoop では、ローカルディスクを活用をすることで知られています。

一方、サーバ仮想化環境は共有ディスクを使用することが一般的なので

Hadoop とサーバ仮想化はあまり相性がよくないといわれることがあります。


というわけで、

BDE はどのようにデータストア(ローカル / 共有ディスク)を使用するのか見てみました。

 

BDE でのデータストア利用イメージ


BDE にデフォルトで含まれている

Apache Hadoop 1.2 で、Basic Hadoop Cluster を作成した場合を

例にすると、だいたい下記のような感じです。

BDE-Hadoop-ds-01.png


Hadoop でマスタノードと呼ばれるものは

一般的に、そこまでデータの I/O が無いとされていますが

そのかわり耐障害性が求められます。

今回の例では、下記がマスタノードにあたります。

  • HDFS の NameNode(NN)
  • MapReduce の JobTracker(JT)


一方スレーブノードは、

大量のデータを格納していて

それをもとに分散処理を実行したりするので

ローカルディスクを活用したいサーバです。

今回の例では、下記がマスタノードにあたります。

  • HDFS の DataNode(DN)
  • MapReduce の TaskTracker(TT)


BDE では、ノードの役割によって

ローカルデータストアと共有データストアを使い分けていて、

だいたい下記のような役割分担です。

  • マスタノード → ESXi のローカルデータストアを使用する。
  • スレーブノード → 共有データストアを利用する。

 

マスタノードは、共有データストアに

仮想マシン(VMDK ファイル)が配置されているため、

vMotion や、vSphere HA といった仮想化環境特有の

高可用性の機能を利用できるようになっています。

もうすぐ vSphere FT が複数 vCPU 対応になるようなので

そうなったらさらに有益かと思いました・・・

 

スレーブノードは、ローカルディスクを使用しますが、

もともと MapReduce / HDFS で冗長化が考慮されているので

ノード障害が発生してもそうに問題にならないという想定でしょう。

 

BDE でのデータストアの指定


BDE ではローカルデータストアと共有データストアを使い分けますが、

そのためにvSphere 環境で利用しているデータストアを

さらに BDE で使用するデータストアとしてリソース登録します。

BDE-Hadoop-ds-02.png

 

BDE で Hadoop クラスタを作成するまえにリソース登録しておき、

Hadoop クラスタ作成時には

ノードグループごとにデータストアの種類(Local / Shared)だけ指定します。

 

BDE Web Client プラグイン画面での見え方。


ローカルデータストアを、BDE に登録する例です。

Local / Shared データストアは、それぞれ

まとめて1つのリソースとして登録することができます。

bde-ds-01.png

 

下記の例では、1つの BDE データストア リソースとして

4つのデータストア(VC Datastores)を登録しています。

bde-ds-02.png


逆に、VC データストアそれぞれを

1つずつ BDE データストア リソースとして登録することもできます。

bde-ds-03.png

 

その場合は、下記のようになります。

bde-ds-04.png


Hadoop のノードのデータストアの種類は

Hadoop クラスタの作成(Create New Big Data Cluster)の時に

選択することができます。デフォルトでは、

マスタノード(~Master Node Group)は共有データストア(Shared datastore)、

スレーブノード(Worker Node Group)はローカルデータストア(Local datastores)

になっています。

bde-ds-05.png

 

Resource template で「Customize」を選択すると

データストアを変更することができますが、データストア名を指定するわけではなく

「Local」もしくは「Shared」を指定することで

あとは BDE によって自動的にデータストアが選択されます。

bde-ds-06.png

 

設定はポリシーベースっぽい感じです。

 

マニュアルでは下記のあたり・・・

VMware vSphere Big Data Extensions Administrator's and User's Guide

Big Data Extensions: Add a Datastore

Create a Hadoop or HBase Cluster in the vSphere Web Client

 

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

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

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

 

以上、BDE とデータストアの話でした。

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

$
0
0

今回は、(VMware vSphere Big Data Extensions)BDE の

Hadoop 的なネットワークトポロジ 認識についての話です。


Hadoop には処理を効率化するためにネットワーク トポロジ(構成)を認識する仕組みがあります。

これは ラック ウェアネス などと呼ばれていて、

分散処理中の大量データ転送を避けるための考慮をしたりデータローカリティ)

HDFS でデータレプリカ配置をうまく分散して

ノード障害時の可用性向上、データ消失防止したりするために重要です。


トポロジ認識は、サーバ(Hadoop のノード)とサーバラックを

紐づけるマッピングファイルを用意することで実現しています。

たとえば、下記のようにサーバとラックの対応を定義して Hadoop にトポロジを伝えます。

# cat topology.data

hadoop-node1.vmad.local  /datacenter01/rack01

hadoop-node2.vmad.local  /datacenter01/rack02

 

BDE では Hadoop クラスタの自動構築時に、このマッピングファイルを自動生成できます。

さらに VMware による、サーバ仮想化レイヤを考慮できるようになる

Hadoop Virtualization Extensions(HVE)という機能拡張も利用することができます。

Hadoop Virtualization Extensions on VMware vSphere 5

http://www.vmware.com/files/pdf/Hadoop-Virtualization-Extensions-on-VMware-vSphere-5.pdf

 

Hadoop Common / HADOOP-8468

Umbrella of enhancements to support different failure and locality topologies

https://issues.apache.org/jira/browse/HADOOP-8468

 

トポロジ認識は、BDE で Hadoop クラスタを作成するときに

4種類の認識方法から選択することで指定できます。

  • NONE
    トポロジを気にしない。
  • HOST_AS_RACK
    ゲスト OS を Hadoop のノード、ESXi を Hadoop でのラックとして扱う。
  • RACK_AS_RACK
    ゲスト OS を Hadoop のノード、マッピングファイルでのラック を Hadoop でのラックとして扱う。
  • HVE
    ゲスト OS、ESXi、ラックそれぞれを認識する。
    ※ただし、Hadoop ディストリビューションでも HVE 対応が必要。

 

BDE では、デフォルトで上記のうち NONE と HOST_AS_RACK だけが選択でき、

BDE 管理サーバ(Serengeti)にラックと ESXi のマッピングを定義するファイル

(上の方で例とした topology.data ファイルとは別のもの)をアップロードすることで

RACK_AS_RACK と HVE が選択できるようになります。

 

たとえば、下記のようなマッピングファイルになります。

# cat /home/serengeti/rack_esxi_map.txt

rack01: esxi01.vmad.local,esxi02.vmad.local

rack02: esxi03.vmad.local,esxi04.vmad.local

 

BDE では HVE を使用しない場合、

BDE に は、物理ラックか、ESXi どちらかを

Hadoop のラックとして認識させることになります。

bde-topology -01.png


このとき Hadoop のラック認識として、

ESXi を選ぶと物理ラックが境界として認識できず、

物理ラックを選ぶと ESXi が境界として認識できなくなってしまいます。

※下の図だと、オレンジ点線の部分が Hadoop から認識できなくなってしまいます。

bde-topology -02.png


そして、境界が下記の赤枠のように認識されるので、

うまくラック内にデータ転送を収めたりできなくなったり(HOST_AS_RACK)

同一 ESXi で稼働する VM 同士でデータの複製を持ったり(RACK_AS_RACK)

することが起こりえます。

bde-topology -03.png

 

そこで、HVE を使用することで

VM、ESXi、物理ラック それぞれを意識した

トポロジ 構成のマッピングファイルを自動生成できるようになります。

BDE のホワイトペーパーなどでは、ESXi は「Node Group」という概念で説明されています。

bde-topology -04.png

 

というわけで、Hadoop ディストリビューションが HVE が対応しているのであれば

HVE にしておくのがよいと思います。結構、HVE 対応しているようです。

VMware vSphere Big Data Extensions Administrator's and User's Guide

  > Managing Hadoop Distributions

Hadoop Distribution Deployment Types

 

以上、BDE のトポロジ認識についてでした。

つづく・・・

vShere BDE の Hadoop 的なトポロジ認識について。その2(HVE Topology 設定編)

$
0
0

今回は、このポストの続きです。

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

 

VMware vSphere Big Data Extensions(BDE)の

トポロジ 認識の設定をしてみます。

Hadoop Virtualization Extensions(HVE)も設定してみます。

 

BDE をセットアップした直後の

Hadoop クラスタ作成(Create New Big Data Cluster)画面では、

NONE と HOST_AS_RACK のみが選択できます。

そして使用する Hadoop ディストリビューションで HVE が有効で、

BDE に topology 認識させるためのファイルをアップロードしておくと

RACK_AS_RACK  と HVE も指定できるようになります。

bde-topology-conig-01.png


BDE にトポロジ情報を登録する


BDE 2.0 にデフォルトで含まれるディストリビューションでも、

apache(Apache Hadoop 1.2)は HVE に対応していて、

BDE でも有効化(HVE = true)されています。

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]

 

そこで、BDE の管理サーバに serengeti CLI を使用して

ラックと ESXi のマッピングファイルをアップロードすると・・・

serengeti>topology list

serengeti>       ★まだ BDE にはトポロジ登録されていない。

serengeti>! cat /home/serengeti/rack_esxi_map.txt

command is:cat /home/serengeti/rack_esxi_map.txt

rack01: hv55n1.vmad.local,hv55n2.vmad.local

rack02: hv55n3.vmad.local,hv55n4.vmad.local

serengeti>

serengeti>topology upload --fileName /home/serengeti/rack_esxi_map.txt

topology uploaded  ★BDE にトポロジ登録した。

serengeti>topology list

  RACK    HOSTS

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

  rack01  [hv55n1.vmad.local, hv55n2.vmad.local]

  rack02  [hv55n3.vmad.local, hv55n4.vmad.local]

 

serengeti>

 

RACK_AS_RACK と HVE も topology として選択できるようになります。

bde-topology-conig-02.png

 

それぞれのトポロジについては、

マニュアルではこのあたりを参照してください。

VMware vSphere Big Data Extensions Administrator's and User's Guide

  > Creating Hadoop and HBase Clusters

About Cluster Topology

http://pubs.vmware.com/bde-2/index.jsp#com.vmware.bigdataextensions.admin.doc/GUID-C2A2E573-5BD7-4BEC-9F72-5F161A8BDFC6.html

 


BDE トポロジ指定と、Hadoop のトポロジ情報ファイル生成

 

まず、下記のように HOST_AS_RACK を選択した場合に

Hadoop ノードに作成されるトポロジ情報のファイルを見てみます。

bde-topology-conig-03.png

 

トポロジ情報のファイルは、下記のようにHadoop ノードそれぞれに作成されます。

Hadoop ノードの VM(IP アドレス)が、「/<ESXi>」に紐付けられています。

[root@192 ~]# cat /etc/hadoop/conf/topology.data

192.168.5.123 /hv55n3.vmad.local

192.168.5.130 /hv55n3.vmad.local

192.168.5.129 /hv55n4.vmad.local

192.168.5.120 /hv55n1.vmad.local

192.168.5.121 /hv55n2.vmad.local

192.168.5.122 /hv55n4.vmad.local

 

このファイルは、下記のスクリプトでのトポロジ判断に使われるようです。

[root@192 ~]# cat /etc/hadoop/conf/topology.sh

#!/bin/bash

 

# this script is copied from http://wiki.apache.org/hadoop/topology_rack_awareness_scripts

 

HADOOP_CONF=/etc/hadoop/conf

 

while [ $# -gt 0 ] ; do

  nodeArg=$1

  exec< ${HADOOP_CONF}/topology.data

  result=""

  while read line ; do

    ar=( $line )

    if [ "${ar[0]}" = "$nodeArg" ] ; then

      result="${ar[1]}"

    fi

  done

  shift

  if [ -z "$result" ] ; then

    echo -n "/default-rack "

  else

    echo -n "$result "

  fi

done

 

たとえば、下記のような感じです。

[root@192 ~]# bash /etc/hadoop/conf/topology.sh 192.168.5.123

/hv55n3.vmad.local [root@192 ~]#

 

次に、下記のように RACK_AS_RACK を選択した場合を見てみます。

bde-topology-conig-04.png

 

トポロジ情報のファイルでは、

Hadoop ノードの VM(IP アドレス)が、

「/<BDE の topology で定義したラック名>」に紐付けられています。

[root@192 ~]# cat /etc/hadoop/conf/topology.data

192.168.5.133 /rack01

192.168.5.131 /rack02

192.168.5.136 /rack02

192.168.5.132 /rack01

192.168.5.135 /rack02

192.168.5.134 /rack02

 

この場合は、下記のようにトポロジが判断されるのでしょう。

[root@192 ~]# bash /etc/hadoop/conf/topology.sh 192.168.5.133

/rack01 [root@192 ~]#

 

最後に、下記のように RACK_AS_RACK を選択した場合を見てみます。

bde-topology-conig-05.png

 

トポロジ情報のファイルでは、

Hadoop ノードの VM(IP アドレス)が、

「/<BDE の topology で定義したラック名>/<ESXi>」に紐付けられています。

[root@192 ~]# cat /etc/hadoop/conf/topology.data

192.168.5.122 /rack01/hv55n1.vmad.local

192.168.5.127 /rack02/hv55n3.vmad.local

192.168.5.125 /rack02/hv55n4.vmad.local

192.168.5.121 /rack01/hv55n1.vmad.local

192.168.5.124 /rack02/hv55n3.vmad.local

192.168.5.126 /rack01/hv55n2.vmad.local

192.168.5.123 /rack02/hv55n4.vmad.local

192.168.5.120 /rack01/hv55n2.vmad.local

 

この場合は、下記のようにトポロジが判断されるのでしょう。

[root@192 ~]# bash /etc/hadoop/conf/topology.sh 192.168.5.122

/rack01/hv55n1.vmad.local [root@192 ~]#

 

ちなみに、

BDE で構成した Hadoop ノードの設定ファイル(core-site.xml)には

HVE を有効化する設定も含まれていました。

[root@192 ~]# cat /etc/hadoop/conf/core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- check for all settings at http://hadoop.apache.org/common/docs/stable/core-default.html -->

<configuration>

<property>

  <name>fs.default.name</name>

  <value>hdfs://192.168.5.122:8020</value>

</property>

 

<!-- turn on Hadoop Rack Awareness -->

<property>

  <name>topology.script.file.name</name>

  <value>/etc/hadoop/conf/topology.sh</value>

  <description>Topology scripts are used by hadoop to determine the rack location of nodes. This information is used by hadoop to replicate block data to redundant racks.</description>

</property>

 

<!-- settings for Hadoop Virtualization Extensions -->  ★このあたりから

<property>

  <name>net.topology.nodegroup.aware</name>

  <value>true</value>

  <description>By default, network topology is not aware of nodegroup layer.</description>

</property>

<property>

  <name>net.topology.impl</name>

  <value>org.apache.hadoop.net.NetworkTopologyWithNodeGroup</value>

  <description>The default implementation of NetworkTopology which is classic three layer one.</description>

</property>

<property>

  <name>dfs.block.replicator.classname</name>

  <value>org.apache.hadoop.hdfs.server.namenode.BlockPlacementPolicyWithNodeGroup</value>

  <description>The default implementation of BlockPlacementPolicy.</description>

</property>

 

<!-- properties specified by users -->

<!-- end -->

 

 

</configuration>

 

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

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

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

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

 

以上、BDE のトポロジ認識についてでした。


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 クラスタを作成してみる話でした。

vSphere BDE で Elastic Scaling してみる。第1回

$
0
0

vSphere Big Data Extentions(BDE) では

Hadoop のスレーブノードを、後から追加したりできます。

手動でのスケールアウトだけでなく、

Elastic Scaling という自動でのノード増減機能もあります。

 

今回は、手動でのノード追加(スケールアウト)を、

BDE の Web Client プラグインから実行してみました。


BDE のセットアップについては、こちらをどうぞ。

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

 

手動でのスケールアウト

 

BDE の Web Cliet プラグインの「Big Data Clusters」画面を開いて、

スレーブノードのスケールアウトをしたいクラスタで

右クリックして「Scale Out」をクリックします。

bde-manual-scale-out-01.png

 

スレーブノード(worker)の、

スケールアウト後の台数を指定します。

今回は、3台から5台に台数を増やしてみます。

bde-manual-scale-out-02.png

 

クラスタの Status が Updating になります。

Worker を 5 VM に拡張中です。

bde-manual-scale-out-03.png


しばらく待つと完了して、Status が Running になります。

bde-manual-scale-out-04.png

 

自動スケールアウトについて

 

BDE には、さらに

自動的に Hadoop のスレーブノード数を増減させる

Elastic Scaling という機能があります。

 

この機能は、スレーブノードのうち Compute Node を対象とします。

ここでの Compute Node は、MapReduce の TaskTracker のことです。


BDE で作成した

スレーブノードが「DataNode + TaskTracker」になっているクラスタでは

Elastic Scaling を有効にすることはできませんでした。

「cluster setParam」コマンドも、Compute Only のクラスタでないとダメなようです。

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]    5         1    3748     LOCAL   50

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

 

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

 

serengeti>cluster setParam --name hdp_cluster03 --elasticityMode AUTO --minComputeNodeNum 2 --maxComputeNodeNum 6

cluster hdp_cluster03 setParam failed: If the cluster is MRv1, then it must have compute only node group(s), and set/resetParam is only applicable to compute only node groups. On the other hand, we do not support elasticity on MRv2 (YARN) clusters yet.

 

だめでした。

というわけで、TaskTracker だけのスレーブノードをもつクラスタを作成して

Elastic Scaling を試してみようと思います。

 

つづく・・・

vSphere BDE で Elastic Scaling してみる。第2回(Compute-only Hadoop Cluster)

 

vSphere BDE で Elastic Scaling してみる。第2回(Compute-only Hadoop Cluster)

$
0
0

今回は、vSphere Big Data Extentions(BDE)で

Elastic Scaling をためす準備として

Compute-only の Hadoop クラスタを作成してみました。


前回はこちらです。

vSphere BDE で Elastic Scaling してみる。第1回

 

Compute-only Hadoop Cluster とは


ベーシックな Hadoop クラスタでは

MapReduce の計算ノードと、HDFS によるデータ格納ノードがありますが、

そのうち 計算ノードだけ(Compute-Only)のクラスタを作成することができます。

この場合、データの格納場所には既存の Hadoop の HDFS クラスタや、

HDFS としてアクセスできるストレージ領域(たとえば EMC の Isilon や ViPR とか)を

利用できるようです。

 

BDE で Apache Hadoop のCompute-only クラスタを作成すると、

下記のノードが作成されます。

  • MapReduce のJobTracker  1ノード
  • MapReduce のTaskTracker  複数ノード
  • Hadoop クライアント 複数ノード

 

BDE の Elastic Scaling を利用する場合もこのクラスタにする必要があるようなので、

今回はそのためだけに Compute-only クラスタを作成してみます。

 

Compute-only Hadoop Cluster の作成

 

これまでの Hadoop クラスタ作成と同様に、

BDE の Web Cliet プラグインの「Create New Big Data Cluster」から作成します。


Deployment Type で「Compute-only Hadoop Cluster」を選択します。

そして、DataMaster URL に

作成するクラスタがアクセスする HDFS の URL を指定します。

bde-compute-only-01.png

 

確認画面は下記のような感じです。

Topology では HVE が指定できます。

表示はされていませんが、HDFS の URL は指定できています。

bde-compute-only-02.png

 

作成したクラスタには、

DataMaster が含まれていません。

そして、ベーシックな Hadoop クラスタでは「N/A」だった

Elasticity Mode が「Manual」になっています。

bde-compute-only-03.png


Serengeti CLI からこの Hadoop クラスタを見てみました。

Elasticity Mode が「Manual」なので、

Elastic Scaling は無効な状態(AUTO ELASTIC : Disable)です。

hadoop_namenode と hadoop_datanode は含まれません。

「EXTERNAL HDFS」に URL が指定されています。

serengeti>cluster list --name mr_cluster01

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

 

  CLUSTER NAME              :  mr_cluster01

  AGENT VERSION             :  2.0.0

  DISTRO                    :  apache

  TOPOLOGY                  :  HVE

  AUTO ELASTIC              :  Disable

  MIN COMPUTE NODES NUM     :  Unset

  MAX COMPUTE NODES NUM     :  Unset

  IO SHARES                 :  NORMAL

  STATUS                    :  RUNNING

  EXTERNAL HDFS             :  hdfs://192.168.5.145:8020

 

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

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

  ComputeMaster  [hadoop_jobtracker]                      1         1    3748     SHARED  10

  Worker         [hadoop_tasktracker]                     3         1    3748     LOCAL   20

  Client         [hadoop_client, pig, hive, hive_server]  1         1    3748     SHARED  20

 

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

 

この Hadoop クラスタに Serengeti CLI で接続して

「cfg info」を見てみると、クラスタ作成時に指定した

HDFS の URL が設定されています。

serengeti>cluster target --name mr_cluster01

serengeti>cfg info

Hadoop [1.2.1 rev.1503152][fs=hdfs://192.168.5.145:8020][jt=192.168.5.148:8021]

 

以上、BDE で Compute Only のクラスタを作成してみる話でした。

まだつづく・・・

vSphere BDE で Elastic Scaling してみる。第3回(Elasticity Mode:Auto)

$
0
0

vSphere Big Data Extentions(BDE)の

Hadoop クラスタで Elastic Scaling を有効化してみました。


これまでの話は・・・

vSphere BDE で Elastic Scaling してみる。第1回

vSphere BDE で Elastic Scaling してみる。第2回(Compute-only Hadoop Cluster)

 

Elastic Scaling により、 BDE で構築した Compute-only Hadoop Cluster の

スレーブノード数(MapReduce の TaskTracker)が自動増減します。

ここでの「Compute-only」とは MapReduce と HDFS のうち、

「MapResuce 部分だけ」のクラスタということです。

※HDFS などのデータ格納領域は別途用意する想定の構成です。


ちなみに Elastic Scaling の設定は、BDE で Hadoop クラスタを

停止→起動するたびに Manual に戻るようになっているようなので、

有効化する場合は Hadoop クラスタを起動するたびに再設定します。

 

 

Elastic Scaling の設定(Web Client + BDE プラグインの場合)

 

Elastic Scaling はデフォルトでは無効なので、Elasticity Mode は「Manual」です。

「1 ComputeMaster」で「DataMaster」がないことから、

Compute-olny のクラスタ(HDFS が含まれない)クラスタであることがわかります。

bde-elastic scaling-01.png


Elastic Scaling を設定するクラスタを右クリックして

「Set Elasticity Mode」を開きます。

bde-elastic scaling-02.png


Elasticity Mode で「Auto」を選択して、

スレーブノード(Compute nodes)の最大数、最小数を設定します。

bde-elastic scaling-03.png

 

Elastic Scaling が有効化され、Elasticity Mode は「Auto」になりました。

bde-elastic scaling-04.png

 

 

Elastic Scaling の設定(Serengeti CLI の場合)

 

BDE 管理サーバの Serengeti CLI からでも Elastic Scaling を有効化できます。

 

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

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

 

デフォルトだと、Elastic Scaling は無効(AUTO ELASTIC : Disable)です。

serengeti> cluster list --name mr_cluster01

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

 

  CLUSTER NAME              :  mr_cluster01

  AGENT VERSION             :  2.0.0

  DISTRO                    :  apache

  TOPOLOGY                  :  HVE

AUTO ELASTIC              :  Disable

  MIN COMPUTE NODES NUM     :  Unset

  MAX COMPUTE NODES NUM     :  Unset

  IO SHARES                 :  NORMAL

  STATUS                    :  RUNNING

  EXTERNAL HDFS             :  hdfs://192.168.5.145:8020

 

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

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

  ComputeMaster  [hadoop_jobtracker]                      1         1    3748     SHARED  10

  Worker         [hadoop_tasktracker]                     3         1    3748     LOCAL   20

  Client         [hadoop_client, pig, hive, hive_server]  1         1    3748     SHARED  20

 

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

 

Elastic Scale を有効にしてみます。

Serengeti CLI の「cluster setParam ~」で設定します。

  • --elasticityMode AUTO → 「AUTO」だと自動スケールします。
  • --minComputeNodeNum 2 → スレーブノードの最小数です。
  • --maxComputeNodeNum 3 → スレーブノードの最大数です。

serengeti> cluster setParam --name mr_cluster01 --elasticityMode AUTO --minComputeNodeNum 2 --maxComputeNodeNum 3

cluster mr_cluster01 adjusted

 

有効化すると「AUTO ELASTIC : Enable」になります。

MIN COMPUTE NODES NUM と MAX COMPUTE NODES NUM も設定されました。

serengeti> cluster list --name mr_cluster01

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

 

  CLUSTER NAME              :  mr_cluster01

  AGENT VERSION             :  2.0.0

  DISTRO                    :  apache

  TOPOLOGY                  :  HVE

  AUTO ELASTIC              :  Enable

  MIN COMPUTE NODES NUM     :  2

  MAX COMPUTE NODES NUM     :  3

  IO SHARES                 :  NORMAL

  STATUS                    :  RUNNING

  EXTERNAL HDFS             :  hdfs://192.168.5.145:8020

 

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

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

  ComputeMaster  [hadoop_jobtracker]                      1         1    3748     SHARED  10

  Worker         [hadoop_tasktracker]                     3         1    3748     LOCAL   20

  Client         [hadoop_client, pig, hive, hive_server]  1         1    3748     SHARED  20

 

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

 

ちなみにこの機能は、デプロイ済みのスレーブ用 VM を 自動起動 / 自動停止します。

自動クローンでノード追加したりするような機能ではなく

maxComputeNodeNum を TaskTracker VM 数よりも多くしたりできません。

※今回のスレーブノードは 3 VM です。

serengeti> cluster setParam --name mr_cluster01 --elasticityMode AUTO --minComputeNodeNum 2 --maxComputeNodeNum 5

cluster mr_cluster01 setParam failed: Invalid value: maxComputeNodeNum=5. Value must be less than or equal to the number of compute-only nodes (3) and greater than or equal to minComputeNodeNum (2).

serengeti>

 

 

自動スケールイン / スケールアウトの様子

 

BDE の Elastic Scaling では、

自動スケールイン(ノード削除) / スケールアウト(ノード追加)は

クローン済みの VM を 停止 / 起動 することで実現されます。


たとえば、Hadoop クラスタではデフォルトでは

デフォルトではスレーブノード(Worker)がすべて起動されています。

bde-elastic scaling-05.png

 

Elastic Scaling を有効にすると

リソースに余裕がある状態では

自動的にスレーブノードが停止されます。(スケールイン)

bde-elastic scaling-06.png


リソースに余裕がなくなると

自動的にスレーブノードが起動され、クラスタに組み込まれます。(スケールアウト)

bde-elastic scaling-07.png


Web Clientの「ホストおよびクラスタ」のインベントリでも

「監視」→「タスク」タブで様子が見られます。

bde-elastic scaling-08.png


BDE 管理サーバのログファイル(/opt/serengeti/logs/serengeti.log)にも

スレーブノードの停止 / 起動 の様子が出力されます。


スレーブノードの停止

[2014-10-10T23:21:29.742+0000] INFO  pool-2-thread-5| com.vmware.bdd.service.event.VmEventManager: synced power state poweredOff on vm: null:VirtualMachine:vm-346

[2014-10-10T23:21:29.749+0000] INFO  pool-2-thread-5| com.vmware.bdd.service.event.VmEventManager: received vm Powered Off event for vm: mr_cluster01-Worker-2

 

スレーブノードの起動

[2014-10-10T16:19:58.269+0000] INFO  pool-2-thread-3| com.vmware.bdd.service.event.VmEventManager: synced power state poweredOn on vm: null:VirtualMachine:vm-347

[2014-10-10T16:19:58.275+0000] INFO  pool-2-thread-3| com.vmware.bdd.service.event.VmEventManager: received vm Powered On event for vm: mr_cluster01-Worker-1

 

マニュアルだと、下記のあたりです。

VMware vSphere Big Data Extensions Administrator's and User's Guide

  > Managing Hadoop and HBase Clusters

About Resource Usage and Elastic Scaling

 

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

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

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

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

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

 

以上、BDE の Elastic Scaling についてでした。

Log Insight で vSphere ログイン監査。第1回(Security Dashboard から Interactive Analytics)

$
0
0

vRealize Log Insight 2.0 には、デフォルトで

vSphere 環境のログ解析に特化したダッシュボードが含まれています。

 

今回はその中の Security ダッシュボードを利用して、

ためしに私自身の vCenter ログイン履歴を見てみようと思います。

※今回も、Log Insight 2.0 を使用しています。

 

Log Insight についてはこのあたりもどうぞ。

vCenter Log Insight のデプロイ。

 

今回やってみること

  • 自分がどれくらい vSphere 環境にアクセスしていたのか見てみる。
  • これまで私が vSphere 環境を操作するためのログインでは、vmad\administrator ユーザだけ使用している。
  • ログイン元の PC は 1台(IP アドレスは 192.168.0.2)だけ。
  • vCenter へのログイン履歴だけ見てみる。ESXi などを見ることも可能だが今回は無視。
  • 1か月分のログイン情報を見てみる。(2014年 9月1日~30日)

 

 

vCenter へのログイン回数を見てみる

 

まず Log Insight の Web UI にログインします。

loginsight-sec-01.png


Dashboard → General → 「VMware - vSphere」を開きます。

loginsight-sec-02.png


vSphere 環境用にカスタマイズされたダッシュボード群が表示されました。

「General - Security」を表示します。

ログの表示期間を「Custom time range」にします。

loginsight-sec-03.png

 

期間を 2014年 9月1日~30日にして「Update」します。

loginsight-sec-04.png

 

選択した期間のログ解析結果が表示されます。

アクセス元ごとの、vCenter へのログイン履歴

「vCenter Server successful logins by user and source」を見てみます。


vmad\administrator ユーザのログイン履歴だけ注目してみます。

期間中に、私の PC(192.168.0.2)から の vmad\administrator ユーザログインは

55回ぐらいあったようです。

loginsight-sec-05.png

 

他のサーバから

vmad\administrator ユーザの大量ログインが発生していますが、

これは Log Insight サーバからの vCenter ログインでした。

※Log Insight への vCneter 接続ユーザを別にした方がよかった気もします。

 

127.0.0.1(ループバックアドレス)による vCenter のサーバ内からの

ログインも結構ありますが、今回は気にしません。

loginsight-sec-05li.png

 

 

日ごとの ログイン履歴を見てみる

 

ここからは、

私の PC のログインがいつあったのか、日ごとに見てみようと思います。

対話形式の分析(Interactive Analytics)ができる画面を見てみようと思います。


表示されているチャートのうち、分析したい部分をクリックして、

「Interactive Analytics」をクリックします。

loginsight-sec-06.png


Interactive Analytics の画面に切り替わり、少し待つと、チャートが表示されます。

loginsight-sec-07.png

 

チャートを表示されたら、少し調整します。

  • ログの発生した回数「Count」にする。
  • 時系列で表示したいので「Time series」を選択して「Apply」。

loginsight-sec-08.png

 

もう少し調整します。

  • チャートの横軸を、1日単位「1 day」にする。
  • チャートの種類を、棒グラフ「Column」にする。

loginsight-sec-09.png

 

こんな感じになります。

画面の中段には、ログの抽出条件(Filter)、

画面下には実際のログも表示されます。


29日間で、13日に何かしらログインしていたようです。

29日間・・・・ 2014-09-30 00:00 までではなくて

2014-09-30 23:59 や2014-10-01 00:00 にすべきでした。

loginsight-sec-10.png

 

それにしても、思ったよりもログインしていない日が多いような。

しかし、あえて、このまま、つづく・・・

Log Insight で vSphere ログイン監査。第2回(Interactive Analytics での対話)

Viewing all 495 articles
Browse latest View live


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