HDInsight で Hadoop クラスターを作成する

Hadoop クラスターは、クラスターでのタスクの分散処理に使用される複数の仮想マシン (ノード) で構成されます。 Azure では個々のノードのインストールと構成の実装の詳細を抽象化しているため、提供する必要があるのは一般的な構成情報のみとなります。 この記事では、これらの構成設定について説明します。

アクセス制御の要件

会社所有のサブスクリプションなど、自身が管理者または所有者でない Azure サブスクリプションを使用する場合があります。 この場合、この記事の手順を実行するには、次のものを取得済みであることを確認する必要があります。

  • 共同作成者のアクセス権。 Azure にサインインするには、少なくとも、Azure リソース グループに対する共同作成者のアクセス権が必要です。 このリソース グループは、HDInsight クラスターおよびその他の Azure リソースの作成に使用されます。
  • プロバイダーの登録。 これから使おうとするリソースのプロバイダーは、Azure サブスクリプションに対する共同作成者以上のアクセス権を持つユーザーによって前もって登録されていることが必要です。 プロバイダーの登録は、サブスクリプションに対する共同作成者アクセス権を持つユーザーが、そのサブスクリプションで初めてリソースを作成したときに行われます。 また、REST によってプロバイダーを登録する方法もあり、その場合、リソースの作成は不要です。

アクセス管理の操作の詳細については、次の記事を参照してください。

クラスターの種類

現在、Azure HDInsight では、それぞれ特定の機能を提供する一連のコンポーネントを備えた 5 種類のクラスターを提供しています。

クラスターの種類 機能
Hadoop クエリと分析 (バッチ ジョブ)
HBase NoSQL データ ストレージ
Storm リアルタイム イベント処理
Spark メモリ内処理、対話型クエリ、マイクロバッチ ストリーム処理
対話型 Hive (プレビュー) 対話型で高速な Hive クエリのメモリ内キャッシュ
R Server on Spark (プレビュー) さまざまなビッグ データ統計、予測モデリング、機械学習の機能
Kafka (プレビュー) リアルタイムのストリーミング データ パイプラインとアプリケーションの構築に使用できる分散ストリーム プラットフォーム

各クラスターの種類には、クラスター内の独自のノード数、クラスター内のノードを表す用語、およびノードの種類ごとに既定の VM サイズがあります。 次の表では、各ノードの種類のノード数がかっこ内に示されています。

Nodes ダイアグラム
Hadoop は、 ヘッド ノード (2)、データ ノード (1 以上) HDInsight Hadoop クラスター ノード
HBase ヘッド サーバー (2)、リージョン サーバー (1 以上)、マスター/ZooKeeper ノード (3) HDInsight HBase クラスター ノード
Storm Nimbus ノード (2)、Supervisor サーバー (1 以上)、ZooKeeper ノード (3) HDInsight Storm クラスター ノード
Spark ヘッド ノード (2)、ワーカー ノード (1 以上)、ZooKeeper ノード (3) (A1 ZooKeeper VM サイズでは無料) HDInsight Spark クラスター ノード

