Azure HDInsight クラスターで Azure Storage を使用するUse Azure storage with Azure HDInsight clusters

データは、Azure Blob StorageAzure Data Lake Storage Gen1、または Azure Data Lake Storage Gen2 に格納できます。You can store data in Azure Blob storage, Azure Data Lake Storage Gen1, or Azure Data Lake Storage Gen2. または、これらのオプションを組み合わせることができます。Or a combination of these options. いずれのストレージ オプションでも、計算に使用される HDInsight クラスターを安全に削除できます。このとき、ユーザー データは失われません。These storage options enable you to safely delete HDInsight clusters that are used for computation without losing user data.

Apache Hadoop は、既定のファイル システムの概念をサポートしています。Apache Hadoop supports a notion of the default file system. 既定のファイル システムは、既定のスキームとオーソリティを意味します。The default file system implies a default scheme and authority. これは相対パスの解決に使用することもできます。It can also be used to resolve relative paths. HDInsight クラスターの作成プロセス時に、既定のファイル システムとして Azure Storage 内の BLOB コンテナーを指定できます。During the HDInsight cluster creation process, you can specify a blob container in Azure Storage as the default file system. または、HDInsight 3.6 を使用して、Azure Blob Storage または Azure Data Lake Storage Gen1/Azure Data Lake Storage Gen2 のいずれかを既定のファイル システムとして選択することもできますが、いくつかの例外があります。Or with HDInsight 3.6, you can select either Azure Blob storage or Azure Data Lake Storage Gen1/ Azure Data Lake Storage Gen2 as the default files system with a few exceptions. Data Lake Storage Gen1 を既定のストレージとリンクされたストレージの両方として使用することに対するサポートの可否については、HDInsight クラスターの可用性に関するセクションを参照してください。For the supportability of using Data Lake Storage Gen1 as both the default and linked storage, see Availability for HDInsight cluster.

この記事では、HDInsight クラスターでの Azure Storage の動作について説明します。In this article, you learn how Azure Storage works with HDInsight clusters.

重要

ストレージ アカウントの種類 BlobStorage は、HDInsight クラスターのセカンダリ ストレージとしてのみ使用できます。Storage account kind BlobStorage can only be used as secondary storage for HDInsight clusters.

Storage アカウントの種類Storage account kind サポートされているサービスSupported services サポートされているパフォーマンス レベルSupported performance tiers サポートされていないパフォーマンス レベルNot supported performance tiers サポートされているアクセス層Supported access tiers
StorageV2 (汎用 v2)StorageV2 (general-purpose v2) BLOBBlob StandardStandard PremiumPremium ホット、クール、アーカイブ*Hot, Cool, Archive*
Storage (汎用 V1)Storage (general-purpose v1) BLOBBlob StandardStandard PremiumPremium 該当なしN/A
BlobStorageBlobStorage BLOBBlob StandardStandard PremiumPremium ホット、クール、アーカイブ*Hot, Cool, Archive*

ビジネス データを格納するために既定の BLOB コンテナーを使用することはお勧めできません。We don't recommend that you use the default blob container for storing business data. ストレージ コストを削減するために、既定の BLOB コンテナーの使用後、コンテナーを毎回削除することをお勧めします。Deleting the default blob container after each use to reduce storage cost is a good practice. 既定のコンテナーには、アプリケーション ログとシステム ログが格納されます。The default container contains application and system logs. コンテナーを削除する前に、ログを取り出してください。Make sure to retrieve the logs before deleting the container.

1 つの BLOB コンテナーを複数のクラスターの既定のファイル システムとして共有することはサポートされていません。Sharing one blob container as the default file system for multiple clusters isn't supported.

注意

アーカイブ アクセス層はオフライン層であり、取得の際に数時間の待ち時間があるので、HDInsight での使用は推奨されません。The Archive access tier is an offline tier that has a several hour retrieval latency and isn't recommended for use with HDInsight. 詳しくは、「アーカイブ アクセス層」をご覧ください。For more information, see Archive access tier.

クラスター内からファイルにアクセスするAccess files from within cluster

