HDInsight で Apache Hadoop ジョブのデータをアップロードする

HDInsight では、Azure Storage および Azure Data Lake Storage 上で Hadoop 分散ファイル システム (HDFS) を利用できます。 このストレージには、Gen1 と Gen2 が含まれています。 Azure Storage と Data Lake Storage Gen1 および Gen2 は、HDFS 拡張機能として設計されています。 Hadoop 環境のすべてのコンポーネントを使用し、管理対象のデータを直接操作できます。 Azure Storage、Data Lake Storage Gen1、Gen2 は個別のファイル システムです。 システムは、データを格納し、そのデータを計算するために最適化されています。 Azure Storage を使用するメリットの詳細については、HDInsight での Azure Storage の使用に関する記事をご覧ください。 また、HDInsight での Data Lake Storage Gen1 の使用および HDInsight での Data Lake Storage Gen2 の使用に関する記事も参照してください。

前提条件

開始する前に、次の要件にご注意ください。

Azure Storage へのデータのアップロード

Utilities

Microsoft では、Azure Storage を操作する次のユーティリティを提供しています。

ツール Linux OS X Windows
Azure Portal
Azure CLI
Azure PowerShell
AzCopy
Hadoop コマンド

注意

Hadoop コマンドは、HDInsight クラスター上でのみ使用できます。 このコマンドでは、ローカル ファイル システムのデータを Azure Storage 内に読み込むことのみが可能です。

Hadoop コマンド ライン

Hadoop コマンド ラインは、クラスターのヘッド ノードに既にデータが存在している場合に、Azure Storage BLOB にデータを格納する際にのみ役立ちます。

Hadoop コマンドを使用するには、最初に SSH または PuTTY を使用してヘッドノードに接続する必要があります。

接続したら、次の構文を使用してファイルをストレージにアップロードすることができます。

hadoop fs -copyFromLocal <localFilePath> <storageFilePath>

たとえば、hadoop fs -copyFromLocal data.txt /example/data/data.txt のように指定します。

HDInsight の既定のファイル システムは Azure Storage 内にあるため、/example/data/data.txt は実際には Azure Storage 内にあります。 このファイルは次のように表すこともできます。

wasbs:///example/data/data.txt

or

wasbs://<ContainerName>@<StorageAccountName>.blob.core.windows.net/example/data/davinci.txt

ファイルに使用するその他の Hadoop コマンドの一覧は、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html をご覧ください。

警告

Apache HBase クラスターでは、データ書き込み時に使われる既定のブロック サイズは 256 KB です。 HBase API または REST API を使うときは問題なく動きますが、hadoop または hdfs dfs コマンドを使って 12 GB より大きいデータを書き込むとエラーになります。 詳しくは、BLOB への書き込みに関するストレージ例外についての記事をご覧ください。

グラフィカル クライアント

Azure Storage を操作するためのグラフィカル インターフェイスを提供するアプリケーションもいくつかあります。 これらのアプリケーションの一部を次の一覧表に示します。

Client Linux OS X Windows
Microsoft Visual Studio Tools for HDInsight
Azure Storage Explorer
Cerulea
CloudXplorer
Microsoft Azure 用の CloudBerry Explorer
Cyberduck

Azure Storage をローカル ドライブとしてマウントする

Mount Azure Storage as Local Drive (Azure Storage をローカル ドライブとしてマウントする)」を参照してください。

サービスを使用してアップロードする

Azure Data Factory

Azure Data Factory はフル マネージドのサービスで、データの保存、処理、移動の各サービスを効率的で適用性のある信頼性の高いデータ生成パイプラインとして構成します。

ストレージの種類 ドキュメント
Azure BLOB ストレージ Copy data to or from Azure Blob storage by using Azure Data Factory (Azure Data Factory を使用して、Azure Blob ストレージをコピー先、またはコピー元にして、データをコピーする)
Azure Data Lake Storage Gen1 Azure Data Factory を使用して Azure Data Lake Storage Gen1 との間でデータをコピーする
Azure Data Lake Storage Gen2 Load data into Azure Data Lake Storage Gen2 with Azure Data Factory (Azure Data Factory を使用して Azure Data Lake Storage Gen2 内にデータを読み込む)

Apache Sqoop

Sqoop は、Hadoop とリレーショナル データベース間でデータを転送するためのツールです。 これを使用して、SQL Server、MySQL、Oracle などのリレーショナル データベース管理システム (RDBMS) からデータをインポートします。 その後、Hadoop 分散ファイル システム (HDFS) にデータをインポートし、 MapReduce または Hive を使用して Hadoop のデータを変換し、そのデータを RDBMS へ取り込んだりできます。

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

開発 SDK

Azure Storage には、次のプログラミング言語で Azure SDK を使用してアクセスすることもできます。

  • .NET
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby

Azure SDK のインストールの詳細については、 Azure のダウンロード

次のステップ

ここでは、HDInsight にデータを取り込む方法を説明しました。次の記事でデータの分析について学習してください。