次の表に、HDInsight の既定の VM サイズを示します。

  • ブラジル南部と西日本を除くすべてのサポートされているリージョン:

    クラスターの種類 Hadoop は、 HBase Storm Spark R Server
    ヘッド: 既定の VM サイズ D3 v2 D3 v2 A3 D12 v2 D12 v2
    ヘッド: 推奨される VM サイズ D3 v2、D4 v2、D12 v2 D3 v2、D4 v2、D12 v2 A3、A4、A5 D12 v2、D13 v2、D14 v2 D12 v2、D13 v2、D14 v2
    worker: 既定の VM サイズ D3 v2 D3 v2 D3 v2 Windows: D12 v2、Linux: D4 v2 Windows: D12 v2、Linux: D4 v2
    worker: 推奨される VM サイズ D3 v2、D4 v2、D12 v2 D3 v2、D4 v2、D12 v2 D3 v2、D4 v2、D12 v2 Windows: D12 v2、D13 v2、D14 v2、Linux: D4 v2、D12 v2、D13 v2、D14 v2 Windows: D12 v2、D13 v2、D14 v2、Linux: D4 v2、D12 v2、D13 v2、D14 v2
    ZooKeeper: 既定の VM サイズ A3 A2
    ZooKeeper: 推奨される VM サイズ A3、A4、A5 A2、A3、A4
    エッジ: 既定の VM サイズ Windows: D12 v2、Linux: D4 v2
    エッジ: 推奨される VM サイズ Windows: D12 v2、D13 v2、D14 v2、Linux: D4 v2、D12 v2、D13 v2、D14 v2
  • ブラジル南部と西日本のみ (v2 サイズはありません):

    クラスターの種類 Hadoop は、 HBase Storm Spark R Server
    ヘッド: 既定の VM サイズ D3 D3 A3 D12 D12
    ヘッド: 推奨される VM サイズ D3、D4、D12 D3、D4、D12 A3、A4、A5 D12、D13、D14 D12、D13、D14
    worker: 既定の VM サイズ D3 D3 D3 Windows: D12、Linux: D4 Windows: D12、Linux: D4
    worker: 推奨される VM サイズ D3、D4、D12 D3、D4、D12 D3、D4、D12 Windows: D12、D13、D14、Linux: D4、D12、D13、D14 Windows: D12、D13、D14、Linux: D4、D12、D13、D14
    ZooKeeper: 既定の VM サイズ A2 A2
    ZooKeeper: 推奨される VM サイズ A2、A3、A4 A2、A3、A4
    エッジ: 既定の VM サイズ Windows: D12、Linux: D4
    エッジ: 推推奨される VM サイズ Windows: D12、D13、D14、Linux: D4、D12、D13、D14
メモ

ヘッドは、Storm クラスター タイプでは Nimbus と呼ばれます。 worker は、HBase クラスターでは "リージョン"、Storm クラスターでは "スーパーバイザー" と呼ばれます。

重要

クラスターの作成時または作成後のスケーリングで 32 個を超える worker ノードを使用することを予定している場合は、コア数が 8 個以上、RAM が 14 GB 以上のヘッド ノード サイズを選択する必要があります。

スクリプト アクションを使用して、Hue や R などの他のコンポーネントをこれらの基本的な種類に追加することができます。

重要

HDInsight クラスターには、ワークロード、またはクラスターが調整されるテクノロジに対応するさまざまな型があります。 1 つのクラスターの Storm と HBase など、複数の種類を結合するクラスターを作成するメソッドはサポートされていません。

ソリューションに複数の HDInsight クラスターの種類に分散されたテクノロジが必要な場合は、Azure の仮想ネットワークを作成し、その仮想ネットワーク内で必要なクラスターの種類を作成する必要があります。 この構成により、クラスターと、それにデプロイするすべてのコードが互いに通信できるようになります。

Azure の仮想ネットワークの HDInsight との併用の詳細については、Azure の仮想ネットワークを使用した HDInsight 機能の拡張に関するページをご覧ください。

Azure の仮想ネットワーク内で 2 つのクラスターの種類を使用した例の詳細については、Storm と HBase を使用したセンサー データの分析に関するページをご覧ください。

クラスター レベル

Azure HDInsight では、Standard と Premiumの 2 つのカテゴリでビッグ データ クラウド サービスを提供します。 HDInsight Premium には、R とその他の追加コンポーネントが含まれています。 HDInsight Premium は、HDInsight バージョン 3.5 でのみサポートされます。

次の表に、HDInsight クラスターの種類と HDInsight Premium のサポート状況を示します。

クラスターの種類 Standard Premium
Hadoop は、 あり あり
Spark あり あり
HBase あり いいえ
Storm あり いいえ
R Server on Spark いいえ あり

HDInsight Premium でサポートされるクラスターの種類が追加されたら、それに応じてこの表も更新されます。 次のスクリーンショットは、クラスターの種類を選択するための Azure ポータルの情報を示しています。

HDInsight Premium の構成

基本的な構成オプション

HDInsight クラスターの作成に使用する基本的な構成オプションを以下に示します。

クラスター名

クラスター名は、クラスターの識別に使用します。 クラスター名はグローバルに一意である必要があり、次の名前付けのガイドラインに従う必要があります。

  • このフィールドには、3 ~ 63 文字の文字列を指定する必要があります。
  • このフィールドには、文字、数字、ハイフンのみを含めることができます。

クラスターの種類

クラスターの種類」と「クラスター レベル」をご覧ください。

オペレーティング システム

次の 2 つのオペレーティング システムのいずれかで HDInsight クラスターを作成できます。

  • Linux での HDInsight HDInsight には、Azure で Linux クラスターを構成するためのオプションが用意されています。 Linux または Unix に詳しい場合、既存の Linux ベースの Hadoop ソリューションから移行する場合、または Linux 向けに構築された Hadoop エコシステム コンポーネントと簡単に統合する必要がある場合は、Linux クラスターを構成します。 詳細については、「 Get started with Hadoop on Linux in HDInsight (HDInsight の Linux での Hadoop の使用)」をご覧ください。
  • Windows 上の HDInsight (Windows Server 2012 R2 Datacenter)。

HDInsight のバージョン

このオプションを使用して、このクラスターに必要な HDInsight のバージョンを指定します。 詳細については、 HDInsight での Hadoop クラスターのバージョンとコンポーネントに関する記事をご覧ください。

サブスクリプション名

各 HDInsight クラスターは、1 つの Azure サブスクリプションに関連付けられます。

リソース グループ名

Azure Resource Manager を使用すると、アプリケーション内の複数のリソースを、Azure リソース グループと呼ばれる 1 つのグループとして使用できます。 アプリケーションのこれらのすべてのリソースを、1 回の連携した操作でデプロイ、更新、監視、または削除できます。

資格情報

HDInsight クラスターでは、クラスターの作成時に次の 2 つのユーザー アカウントを構成できます。

  • HTTP ユーザー。 既定のユーザー名は admin です。 Azure Portal の基本的な構成を使用します。 "クラスター ユーザー" と呼ばれることもあります。
  • SSH ユーザー (Linux クラスター)。 SSH 経由でクラスターに接続する際に使用します。 詳細については、HDInsight での SSH の使用に関するページを参照してください。

    メモ

    Windows ベースのクラスターでは、RDP を使用してクラスターに接続する RDP ユーザーを作成できます。

データ ソース

元の Hadoop 分散ファイル システム (HDFS) は、クラスター上の多数のローカル ディスクを使用します。 HDInsight は Azure Storage の BLOB を使用します。 Azure Storage は、堅牢な汎用ストレージ ソリューションであり、HDInsight とシームレスに統合されます。 HDInsight のすべてのコンポーネントは、BLOB に格納された構造化データまたは非構造化データを HDFS インターフェイスを介して直接操作できます。 Azure Storage にデータを格納すると、ユーザー データを失わずに、計算に使用されている HDInsight クラスターを安全に削除できます。

警告

汎用__の Azure Storage アカウントがサポートされるのは HDInsight のみです。 現時点では、__Blob Storage タイプのアカウントはサポートされません。

構成時に、Azure Storage アカウントと、その Azure Storage アカウントの BLOB コンテナーを指定する必要があります。 一部の作成プロセスでは、Azure Storage アカウントと BLOB コンテナーを事前に作成しておく必要があります。 BLOB コンテナーは、既定の保存先としてクラスターで使用されます。 必要に応じて、クラスターがアクセスできるその他の Azure Storage アカウント (リンクされたストレージ) を指定できます。 クラスターは、完全なパブリック読み取りアクセスまたは BLOB のみを対象とするパブリック読み取りアクセスで構成された BLOB コンテナーにアクセスすることもできます。 詳細については、Azure Storage リソースへのアクセスの管理に関するページを参照してください。

HDInsight ストレージ

メモ

次の図に示すように、BLOB コンテナーには、一連の BLOB がまとめられています。

Azure BLOB

ビジネス データの格納には、既定の BLOB コンテナーを使用しないことをお勧めします。 ストレージ コストを削減するために、既定の BLOB コンテナーの使用後、コンテナーを毎回削除することをお勧めします。 既定のコンテナーには、アプリケーション ログとシステム ログが格納されます。 コンテナーを削除する前に、ログを取り出してください。

警告

1 つの BLOB コンテナーを複数のクラスターで共有することはサポートされていません。

セカンダリ Azure Storage アカウントの使用方法の詳細については、HDInsight での Azure Storage の使用に関する記事をご覧ください。