複数の方法で、HDInsight クラスターから Data Lake Storage のファイルにアクセスできます。There are several ways you can access the files in Data Lake Storage from an HDInsight cluster. この URI スキームは、暗号化なしのアクセス ( wasb: プレフィックス) と TLS で暗号化されたアクセス ( wasbs ) に対応しています。The URI scheme provides unencrypted access (with the wasb: prefix) and TLS encrypted access (with wasbs ). 同じ Azure リージョン内のデータにアクセスする場合でも、できる限り wasbs を使用することをお勧めします。We recommend using wasbs wherever possible, even when accessing data that lives inside the same region in Azure.

  • 完全修飾名の使用Using the fully qualified name . この方法により、アクセスするファイルへの完全パスを指定します。With this approach, you provide the full path to the file that you want to access.

    wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
    
  • 短縮されたパスの使用Using the shortened path format . この方法により、クラスター ルートへのパスを次に置き換えます。With this approach, you replace the path up to the cluster root with:

    wasb:///<file.path>/
    wasbs:///<file.path>/
    
  • 相対パスの使用Using the relative path . この方法により、アクセスするファイルへの相対パスのみを指定します。With this approach, you only provide the relative path to the file that you want to access.

    /<file.path>/
    

データ アクセスの例Data access examples

例は、クラスターのヘッド ノードへの ssh 接続に基づいています。Examples are based on an ssh connection to the head node of the cluster. この例では、3 つの URI スキームがすべて使用されています。The examples use all three URI schemes. CONTAINERNAMESTORAGEACCOUNT を関連する値に置き換えます。Replace CONTAINERNAME and STORAGEACCOUNT with the relevant values

いくつかの hdfs コマンドA few hdfs commands

  1. ローカル ストレージにファイルを作成します。Create a file on local storage.

    touch testFile.txt
    
  2. クラスター ストレージにディレクトリを作成します。Create directories on cluster storage.

    hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -mkdir wasbs:///sampledata2/
    hdfs dfs -mkdir /sampledata3/
    
  3. ローカル ストレージからクラスター ストレージにデータをコピーします。Copy data from local storage to cluster storage.

    hdfs dfs -copyFromLocal testFile.txt  wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -copyFromLocal testFile.txt  wasbs:///sampledata2/
    hdfs dfs -copyFromLocal testFile.txt  /sampledata3/
    
  4. クラスター ストレージのディレクトリの内容を一覧表示します。List directory contents on cluster storage.

    hdfs dfs -ls wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/
    hdfs dfs -ls wasbs:///sampledata2/
    hdfs dfs -ls /sampledata3/
    

注意

HDInsight の外部から BLOB を操作する場合、ほとんどのユーティリティで WASB 形式が認識されず、代わりに example/jars/hadoop-mapreduce-examples.jar などの基本的なパス形式が要求されます。When working with blobs outside of HDInsight, most utilities do not recognize the WASB format and instead expect a basic path format, such as example/jars/hadoop-mapreduce-examples.jar.

Hive テーブルの作成Creating a Hive table

3 つのファイルの場所は説明目的で提示されています。Three file locations are shown for illustrative purposes. 実際の実行では、LOCATION エントリを 1 つだけ使用します。For actual execution, use only one of the LOCATION entries.

