Windows Azure HDInsight の一般提供を開始


このポストは、10 月 28 日に投稿された Windows Azure HDInsight is now Generally Available! の翻訳です。

マイクロソフトは先日、Windows Azure での HDInsight サービスの一般提供開始を発表しました (英語)。HDInsight は、マイクロソフトが開発した Hadoop ベースのサービスであり、クラウド上で完全な Apache Hadoop ソリューションを提供します。

HDInsight には、以下に挙げるような特長があります。

  • 使い慣れたツールによる洞察: PowerPivot や Power View といったマイクロソフトの BI ツールと高度に統合されている HDInsight では、Hadoop を使用してデータから簡単に洞察を引き出すことができます。また、Power Query を使用して、HDInsight を含む複数のソースからデータをシームレスに組み合わせたり、Excel 2013 の新しい 3D マッピング ツールである Power Map を使用して、データを簡単にマッピングしたりすることが可能です。
  • 機敏性: HDInsight は機敏性が高く、企業ニーズの変化に対応できます。Hadoop クラスターの展開やプロビジョニングにはこれまで数時間または数日を費やしていましたが、一連の豊富な Powershell スクリプトを使用することで、たった数分で完了できるようになります。より大きなクラスターが必要な場合は、現在のクラスターを削除して、大きいクラスターを作成するだけで簡単に用意できます。数分程度で実行可能で、しかもデータが失われることはありません。
  • 大規模運用に対応した Hadoop: HDInsight では、エンタープライズ クラスのセキュリティと管理性が実現されています。また、専用の安全なノードがあるため、Hadoop クラスターのセキュリティを確保できます。さらに、PowerShell スクリプトを広範にサポートすることで、Hadoop クラスターを簡単に管理できるようになっています。
  • リッチな開発者エクスペリエンス: HDInsight は、.NET や Java などのさまざまな言語に対応する、強力なプログラミング機能を備えています。.NET 開発者は LINQ to Hive を使用し、言語を統合したクエリの機能を最大限に活用できます。

HDInsight の利用を開始する

HDInsight クラスターを作成するには、Windows Azure 管理ポータルで [NEW] ボタンをクリックし、[DATA SERVICES] メニューから [HDINSIGHTS] を選択して、クラスター名、クラスターのサイズ (データ ノード数)、ログイン用のパスワードを指定します。

クラスターには、少なくとも 1 つのストレージ アカウントを関連付ける必要があります。選択したストレージ アカウントがクラスターの永続的なストレージ メカニズムとなり、クラスターは必ずこのストレージ アカウントと同じ場所に作成されます。一般提供開始の時点では、米国西部、米国東部、または北ヨーロッパのストレージ アカウントのみ、HDInsight クラスターと関連付けることが可能です。カスタム作成オプションを使用すると、クラスターに関連付けるストレージ アカウントを追加できます。

クラスターの展開と構成は数分で完了し、作業の開始画面が表示されます。この画面には、詳細なヘルプ コンテンツや、HDInsight を使用して初めての Hadoop ジョブを実行するためのサンプル コードへのリンクがあります。

作成した HDInsight クラスターのページで [DASHBOARD] タブを選択すると、使用率 (コアの使用数)、ジョブの履歴、関連付けられているストレージ アカウントなど、クラスターの現在の状態に関する基本情報が表示されます (下図参照)。

初めての MapReduce ジョブの送信

最初のジョブを送信する前に、HDInsight の PowerShell コマンドレットで使用する開発環境を準備する必要があります。PowerShell コマンドレットを使用するには、Windows Azure Powershell および HDInsight PowerShell の 2 つの主要コンポーネントのインストールと構成が完了していなければなりません。作業の開始画面の手順 1 にあるリンクに従って、環境をセットアップします。

作業の開始ページには、Hive ジョブまたは MapReduce ジョブを送信するサンプル コマンドを表示する画面があります。ここでは、最初に MapReduce ジョブを送信します。

これらのコマンドを使用してサンプルを実行し、ジョブ定義を作成します。ジョブ定義には、使用されているマッパーやレジューサ、入力元のデータ、出力の保存先など、ジョブに必要な情報がすべて含まれます。この例では、MapReduce のサンプル プログラム、およびクラスターに格納されているサンプル ファイルを使用します。また、結果を保存するため、サンプル ディレクトリに出力用のディレクトリを作成します。

$jarFile = "/example/jars/hadoop-examples.jar"

$className = "wordcount"

$statusDirectory = "/samples/wordcount/status"

$outputDirectory = "/samples/wordcount/output"

$inputDirectory = "/example/data/gutenberg"

$wordCount = New-AzureHDInsightMapReduceJobDefinition -JarFile $jarFile -ClassName

$className -Arguments $inputDirectory, $outputDirectory -StatusFolder $statusDirectory 

上記のコマンドを実行してサブスクリプション情報を取得し、MapReduce プログラムの実行を開始します。通常、MapReduce ジョブは実行に長時間を要するため、この例では、ジョブの実行開始時に非同期コマンドを使用する方法を示します。

$subscriptionId = (Get-AzureSubscription -Current).SubscriptionId

$wordCountJob = $wordCount | Start-AzureHDInsightJob -Cluster HadoopIsAwesome -

Subscription $subscriptionId  | Wait-AzureHDInsightJob -Subscription $subscriptionId

最後に下記のコマンドを実行して実行結果を取得し、PowerShell のコマンド ラインに表示します。

Get-AzureHDInsightJobOutput -Subscription (Get-AzureSubscription -Current).SubscriptionId -

Cluster bc-newhdstorage -JobId $wordCountJob.JobId –StandardError

MapReduce ジョブの結果はジョブ自体の実行情報で、以下のように表示されます。

ジョブの出力は、使用しているストレージ アカウント内の "/samples/wordcount/output" ディレクトリに保存されます。Windows Azure 管理ポータルでストレージ ビューアーを開き、このファイルをダウンロードして、出力ファイルを表示します。

初めての Hive ジョブの送信

作業の開始画面には、クラスターと接続して Hive ジョブを送信するサンプル コマンドもいくつか表示されています。ジョブの種類を選択するセクションで [Hive] ボタンをクリックすると、サンプルが表示されます。

PowerShell で実行する最初のコマンドとして以下のサンプルを実行して、クラスターとの接続を確立します。

Use-AzureHDInsightCluster HadoopIsAwesome (Get-AzureSubscription -Current).SubscriptionID

続いて以下のコマンドを実行し、HiveQL ステートメントをクラスターに送信します。このステートメントは、クラスター作成時に既定でセットアップされるサンプルの Hive テーブルを使用します。

Invoke-Hive "select country, state, count(*) as records from hivesampletable group by country, state order by records desc limit 5"

クエリは、非常にシンプルな select-groupby です。完了すると、結果が PowerShell のコマンド ラインに表示されます。

詳細情報

この記事では、HDInsight クラスターの作成と実行、およびデータ解析がいかに簡単に実行できるかをご説明しました。HDInsight では他にも、所有するデータ セットのアップロード、高度なジョブの実行、結果の解析など、非常に多くの作業が実行可能です。

HDInsight の使用に関する詳細については、HDInsight のドキュメントのページ (英語) や以下のリンク先の記事を参照してください。

料金の詳細については、HDInsight の料金の詳細に関するページを参照してください。

Comments (0)

Skip to main content