Azure Storage に加え、Azure Data Lake Store が、HDInsight での HBase クラスターの既定のストレージ アカウントとして、4 種類すべての HDInsight クラスターのリンクされたストレージとして使用できます。 詳細については、「 Azure ポータルを使用して、Data Lake Store を使用する HDInsight クラスターを作成する」を参照してください。

場所 (リージョン)

HDInsight クラスターとその既定のストレージ アカウントは、同じ Azure の場所に配置されている必要があります。

Azure Azure リージョン

サポートされているリージョンのリストについては、「 HDInsight の価格 」の [リージョン]ドロップダウン リストをクリックしてください。

ノード価格レベル

クラスターの有効期間中、これらのノードの使用量に対して課金されます。 課金はクラスターが作成されると開始され、クラスターが削除されると停止されます。 クラスターを割り当て解除または保留にすることはできません。

クラスターの種類によって、ノードの種類、ノード数、ノード サイズが異なります。 たとえば、Hadoop クラスターの種類には 2 つの "ヘッド ノード" と 4 つの "データ ノード" (既定) がありますが、Storm クラスターの種類には 2 つの "Nimbus ノード"、3 つの "ZooKeeper ノード" と 4 つの "Supervisor ノード" (既定) があります。 HDInsight クラスターのコストは、ノード数とノードの仮想マシンのサイズによって決まります。 たとえば、大量のメモリを必要とする操作を実行することがわかっている場合は、より多くのメモリを持つコンピューティング リソースを選択できます。 学習目的の場合は、1 つのデータ ノードを使用することをお勧めします。 HDInsight の価格の詳細については、「 HDInsight 価格」をご覧ください。

メモ

クラスター サイズの制限は、Azure サブスクリプションによって異なります。 制限値を上げるには、課金サポートにお問い合わせください。

ノードに使用される仮想マシン イメージは HDInsight サービスの実装の詳細であるため、クラスターで使用されるノードは仮想マシンとしてカウントされません。 ノードで使用されるコンピューティング コアは、サブスクリプションで利用できるコンピューティング コアとしてカウントされ、その合計数に含まれます。 HDInsight クラスターの作成時に、利用可能なコアの数とクラスターで使用されるコアの数は、[ノード価格レベル] ブレードの概要セクションで確認できます。

Azure Portal を使用してクラスターを構成するときに、[ノード価格レベル] ブレードでノード サイズを利用できます。 また、別のノード サイズに関連するコストを確認することもできます。 次のスクリーンショットは、Linux ベースの Hadoop クラスターの選択肢を示しています。

HDInsight VM ノードのサイズ

次の表に、HDInsight クラスターでサポートされているサイズと、それらが提供する容量を示します。

Standard レベル: A シリーズ

クラシック デプロイ モデルでは、一部の VM サイズが PowerShell とコマンド ライン インターフェイス (CLI) で若干異なります。

  • Standard_A3: Large
  • Standard_A4: ExtraLarge
サイズ CPU コア数 メモリ NIC (最大) 最大 ディスク サイズ 最大 データ ディスク数 (各ディスク 1,023 GB) 最大 IOPS (各ディスク 500)
Standard_A3\Large 4 7 GB 2 一時ディスク = 285 GB 8 8 x 500
Standard_A4\ExtraLarge 8 14 GB 4 一時ディスク = 605 GB 16 16 x 500
Standard_A6 4 28 GB 2 一時ディスク = 285 GB 8 8 x 500
Standard_A7 8 56 GB 4 一時ディスク = 605 GB 16 16 x 500

Standard レベル: D シリーズ

サイズ CPU コア数 メモリ NIC (最大) 最大 ディスク サイズ 最大 データ ディスク数 (各ディスク 1,023 GB) 最大 IOPS (各ディスク 500)
Standard_D3 4 14 GB 4 一時的 (SSD) = 200 GB 8 8 x 500
Standard_D4 8 28 GB 8 一時的 (SSD) = 400 GB 16 16 x 500
Standard_D12 4 28 GB 4 一時的 (SSD) = 200 GB 8 8 x 500
Standard_D13 8 56 GB 8 一時的 (SSD) = 400 GB 16 16 x 500
Standard_D14 16 112 GB 8 一時的 (SSD) = 800 GB 32 32 x 500