DROP TABLE myTable;
CREATE EXTERNAL TABLE myTable (
    t1 string,
    t2 string,
    t3 string,
    t4 string,
    t5 string,
    t6 string,
    t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE
LOCATION 'wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/example/data/';
LOCATION 'wasbs:///example/data/';
LOCATION '/example/data/';

クラスターの外側からファイルにアクセスするAccess files from outside cluster

Microsoft では、Azure Storage を操作する次のツールを提供しています。Microsoft provides the following tools to work with Azure Storage:

ツールTool LinuxLinux OS XOS X WindowsWindows
Azure PortalAzure portal
Azure CLIAzure CLI
Azure PowerShellAzure PowerShell
AzCopyAzCopy

Ambari からストレージ パスを特定するIdentify storage path from Ambari

  • 構成済みの既定ストアへの完全パスを特定するには、To identify the complete path to the configured default store, navigate to:

    [HDFS] > [構成] の順に移動し、フィルター入力ボックスに「fs.defaultFS」と入力します。HDFS > Configs and enter fs.defaultFS in the filter input box.

  • Wasb ストアがセカンダリ ストレージとして構成されているかどうかを確認するには、To check if wasb store is configured as secondary storage, navigate to:

    [HDFS] > [構成] の順に移動し、フィルター入力ボックスに「blob.core.windows.net」と入力します。HDFS > Configs and enter blob.core.windows.net in the filter input box.

Ambari REST API を使用してパスを取得する方法については、「 既定値のストレージの取得」をご参照ください。To obtain the path using Ambari REST API, see Get the default storage.

BLOB コンテナーBlob containers

BLOB を使用するには、まず、Azure ストレージ アカウントを作成します。To use blobs, you first create an Azure Storage account. この手順の一環として、ストレージ アカウントを作成する Azure リージョンを指定します。As part of this step, you specify an Azure region where the storage account is created. クラスターとストレージ アカウントは、同じリージョンに置く必要があります。The cluster and the storage account must be hosted in the same region. Hive メタストア SQL Server データベースと Apache Oozie メタストア SQL Server データベースは同じリージョンに配置する必要があります。The Hive metastore SQL Server database and Apache Oozie metastore SQL Server database must be located in the same region.

作成される各 BLOB は、どこにあるとしても、Azure ストレージ アカウント内のコンテナーに属します。Wherever it lives, each blob you create belongs to a container in your Azure Storage account. このコンテナーは、HDInsight の外部で作成された既存の BLOB であっても、This container may be an existing blob created outside of HDInsight. HDInsight クラスター用に作成されたコンテナーであってもかまいません。Or it may be a container that is created for an HDInsight cluster.

既定の BLOB コンテナーには、ジョブ履歴やログなどのクラスター固有の情報が格納されます。The default Blob container stores cluster-specific information such as job history and logs. 既定の BLOB コンテナーと複数の HDInsight クラスターを共有しないでください。Don't share a default Blob container with multiple HDInsight clusters. この操作により、ジョブ履歴が破損する場合があります。This action might corrupt job history. 各クラスターで別のコンテナーを使用することをお勧めします。It's recommended to use a different container for each cluster. 既定のストレージ アカウントではなく、関連するすべてのクラスターに指定された、リンクされているストレージ アカウントに共有データを格納します。Put shared data on a linked storage account specified for all relevant clusters rather than the default storage account. リンクされているストレージ アカウントの構成の詳細については、HDInsight クラスターの作成に関するページを参照してください。For more information on configuring linked storage accounts, see Create HDInsight clusters. ただし、元の HDInsight クラスターを削除した後でも既定のストレージ コンテナーを再利用できます。However you can reuse a default storage container after the original HDInsight cluster has been deleted. HBase クラスターでは、削除された HBase クラスターで使用される既定の BLOB コンテナーを使用して、新しい HBase クラスターを作成することで、HBase テーブルのスキーマとデータを実際に保持できます。For HBase clusters, you can actually keep the HBase table schema and data by creating a new HBase cluster using the default blob container that is used by a deleted HBase cluster

注意

セキュリティで保護された転送を必要とする機能では、アカウントへのすべての要求が安全な接続を経由することが強制されます。The feature that requires secure transfer enforces all requests to your account through a secure connection. この機能は、HDInsight クラスター バージョン 3.6 以降でのみサポートされます。Only HDInsight cluster version 3.6 or newer supports this feature. 詳しくは、「Azure HDInsight の安全な転送のストレージ アカウントで Apache Hadoop クラスターを作成する」をご覧ください。For more information, see Create Apache Hadoop cluster with secure transfer storage accounts in Azure HDInsight.

追加ストレージ アカウントの使用Use additional storage accounts

HDInsight クラスターを作成しているときに、そのクラスターに関連付ける Azure ストレージ アカウントを指定します。While creating an HDInsight cluster, you specify the Azure Storage account you want to associate with it. また、作成プロセス時またはクラスターが作成された後に、同じ Azure サブスクリプションか別の Azure サブスクリプションに属するストレージ アカウントをさらに追加することもできます。Also, you can add additional storage accounts from the same Azure subscription or different Azure subscriptions during the creation process or after a cluster has been created. ストレージ アカウントをさらに追加する手順については、HDInsight クラスターの作成に関するページをご覧ください。For instructions about adding additional storage accounts, see Create HDInsight clusters.

警告

HDInsight クラスター以外の場所で追加のストレージ アカウントを使用することはできません。Using an additional storage account in a different location than the HDInsight cluster is not supported.

次のステップNext steps

この記事では、HDInsight で HDFS と互換性のある Azure Storage を使う方法について説明しました。In this article, you learned how to use HDFS-compatible Azure storage with HDInsight. このストレージにより、収集したデータを長期にわたって格納できる適応性に優れたソリューションを構築できます。さらに HDInsight を使用すると、格納されている構造化データと非構造化データから有益な情報を得ることができます。This storage allows you to build adaptable, long-term, archiving data acquisition solutions and use HDInsight to unlock the information inside the stored structured and unstructured data.

詳細については、次を参照してください。For more information, see: