Azure Data Lake Storage 内のデータの主なアクセス方法の 1 つは、Hadoop FileSystem を使用することです。 Azure Blob Storage の Data Lake Storage ユーザーは、Azure Blob File System ドライバーまたは ABFS にアクセスできます。 ABFS は、Apache Hadoop の一部であり、Hadoop の商用ディストリビューションの多くに含まれています。 ABFS ドライバーを使用することで、多くのアプリケーションとフレームワークは、Data Lake Storageを明示的に参照するコードなしで、Azure Blob Storage内のデータにアクセスできます。
以前の機能: Windows Azure Storage BLOB ドライバー
Windows Azure Storage Blob ドライバー (WASB ドライバー) は、Azure Blob Storage のオリジナル サポートを提供しました。 このドライバーは、(Hadoop FileSystem インターフェイスで必要に応じて) ファイル システムセマンティクスを、Azure Blob Storageによって公開されるオブジェクト ストア スタイル インターフェイスのセマンティクスにマッピングする複雑なタスクを実行します。 このドライバーは引き続きこのモデルをサポートし、BLOB に格納されているデータへの高パフォーマンス アクセスを提供します。 ただし、このマッピングを実行する大量のコードが含まれているので、保守が困難になります。 さらに、ディレクトリに適用される FileSystem.rename() と FileSystem.delete() では、オブジェクト ストアにネイティブ ディレクトリのサポートがないため、ドライバーは膨大な数の操作を実行する必要があります。 このオーバーヘッドは、多くの場合、パフォーマンスの低下につながります。 ABFS ドライバーは、WASB 固有の欠陥を克服します。
ABFS のしくみ
Azure Data Lake Storage REST インターフェイスは、Azure Blob Storage経由のファイル システム セマンティクスをサポートします。 Hadoop ファイル システムも同じセマンティクスをサポートするように設計されているため、ドライバーで複雑なマッピングを行う必要はありません。 したがって、Azure BLOB ファイル システム ドライバー (または ABFS) は、REST API の単なるクライアント shim です。
ただし、ドライバーは引き続きいくつかの機能を実行する必要があります。
参照データへの URI スキーム
Hadoop 内の他のファイル システム実装と一致する ABFS ドライバーは、リソース (ディレクトリとファイル) を個別にアドレス指定できるように、独自の URI スキームを定義します。 URI スキームは、「Azure Data Lake Storage の URI を使用する」に記載されています。 URI の構造は abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name> で、 abfss:// は暗号化された接続に TLS を使用します。
この URI 形式を使用すると、標準の Hadoop ツールとフレームワークで次のリソースを参照できます。
hdfs dfs -mkdir -p abfs://fileanalysis@myanalytics.dfs.core.windows.net/tutorials/flightdelays/data
hdfs dfs -put flight_delays.csv abfs://fileanalysis@myanalytics.dfs.core.windows.net/tutorials/flightdelays/data/
内部的には、ABFS ドライバーは URI で指定されたリソースをファイルとディレクトリに変換し、それらの参照を使用して Azure Data Lake Storage REST API を呼び出します。
認証
ABFS ドライバーは、Hadoop アプリケーションが、Data Lake Storage対応アカウントに含まれるリソースに安全にアクセスできるように、2 つの形式の認証をサポートしています。 認証には、階層型名前空間が有効になっているストレージ アカウントが必要です。 使用可能な認証スキームの詳細については、Azure Storage セキュリティ ガイドを参照してください。 サポートされている認証スキームは次のとおりです。
共有キー: この認証方法は、アカウント内のすべてのリソースへのアクセス権をユーザーに付与します。 キーは暗号化され、Hadoop 構成に格納されます。
Microsoft Entra ID OAuth ベアラー トークン: ドライバーは、エンド ユーザーの ID または構成済みのサービス プリンシパルを使用して、Microsoft Entra のベアラー トークンを取得および更新します。 この認証モデルを使用する場合は、指定されたトークンに関連付けられている ID を使用して、呼び出しごとにすべてのアクセスを承認します。これは、割り当てられた POSIX Access Control リスト (ACL) に対して評価されます。
注
Azure Data Lake Storageでは、Microsoft Entra ID OAuth 2.0 認証がサポートされます。
構成
ABFS ドライバーのすべての構成を core-site.xml 構成ファイルに格納します。
Ambari を機能する Hadoop ディストリビューションでは、Web ポータルまたは Ambari REST API を使用して構成を管理することもできます。
サポートされているすべての構成エントリの詳細については、 Hadoop の公式ドキュメントを参照してください。