Standard レベル: Dv2 シリーズ

サイズ CPU コア数 メモリ NIC (最大) 最大 ディスク サイズ 最大 データ ディスク数 (各ディスク 1,023 GB) 最大 IOPS (各ディスク 500)
Standard_D3_v2 4 14 GB 4 一時的 (SSD) = 200 GB 8 8 x 500
Standard_D4_v2 8 28 GB 8 一時的 (SSD) = 400 GB 16 16 x 500
Standard_D12_v2 4 28 GB 4 一時的 (SSD) = 200 GB 8 8 x 500
Standard_D13_v2 8 56 GB 8 一時的 (SSD) = 400 GB 16 16 x 500
Standard_D14_v2 16 112 GB 8 一時的 (SSD) = 800 GB 32 32 x 500

これらのリソースの使用を計画するときに注意する必要のあるデプロイの考慮事項については、 仮想マシンのサイズに関する記事をご覧ください。 さまざまなサイズの価格については、「HDInsight の価格」をご覧ください。

重要

クラスターの作成時または作成後のスケーリングで 32 個を超える worker ノードを使用することを予定している場合は、コア数が 8 個以上、RAM が 14 GB 以上のヘッド ノード サイズを選択する必要があります。

課金はクラスターが作成されると開始され、クラスターが削除されると停止されます。 価格の詳細については、 HDInsight の価格詳細に関する記述を参照してください。

追加のストレージの使用

場合によっては、クラスターへのストレージの追加が必要になることがあります。 たとえば、異なる地理的リージョンまたは異なるサービスの複数の Azure ストレージ アカウントがあり、それらをすべて HDInsight で分析する場合などです。

HDInsight クラスターを作成するとき、あるいはクラスターが作成された後に、ストレージ アカウントを追加できます。 「 スクリプト アクションを使用して Linux ベースの HDInsight クラスターをカスタマイズする」をご覧ください。

セカンダリ Azure Storage アカウントの詳細については、HDInsight での Azure Storage の使用に関する記事をご覧ください。 セカンダリ Data Lake Store の詳細については、「 Azure ポータルを使用して、Data Lake Store を使用する HDInsight クラスターを作成する」をご覧ください。

Hive/Oozie メタストアの使用

HDInsight クラスターを削除した後も Hive テーブルを保持する場合は、カスタム metastore を使用することをお勧めします。 そのメタストアを別の HDInsight クラスターにアタッチすることもできます。

重要

あるバージョンの HDInsight クラスター用に作成された HDInsight metastore は、別の HDInsight クラスター バージョン間で共有できません。 HDInsight のバージョンの一覧は、「サポートされる HDInsight のバージョン」をご覧ください。

メタストアには、Hive テーブル、パーティション、スキーマ、列などについての Hive と Oozie メタデータが格納されます。 metastore では Hive と Oozie メタデータを保持できるため、新しいクラスターを作成するときに、Hive テーブルまたは Oozie ジョブを再作成する必要はありません。 既定では、Hive は組み込みの Azure SQL Database を使用してこの情報を格納します。 組み込みデータベースは、クラスターが削除されるとメタデータを保持できません。 Hive metastore が構成された HDInsight クラスターで Hive テーブルを作成すると、同じ Hive metastore を使用してクラスターを再作成したときにそれらのテーブルが保持されます。

HBase のクラスターの種類では、メタストア構成は使用できません。

重要

カスタム metastore を作成するときは、データベース名にダッシュやハイフンを使用しないでください。 クラスター作成プロセスが失敗する可能性があります。

Azure Virtual Network の使用

Azure Virtual Network を使用すると、ソリューションに必要なリソースを含む、セキュリティで保護された永続的なネットワークを作成できます。 Virtual Network では次のことが可能です。

  • プライベート ネットワーク (クラウドのみ) 内でのクラウド リソース間の接続

    クラウドのみの構成の図

  • 仮想プライベート ネットワーク (VPN) を使用したローカル データセンター ネットワークへのクラウド リソースの接続 (サイト間またはポイント対サイト)。
