Драйвер файловой системы больших двоичных объектов Azure (ABFS): выделенный драйвер хранилища Azure для Hadoop

Один из основных способов доступа к данным в хранилище Azure Data Lake Storage 2-го поколения связан с использованием файловой системы Hadoop. В Data Lake Storage 2-го поколения пользователи хранилища BLOB-объектов Azure могут получить доступ к новому драйверу, драйверу файловой системы BLOB-объектов Azure или ABFS. ABFS является частью Apache Hadoop и входит во многие коммерческие дистрибутивы Hadoop. Драйвер ABFS позволяет многим приложениям и платформам получать доступ к данным в Хранилище BLOB-объектов Azure без явного ссылки на код Data Lake Storage 2-го поколения.

Предыдущая возможность: драйвер Windows Azure Storage Blob

Драйвер Windows Azure Storage Blob или WASB предоставлял оригинальную поддержку хранилища BLOB-объектов. Этот драйвер выполнял сложную задачу сопоставления семантики файловой системы (как это требуется интерфейсом файловой системы Hadoop) с семантикой интерфейса стиля хранилища объектов, предоставляемого хранилищем BLOB-объектов Azure. Этот драйвер продолжает поддерживать эту модель, обеспечивая высокопроизводительный доступ к данным, хранящимся в больших двоичных объектах. Проблема заключается в том, что для этого сопоставления используется значительный объем кода, что затрудняет его техническое обслуживание. Кроме того, при некоторых применяемых к каталогам операциях, таких как FileSystem.rename() и FileSystem.delete(), требуется, чтобы драйвер выполнил большое количество операций (из-за того, что объекты хранилища не поддерживают каталоги), что часто приводит к снижению производительности. Драйвер ABFS разработан для преодоления присущих WASB недостатков.

Драйвер файловой системы больших двоичных объектов Azure

Интерфейс REST хранилища Azure Data Lake Storage поддерживает семантику файловой системы с помощью хранилища BLOB-объектов Azure. Учитывая, что файловая система Hadoop также предназначена для поддержки той же семантики, что и сложное сопоставление в драйвере. Таким образом, драйвер файловой системы больших двоичных объектов Azure (или ABFS) является простой оболочкой клиента для интерфейса REST API.

Однако существуют некоторые функции, которые драйвер все же должен выполнять:

Схема URI для ссылки на данные

В соответствии с другими реализациями файловой системы в Hadoop драйвер ABFS определяет собственную схему URI, чтобы ресурсы (каталоги и файлы) могли быть четко устранены. Схему URI см. в статье Использование URI в хранилище Azure Data Lake Storage Gen2. URI имеет такую структуру: abfs[s]://file_system@account_name.dfs.core.windows.net/<path>/<path>/<file_name>

Используя этот формат 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, в файлы и каталоги и вызывает REST API хранилища Azure Data Lake Storage с использованием этих ссылок.

Проверка подлинности

Драйвер ABFS поддерживает две формы проверки подлинности, поэтому приложение Hadoop может безопасно обращаться к ресурсам, содержащимся в учетной записи, совместимой с Data Lake Storage 2-го поколения. Дополнительные сведения о схемах проверки подлинности приведены в Руководстве по безопасности службы хранилища Azure. В их число входят:

  • Общий ключ позволяет пользователям получать доступ ко всем ресурсам в учетной записи. Ключ шифруется и сохраняется в конфигурации Hadoop.

  • Маркер носителя OAuth от Microsoft Entra ID: маркеры носителя Microsoft Entra получаются и обновляются драйвером с помощью удостоверения конечного пользователя или настроенного субъекта-службы. С помощью этой модели проверки подлинности доступ разрешен для каждого вызова, использующего идентификатор, который связан с предоставленным токеном и оценивается с помощью назначенного списка управления доступом POSIX (ACL).

    Примечание.

    Azure Data Lake Storage 2-го поколения поддерживает только конечные точки Azure AD версии 1.0.

Настройка

Все настройки драйвера ABFS хранятся в файле конфигурации core-site.xml. В дистрибутивах Hadoop с Ambarі конфигурацией также можно управлять с помощью веб-портала или REST API Ambari.

Подробная информация обо всех поддерживаемых элементах конфигурации указана в официальной документации по Hadoop.

Документация Hadoop

Все сведения о драйвере ABFS см. в официальной документации по Hadoop.

Следующие шаги