HDInsightを知る~ビッグデータ×クラウド

第2回 HDInsightを体験する

この記事を読むのに必要な時間:およそ 6 分

今回は実践編

前回の記事では,Azure HDInsightサービスの概要に関してお伝えしました。

今回は,実際にHDInsightのクラスタを作り,いくつかの方法でジョブを動かす方法をご覧いただこうと思います。ぜひ,お手元のマシンで実際にお試しください。

作業環境の準備

さて,さっそく本題に入りたいのですが,その前に。今回の記事では,クラスタ作成やジョブ投入など,多くの操作で⁠Windows Azure PowerShell⁠を利用します。ということはつまり,Windows環境が必要です。もしあなたが今どこかのカフェで,銀色に輝く素敵なラップトップのトラックパッドをスリスリしているのであれば,そこでPowerShellは動かないかもしれません。が,ご安心ください。そんなときのためのAzureです。

今回は,Azure上に作業環境としてのWindows Server仮想マシンを作成し,そこですべての処理を行う方法をご紹介します。

Windows Azureのアカウント

もし,まだAzureを使える環境をお持ちでない場合,ひとまず1ヵ月間無料評価版のサブスクリプションを作成してください。この際,マイクロソフトアカウント(旧称:Windows Live ID)が必要です。

Windows Server仮想マシンの作成

次に,先ほどサブスクリプションを作成した際のマイクロソフトアカウントで,Azure管理ポータルへログオンし,仮想マシンを作成します。画面左下の「新規」ボタンから「コンピューティング」⁠⁠仮想マシン」⁠⁠簡易作成」をクリックすると,簡単に作成できます。

仮想マシンの作成

仮想マシンの作成

仮想マシンイメージはいろいろありますが,お勧めは最新のWindows Server 2012 R2です。できあがったら,管理ポータル下の黒帯にある「接続」をクリックしてリモートデスクトップ接続してください。

Windows Azure PowerShellのインストールと設定

次に,Windows Azure PowerShellをインストールし,Azureの認証情報を追加します。

これは,Microsoft Web Platform Installer(WebPI)を使うと簡単です。WebPIをインストールし起動すると,Windows Azure PowreShellが選択可能になっていますので,⁠Add⁠をクリックしてこれをインストールします。

Azureの認証情報を追加

Azureの認証情報を追加

完了したら,スタート画面からWindows Azure PowerShellを起動し,Add-AzureAccountコマンドレットを実行します。すると,認証画面がポップアップしてきますから,Azure管理ポータルへアクセスするのと同じマイクロソフトアカウントで,認証を行ってください。

ログイン

ログイン

以上で,Windows Azure PowerShellが利用できるようになりました。

HDInsightクラスタの作成

いよいよHDInsightクラスタを作成することができます。Azure管理ポータルからも作れるのですが,せっかくWindows Azure PowerShellのセットアップをしたところですから,これを使ってみましょう。

Azureストレージアカウントの作成

前回の記事でお伝えしたとおり,HDInsightはAzureのBLOBストレージをデフォルトファイルシステムとして利用します。このストレージは,下図に示すような階層構造を持ち,最上位の要素として「ストレージアカウント」があります。その中に「コンテナ」というフォルダのようなものがあり,コンテナの中に「BLOB(ファイル)⁠が格納される形です。

Azure BLOBストレージのイメージ

Azure BLOBストレージのイメージ

HDInsightのクラスタを作る際には,⁠ストレージアカウント」「コンテナ」を指定する必要がありますから,あらかじめこれらを作成しておくことが必要です。

まずはストレージアカウントを作りましょう。Windows Azure PowerShellで次のコマンドを実行します。

New-AzureStorageAccount ストレージアカウント名 -Location "Southeast Asia"

「ストレージアカウント名」は英数字のみが使えます。

-Locationは,ストレージアカウントを配置するデータセンターの場所(リージョン)ですが,残念ながらHDInsightはまだ日本リージョンでは使えません。アジア圏では唯一⁠Southeast Asia⁠(シンガポール)にありますので,ストレージアカウントもそこに作ります。

ストレージアカウントが作成できたら,その中にコンテナを1つ作成します。

これも,コマンドで作ってしまいます。複数行に渡りますが,1行ずつコマンドラインに打ち込んでもかまいませんし,スクリプトファイルにしてもOKです。

$storageAccountName = "ストレージアカウント名"
$containerName = "コンテナ名"
$storageAccountKey = (Get-AzureStorageKey $storageAccountName).primary
$context = New-AzureStorageContext $storageAccountName $storageAccountKey
New-AzureStorageContainer $containerName -Context $context

クラスタの作成

ようやく,クラスタの作成ができます。少々長くなりますが,以下のコマンドを実行してください。長いと言っても,実行しているコマンドはNew-AzureHDInsightClusterだけです。

データノードの数は,下記の例では控えめに⁠2⁠としていますが,コア数クォータの範囲内で,任意の値を指定できます。既定では,HDInsightのコア数クォータは170コアとなっていますから,40ノードまで指定可能です(ネームノードがXLサイズ=8コア,データノードはLサイズ=4コアです)⁠

$clusterName = "sasahdi2014" # HDInsightクラスタの名前
$location = "Southeast Asia" # クラスタを配置するリージョン。
$storageAccountName = "kshdi"# 先ほど作ったストレージアカウント名
$containerName = "hdinsight" # 先ほど作ったコンテナ名
$clusterNodes = 2 # データノードの数。

New-AzureHDInsightCluster -Name $clusterName `
-Location $location `
-DefaultStorageAccountName "$storageAccountName.blob.core.windows.net" `
-DefaultStorageAccountKey (Get-AzureStorageKey $storageAccountName).primary `
-DefaultStorageContainerName $containerName `
-ClusterSizeInNodes $clusterNodes

実行すると,ユーザ名とパスワードの入力を促すダイアログがポップアップしてきます。これは,クラスタの管理者となるユーザー名とパスワードを設定するものです。パスワードは最低10文字必要です。

ユーザ名とパスワードの設定

ユーザ名とパスワードの設定

作成完了まで10分程度かかりますので,お待ちください。できあがると,管理ポータルにもこのようにHDInsightクラスタが現れます。

HDInsightクラスタ

HDInsightクラスタ

著者プロフィール

佐々木邦暢(ささきくにのぶ)

日本マイクロソフト株式会社 ビジネスプラットフォーム統括本部 インキュベーション・セールス部

Twitter:@ksasakims

バックナンバー

HDInsightを知る~ビッグデータ×クラウド

コメント

コメントの記入