サイト間構成 ポイント対サイト構成
サイト間構成では、ハードウェア VPN を使用するか、ルーティングとリモート アクセス サービスを使用して、データセンターの複数のリソースを Azure Virtual Network に接続できます。
サイト間構成の図
ポイント対サイト構成では、ソフトウェア VPN を使用して、特定のリソースを Azure Virtual Network に接続できます。
ポイント対サイト構成の図

Windows ベースのクラスターでは、クラシック デプロイ モデルで作成された仮想ネットワークが必要になります。 Linux ベースのクラスターでは、Resource Manager デプロイ モデルで作成された仮想ネットワークが必要になります。 ネットワークの種類が正しくない場合、クラスターの作成には使用できません。

仮想ネットワークの具体的な構成要件など、仮想ネットワークで HDInsight を使用する方法の詳細については、「Azure Virtual Network を使用した HDInsight 機能の拡張」をご覧ください。

HDInsight クラスターのカスタマイズ (ブートストラップ) を使用したクラスターのカスタマイズ

次の構成ファイルを構成することが必要な場合があります。

  • clusterIdentity.xml
  • core-site.xml
  • gateway.xml
  • hbase-env.xml
  • hbase-site.xml
  • hdfs-site.xml
  • hive-env.xml
  • hive-site.xml
  • mapred-site
  • oozie-site.xml
  • oozie-env.xml
  • storm-site.xml
  • tez-site.xml
  • webhcat-site.xml
  • yarn-site.xml

クラスターの有効期間中に変更を保持するには、作成プロセスで HDInsight クラスターのカスタマイズを使用するか、Linux ベースのクラスターで Ambari を使用します。 詳細については、「 ブートストラップを使って HDInsight クラスターをカスタマイズする」をご覧ください。

メモ

再イメージ化により、Windows ベースのクラスターは変更を保持できません。 詳細については、「 Role Instance Restarts Due to OS Upgrades (OS のアップグレードに伴うロール インスタンスの再起動)」を参照してください。 クラスターの有効期間中に変更を保持するには、作成プロセスで HDInsight クラスターのカスタマイズを使用する必要があります。

スクリプト アクションを使用したクラスターのカスタマイズ

追加コンポーネントをインストールするか、作成中にスクリプトを使用してクラスターの構成をカスタマイズできます。 このようなスクリプトは、スクリプト操作を使用して実行します。これは Azure ポータル、HDInsight Windows PowerShell コマンドレット、HDInsight .NET SDK で使用できる構成オプションです。 詳しくは、「Script Action を使って HDInsight をカスタマイズする」をご覧ください。

Mahout や Cascading などの一部のネイティブ Java コンポーネントは、Java アーカイブ (JAR) ファイルとしてクラスター上で実行できます。 これらの JAR ファイルは、Azure Storage に分配し、Hadoop ジョブ送信メカニズムによって HDInsight クラスターに送信できます。 詳細については、 プログラムによる Hadoop ジョブの送信に関するページを参照してください。

メモ

HDInsight クラスターへの JAR ファイルのデプロイ、または HDInsight クラスターでの JAR ファイルの呼び出しに関する問題がある場合は、Microsoft サポートにお問い合わせください。

Cascading は HDInsight ではサポートされておらず、Microsoft サポートの対象でもありません。 サポートされているコンポーネントの一覧については、「HDInsight によって提供されるクラスター バージョンの新機能」を参照してください。

エッジ ノードの使用

空のエッジ ノードは、ヘッド ノードの場合と同じクライアント ツールがインストールされ、構成された Linux 仮想マシンです。 エッジ ノードは、クラスターへのアクセス、クライアント アプリケーションのテスト、およびクライアント アプリケーションのホストに使用できます。 詳細については、「 Use empty edge nodes in HDInsight」(HDInsight で空のエッジ ノードを使用する) を参照してください。

クラスターの作成方法

この記事では、Linux ベースの HDInsight クラスターの作成に関する基本的な情報を提供しました。 次の表を使用して、ニーズに最も適した方法を使用したクラスターの作成方法に関する特定の情報を見つけてください。

クラスターの作成方法 Web ブラウザー コマンド ライン REST API SDK Linux、Mac OS X、または Unix Windows
Azure ポータル      
Azure Data Factory
Azure CLI      
Azure PowerShell      
cURL    
.NET SDK      
Azure リソース マネージャーのテンプレート