Azure BLOB ファイルシステム ドライバー (ABFS):Hadoop 専用の Azure Storage ドライバーThe Azure Blob Filesystem driver (ABFS): A dedicated Azure Storage driver for Hadoop

Azure Data Lake Storage Gen2 内のデータの主要なアクセス方法の 1 つは、Hadoop FileSystem です。One of the primary access methods for data in Azure Data Lake Storage Gen2 is via the Hadoop FileSystem. Data Lake Storage Gen2 により、Azure Blob Storage のユーザーは、新しいドライバーである Azure BLOB ファイル システム ドライバー (ABFS) にアクセスできます。Data Lake Storage Gen2 allows users of Azure Blob Storage access to a new driver, the Azure Blob File System driver or ABFS. ABFS は、Apache Hadoop の一部であり、Hadoop の商用ディストリビューションの多くに含まれています。ABFS is part of Apache Hadoop and is included in many of the commercial distributions of Hadoop. このドライバーを使用すると、多くのアプリケーションとフレームワークは、Data Lake Storage Gen2 を明示的に参照するコードがなくても Azure Blob Storage 内のデータにアクセスできます。Using this driver, many applications and frameworks can access data in Azure Blob Storage without any code explicitly referencing Data Lake Storage Gen2.

以前の機能:Windows Azure Storage Blob ドライバーPrior capability: The Windows Azure Storage Blob driver

Windows Azure Storage Blob ドライバー (WASB ドライバー) は、Azure Blob Storage のオリジナル サポートを提供しました。The Windows Azure Storage Blob driver or WASB driver provided the original support for Azure Blob Storage. このドライバーは、(Hadoop FileSystem インターフェイスでの必要に応じて) Azure Blob Storage によって公開されているオブジェクト ストア スタイルのインターフェイスのセマンティクスへのファイル システム セマンティクスのマッピングの複雑なタスクを実行しました。This driver performed the complex task of mapping file system semantics (as required by the Hadoop FileSystem interface) to that of the object store style interface exposed by Azure Blob Storage. このドライバーは引き続きこのモデルをサポートし、BLOB に格納されたデータへの高パフォーマンス アクセスを実現しますが、このマッピングを実行するコードが大量に含まれているため、メンテナンスが困難になります。This driver continues to support this model, providing high performance access to data stored in Blobs, but contains a significant amount of code performing this mapping, making it difficult to maintain. さらに、FileSystem.rename()FileSystem.delete() などの一部の操作がディレクトリに適用される場合、(オブジェクト ストアにディレクトリのサポートがないため) ドライバーが膨大な数の操作を実行する必要があり、多くの場合にパフォーマンスの低下につながります。Additionally, some operations such as FileSystem.rename() and FileSystem.delete() when applied to directories require the driver to perform a vast number of operations (due to object stores lack of support for directories) which often leads to degraded performance. ABFS ドライバーは、WASB の本質的な弱点を克服するために設計されました。The ABFS driver was designed to overcome the inherent deficiencies of WASB.

Azure BLOB ファイル システム ドライバーThe Azure Blob File System driver

Azure Data Lake Storage REST インターフェイスは Azure Blob Storage 上のファイル システムのセマンティクスをサポートするように設計されています。The Azure Data Lake Storage REST interface is designed to support file system semantics over Azure Blob Storage. Hadoop FileSystem も同じセマンティクスをサポートするように設計されている場合、ドライバー内での複雑なマッピングは必要ありません。Given that the Hadoop FileSystem is also designed to support the same semantics there is no requirement for a complex mapping in the driver. したがって、Azure BLOB ファイル システム ドライバー (または ABFS) は、REST API の単なるクライアント shim です。Thus, the Azure Blob File System driver (or ABFS) is a mere client shim for the REST API.

ただし、ドライバーが実行する必要のある機能がいくつかあります。However, there are some functions that the driver must still perform:

参照データへの URI スキームURI scheme to reference data

Hadoop 内の他のファイルシステムの実装と一貫性のある ABFS ドライバーは、リソース (ディレクトリとファイル) を明確にアドレス指定できるように独自の URI スキームを定義します。Consistent with other FileSystem implementations within Hadoop, the ABFS driver defines its own URI scheme so that resources (directories and files) may be distinctly addressed. URI スキームは、「Use the Azure Data Lake Storage Gen2 URI」(Azure Data Lake Storage Gen2 URI の使用) に記載されています。The URI scheme is documented in Use the Azure Data Lake Storage Gen2 URI. URI の構造は次のとおりです: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>The structure of the URI is: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>

上記の URI 形式を使用して、標準の Hadoop ツールとフレームワークを使用してこれらのリソースを参照できます。Using the above URI format, standard Hadoop tools and frameworks can be used to reference these resources:

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 を呼び出します。Internally, the ABFS driver translates the resource(s) specified in the URI to files and directories and makes calls to the Azure Data Lake Storage REST API with those references.

AuthenticationAuthentication

Hadoop アプリケーションが Data Lake Storage Gen2 対応アカウントに含まれるリソースに安全にアクセスできるように、ABFS ドライバーは 2 つの認証形式をサポートしています。The ABFS driver supports two forms of authentication so that the Hadoop application may securely access resources contained within a Data Lake Storage Gen2 capable account. 使用できる認証方式の詳細については、「Azure Storage セキュリティ ガイド」を参照してください。Full details of the available authentication schemes are provided in the Azure Storage security guide. 次に例を示します。They are:

  • 共有キー: このキーを使用すると、ユーザーはアカウント内のすべてのリソースにアクセスできます。Shared Key: This permits users access to ALL resources in the account. キーが暗号化され、Hadoop 構成に格納されます。The key is encrypted and stored in Hadoop configuration.

  • Azure Active Directory OAuth ベアラー トークン: Azure AD ベアラー トークンは、エンド ユーザーの ID または構成されているサービス プリンシパルのいずれかを使用してドライバーによって取得および更新されます。Azure Active Directory OAuth Bearer Token: Azure AD bearer tokens are acquired and refreshed by the driver using either the identity of the end user or a configured Service Principal. この認証モデルを使用すると、すべてのアクセスは、指定したトークンに関連付けられた ID を使用して呼び出しごとに承認され、割り当てられた POSIX アクセス制御リスト (ACL) に対して評価されます。Using this authentication model, all access is authorized on a per-call basis using the identity associated with the supplied token and evaluated against the assigned POSIX Access Control List (ACL).

構成Configuration

ABFS ドライバーのすべての構成は core-site.xml 構成ファイルに格納されます。All configuration for the ABFS driver is stored in the core-site.xml configuration file. Ambari を備えた Hadoop ディストリビューションでは、構成は Web ポータルまたは Ambari REST API を使用して管理することもできます。On Hadoop distributions featuring Ambari, the configuration may also be managed using the web portal or Ambari REST API.

サポートされるすべての構成エントリの詳細は、公式 Hadoop ドキュメントで指定されています。Details of all supported configuration entries are specified in the Official Hadoop documentation.

Hadoop ドキュメントHadoop documentation

ABFS ドライバーについては、公式 Hadoop ドキュメントに完全に記載されていますThe ABFS driver is fully documented in the Official Hadoop documentation

次の手順Next steps