HDInsight で Apache Hadoop ジョブのデータをアップロードする
HDInsight では、Azure Storage および Azure Data Lake Storage 上で Hadoop 分散ファイル システム (HDFS) を利用できます。 このストレージには Gen2 が含まれています。 Azure Storage と Data Lake Storage Gen2 は、HDFS 拡張機能として設計されています。 Hadoop 環境のすべてのコンポーネントを使用し、管理対象のデータを直接操作できます。 Azure Storage、Data Lake Storage Gen2 は個別のファイル システムです。 システムは、データを格納し、そのデータを計算するために最適化されています。 Azure Storage を使用するメリットの詳細については、HDInsight での Azure Storage の使用に関する記事をご覧ください。 HDInsight での Data Lake Storage Gen2 の使用に関するページを参照してください。
前提条件
開始する前に、次の要件にご注意ください。
- Azure HDInsight クラスター。 手順については、Azure HDInsight のクイックスタートに関するページをご覧ください。
- 次の記事に関する知識
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
または
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 ストレージをコピー先、またはコピー元にして、データをコピーする) |
(../data-factory/connector-azure-data-lake-store.md) | |
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 にデータを取り込む方法を説明しました。次の記事でデータの分析について学習してください。