Копирование данных с сервера HDFS с помощью Azure Data Factory или Synapse Analytics

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

В этой статье описано, как скопировать данные с сервера распределенной файловой системы Hadoop (HDFS). Дополнительные сведения см. в вводных статьях по Azure Data Factory и Synapse Analytics.

Поддерживаемые возможности

Соединитель HDFS поддерживает следующие возможности:

Поддерживаемые возможности IR
Copy activity (источник/-) (1) (2)
Операция поиска (1) (2)
Удаление действия (1) (2)

(1) Azure среды выполнения интеграции (2) локальная среда выполнения интеграции

В частности, этот соединитель HDFS поддерживает:

  • Копирование файлов с помощью проверки подлинности Windows (Kerberos) или Anonymous.
  • Копирование файлов с помощью протокола webhdfs или встроенной поддержки DistCp.
  • Копирование файлов "как есть" либо посредством разбора или создания файлов с использованием поддерживаемых форматов файлов и кодеков сжатия.

Требуемые условия

Если хранилище данных находится в локальной сети, виртуальной сети Azure или Amazon Virtual Private Cloud, необходимо настроить самостоятельно размещаемую среду выполнения интеграции для подключения к нему.

Если хранилище данных является управляемой облачной службой данных, можно использовать Azure Integration Runtime. Если доступ ограничен ip-адресами, утвержденными в правилах брандмауэра, в список разрешений можно добавить ip-адреса Azure Integration Runtime/c0.

Вы также можете использовать функцию управляемой среды выполнения интеграции виртуальной сети в Azure Data Factory для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.

Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.

Примечание.

Убедитесь, что Integration Runtime может получить доступ ко всем [сервер_узла_имен]:[порт_узла_имен] и [серверы_узлов_данных]:[порты_узлов_данных] кластера Hadoop. По умолчанию используются [порт_узла_имен] 50070 и [порт_узла_данных] 50075.

Начало работы

Для выполнения действия копирования с конвейером можно использовать один из следующих средств или пакетов SDK:

Создание связанной службы с HDFS с помощью пользовательского интерфейса

Выполните следующие действия, чтобы создать связанную службу с HDFS в пользовательском интерфейсе портала Azure.

  1. Перейдите на вкладку "Управление" в рабочей области Azure Data Factory или Synapse и выберите "Связанные службы", а затем нажмите кнопку "Создать".

  2. Найдите HDFS и выберите разъем HDFS.

    Выберите соединитель HDFS.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Настройте связанную службу с HDFS.

Сведения о конфигурации соединителя

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей фабрики данных, относящихся к HDFS.

Свойства связанной службы

Для связанной службы HDFS поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
тип Для свойства type необходимо задать значение Hdfs. Да
URL-адрес URL-адрес в HDFS Да
тип аутентификации Допустимые значения : Anonymous или Windows.

Сведения о настройке локальной среды см. в разделе Использование проверки подлинности Kerberos для соединителя HDFS.
Да
userName Имя пользователя для аутентификации Windows. Для проверки подлинности Kerberos укажите <username>@<domain>.com. Да (для Windows authentication)
пароль Пароль для аутентификации Windows. Отметьте это поле как SecureString для безопасного хранения или обратитесь к секрету, хранящемуся в хранилище ключей Azure. Да (для проверки подлинности Windows)
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Подробнее см. в разделе Необходимые требования. Если integration runtime не указан, служба использует Azure Integration Runtime по умолчанию. Нет

Пример: использование анонимной проверки подлинности

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Anonymous",
            "userName": "hadoop"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: использование аутентификации Windows

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Windows",
            "userName": "<username>@<domain>.com (for Kerberos auth)",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

Для получения полного списка разделов и свойств, доступных для определения наборов данных, см. Datasets.

Azure Data Factory поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для HDFS-сервера в настройках location в наборе данных на основе формата:

Свойство Описание: Обязательное поле
тип Свойство type в location для набора данных должно быть HdfsLocation. Да
folderPath Путь к папке. Если вы хотите использовать подстановочный знак для фильтрации папки, пропустите этот параметр и укажите путь в параметрах источника действия. Нет
имя файла Имя файла в указанном пути folderPath. Если вы хотите использовать подстановочный знак для фильтрации файлов, пропустите этот параметр и укажите имя файла в параметрах источника действия. Нет

Пример:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<HDFS linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "HdfsLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Свойства Copy activity

Для получения полного списка разделов и свойств, доступных для определения действий, см. Конвейеры и действия. Этот раздел содержит список свойств, поддерживаемых источником HDFS.

HDFS в качестве источника

Azure Data Factory поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для HDFS в параметрах storeSettings в источнике копирования на основе формата:

Свойство Описание: Обязательное поле
тип Для свойства type в разделе storeSettings необходимо задать значение HdfsReadSettings. Да
Найдите файлы для копирования
ВАРИАНТ 1. Статический путь
Копируйте из указанного в наборе данных пути к папке или файлу. Если вы хотите скопировать все файлы из папки, дополнительно укажите wildcardFileName со значением *.
ВАРИАНТ 2. Подстановочный знак
— wildcardFolderPath
Путь к папке с подстановочными знаками для фильтрации исходных папок.
Допустимые знаки подстановки: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу). Используйте ^ для экранирования, если фактическое имя папки содержит подстановочный знак или этот escape-символ.
Больше примеров см. в разделе Примеры фильтров папок и файлов.
Нет
ВАРИАНТ 2. Подстановочный знак
— wildcardFileName
Имя файла с подстановочными знаками в заданном пути folderPath/wildcardFolderPath для фильтрации исходных папок.
Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^, если фактическое имя файла содержит подстановочный знак или escape-символ. Больше примеров см. в разделе Примеры фильтров папок и файлов.
Да
Вариант 3. Список файлов
- fileListPath
Указывает, что нужно скопировать заданный набор файлов. Укажите текстовый файл со списком файлов, которые необходимо скопировать, по одному файлу в строке (каждая строка должна содержать относительный путь к заданному в наборе данных пути).
При использовании этого параметра не указывайте имя файла в наборе данных. Больше примеров см. в разделе Примеры списка файлов.
Нет
Дополнительные параметры
рекурсивный Указывает, следует ли читать данные рекурсивно из вложенных каталогов или только из конкретной папки. Если свойству recursive задано значение true, и приемником является файловое хранилище, пустые папки и вложенные папки не копируются и не создаются в приемнике.
Допустимые значения: true (по умолчанию) и false.
Это свойство не применяется при настройке fileListPath.
Нет
УдалитьФайлыПослеЗавершения Указывает, удаляются ли двоичные файлы из исходного хранилища после успешного перемещения в конечное хранилище. Файлы удаляются поочередно, поэтому в случае сбоя действия копирования вы увидите, что некоторые файлы уже скопированы в место назначения и удалены из источника, в то время как остальные находятся в исходном хранилище.
Это свойство допустимо только в сценарии копирования двоичных файлов. По умолчанию имеет значение false.
Нет
modifiedDatetimeStart Фильтрация файлов на основе атрибута Last Modified.
Выбираются все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате 2018-12-01T05:00:00Z.
Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не применяются к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
Это свойство не применяется при настройке fileListPath.
Нет
modifiedDatetimeEnd То же, что выше.
" enablePartitionDiscovery Для секционированных файлов укажите, следует ли анализировать секции из пути к файлу и добавлять их как дополнительные исходные столбцы.
Допустимые значения: false (по умолчанию) и true.
Нет
Корневой путь раздела Если обнаружение секций включено, укажите абсолютный корневой путь, чтобы считывать секционированные папки как столбцы данных.

Если параметр не задан (по умолчанию), происходит следующее.
— При использовании пути к файлу в наборе данных или списке файлов в источнике корневым путем секции считается путь, настроенный в наборе данных.
— При использовании фильтра папки с подстановочными знаками корневым путем раздела считается подчасть пути до первого подстановочного знака.

Предположим, что вы настроили путь в наборе данных следующим образом: "root/folder/year=2020/month=08/day=27".
— Если указать корневой путь секции "root/folder/year=2020", действие копирования в дополнение к указанным в файлах столбцам создаст еще два столбца, month и day, со значениями "08" и "27" соответственно.
— Если корневой путь секции не указан, дополнительные столбцы создаваться не будут.
Нет
максимальное количество одновременных подключений Верхний предел одновременных подключений, установленных в хранилище данных при запуске задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений. Нет
Параметры DistCp
distcpSettings Группа свойств, которую следует использовать при работе с HDFS DistCp. Нет
конечная_точка_диспетчера_ресурсов Конечная точка YARN (Yet Another Resource Negotiator) Да, если используется DistCp
tempScriptPath Путь к папке для хранения временного командного скрипта DistCp. Файл сценария создается, а после завершения задания копирования он удаляется. Да, если используется DistCp
distcpOptions Дополнительные параметры для команды DistCp. Нет

Пример:

"activities":[
    {
        "name": "CopyFromHDFS",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "HdfsReadSettings",
                    "recursive": true,
                    "distcpSettings": {
                        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
                        "tempScriptPath": "/usr/hadoop/tempscript",
                        "distcpOptions": "-m 100"
                    }
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Примеры фильтров папок и файлов

В этом разделе описываются результаты применения фильтров с подстановочными знаками к пути папки и имени файла.

folderPath имя файла рекурсивный Структура исходной папки и результат фильтрации (извлекаются файлы, выделенные полужирным шрифтом)
Folder* (пусто, используйте по умолчанию) ложь ПапкаA
     Файл1.csv
     File2.json
    Вложенная папка1
        File3.csv
        File4.json
        File5.csv
ДругаяПапкаB
    Файл6.csv
Folder* (пусто, используйте по умолчанию) true ПапкаA
     Файл1.csv
     File2.json
    Вложенная папка1
         File3.csv
         File4.json
         File5.csv
ДругаяПапкаB
    Файл6.csv
Folder* *.csv ложь ПапкаA
     Файл1.csv
    File2.json
    Вложенная папка1
        File3.csv
        File4.json
        File5.csv
ДругаяПапкаB
    Файл6.csv
Folder* *.csv true ПапкаA
     Файл1.csv
    File2.json
    Вложенная папка1
         File3.csv
        File4.json
         File5.csv
ДругаяПапкаB
    Файл6.csv

Примеры списков файлов

В этом разделе описывается поведение, которое возникает при использовании пути списка файлов в источнике Copy activity. Предположим, что у вас есть следующая исходная структура папок и вы хотите скопировать файлы, выделенные полужирным шрифтом.

Пример исходной структуры Содержимое в файле FileListToCopy.txt Настройка
корень
    ПапкаA
         Файл1.csv
        File2.json
        Вложенная папка1
             File3.csv
            File4.json
             File5.csv
    Метаданные
        FileListToCopy.txt
Файл1.csv
Вложенная_папка1/Файл3.csv
Подпапка1/Файл5.csv
В наборе данных:
– Путь к папке: root/FolderA

В источнике задачи копирования:
– Путь к списку файлов: root/Metadata/FileListToCopy.txt

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

Использовать DistCp для копирования данных из HDFS

DistCp является программой командной строки Hadoop для создания распределенной копии в кластере Hadoop. При выполнении команды в DistCp сначала выводится список всех копируемых файлов, а затем в кластере Hadoop создается несколько заданий сопоставления. Каждая Map-задача создает побитовую копию из источника в приемник.

Copy activity поддерживает использование DistCp для копирования файлов в хранилище объектов Azure Blob (включая стажированное копирование) или в хранилище Azure Data Lake. В этом случае DistCp может воспользоваться возможностями кластера, а не работать в локальной среде выполнения интеграции. При использовании DistCp пропускная способность копирования будет выше, особенно если ваш кластер очень мощный. На основе конфигурации Copy activity автоматически создает команду DistCp, отправляет ее в кластер Hadoop и отслеживает состояние копирования.

Требуемые условия

Чтобы использовать DistCp для копирования файлов из HDFS в хранилище BLOB-объектов Azure (включая поэтапное копирование) или озеро данных Azure, убедитесь, что ваш кластер Hadoop соответствует следующим требованиям:

  • Службы MapReduce и YARN включены.

  • Версия YARN— 2.5 или более поздняя.

  • Сервер HDFS интегрирован с целевым хранилищем данных: хранилище BLOB Azure или Azure Data Lake Store (ADLS Первого поколения):

    • Файловая система Azure Blob поддерживается изначально начиная с Hadoop 2.7. Необходимо только указать путь JAR в конфигурации среды Hadoop.
    • Azure Data Lake Store FileSystem упаковается начиная с Hadoop 3.0.0-alpha1. Если версия вашего кластера Hadoop более ранняя, чем указанная, необходимо вручную импортировать JAR-пакеты, связанные с Azure Data Lake Store (azure-datalake-store.jar), в кластер из здесь и указать путь к JAR-файлу в конфигурации среды Hadoop.
  • Подготовьте временную папку в HDFS. Эта временная папка используется для хранения скрипта оболочки DistCp, поэтому она будет занимать пространство порядка нескольких килобайтов.

  • Убедитесь, что учетная запись пользователя, предоставленная в связанной службе HDFS, имеет следующие разрешения:

    • Отправьте приложение в YARN.
    • Создайте вложенную папку и читайте/записывайте файлы во временной папке.

Конфигурации

См. варианты конфигурации, связанные с DistCp, а также примеры в разделе HDFS в качестве источника.

Использование проверки подлинности Kerberos для соединителя HDFS

Есть два способа настроить локальную инфраструктуру для использования аутентификации с использованием Kerberos в соединителе HDFS. Вы можете выбрать тот, который лучше подходит для вашей ситуации.

Для любого из этих вариантов включите webhdfs для кластера Hadoop:

  1. Создайте HTTP-принципал и keytab для webhdfs.

    Внимание

    Принципал Kerberos для HTTP должен начинаться с "HTTP/" в соответствии со спецификацией Kerberos HTTP SPNEGO. Узнайте больше здесь.

    Kadmin> addprinc -randkey HTTP/<namenode hostname>@<REALM.COM>
    Kadmin> ktadd -k /etc/security/keytab/spnego.service.keytab HTTP/<namenode hostname>@<REALM.COM>
    
  2. Параметры конфигурации HDFS: добавьте следующие три свойства в hdfs-site.xml.

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.principal</name>
        <value>HTTP/_HOST@<REALM.COM></value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.keytab</name>
        <value>/etc/security/keytab/spnego.service.keytab</value>
    </property>
    

Вариант 1. Присоединение компьютера, где выполняется локальная среда выполнения интеграции, к области Kerberos

Требования

  • Компьютер локальной среды выполнения интеграции должен присоединиться к области Kerberos и не может присоединиться к домену Windows.

Порядок настройки

На сервере KDC:

Создайте учетную запись и укажите пароль.

Внимание

Имя пользователя не должно содержать имя узла.

Kadmin> addprinc <username>@<REALM.COM>

На машине с локально размещенной интеграционной средой выполнения:

  1. Запустите служебную программу Ksetup, чтобы настроить сервер центра распространения ключей (KDC) и область Kerberos.

    Компьютер должен быть настроен как член рабочей группы, так как область Kerberos отличается от домена Windows. Эту конфигурацию можно настроить, задав область Kerberos и добавив сервер KDC с помощью следующих команд. Замените REALM.COM названием своей области.

    C:> Ksetup /setdomain REALM.COM
    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    

    После выполнения этих команд перезапустите компьютер.

  2. Проверьте конфигурацию с помощью команды Ksetup. Результат должен выглядеть примерно так:

    C:> Ksetup
    default realm = REALM.COM (external)
    REALM.com:
        kdc = <your_kdc_server_address>
    

В хранилище данных или рабочей области Synapse:

  • Настройте соединитель HDFS с помощью аутентификации Windows совместно с вашим именем субъекта Kerberos и паролем для подключения к источнику данных HDFS. Дополнительные сведения о конфигурации см. в разделе свойств связанной службы HDFS.

Вариант 2. Включение взаимного доверия между доменом Windows и областью Kerberos

Требования

  • Компьютер локальной среды выполнения интеграции должен присоединиться к домену Windows.
  • Требуется разрешение на обновление параметров контроллера домена.

Порядок настройки

Примечание.

При необходимости замените REALM.COM и AD.COM именем области и контроллером домена в следующем руководстве.

На сервере KDC:

  1. Измените конфигурацию KDC в файле krb5.conf, чтобы позволить KDC доверять домену Windows, ссылаясь на следующий шаблон конфигурации. По умолчанию файл конфигурации содержится в папке /etc/krb5.conf.

    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
     default_realm = REALM.COM
     dns_lookup_realm = false
     dns_lookup_kdc = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
    
    [realms]
     REALM.COM = {
      kdc = node.REALM.COM
      admin_server = node.REALM.COM
     }
    AD.COM = {
     kdc = windc.ad.com
     admin_server = windc.ad.com
    }
    
    [domain_realm]
     .REALM.COM = REALM.COM
     REALM.COM = REALM.COM
     .ad.com = AD.COM
     ad.com = AD.COM
    
    [capaths]
     AD.COM = {
      REALM.COM = .
     }
    

    После настройки файла перезапустите сервис KDC.

  2. Настройте учетную запись с именем krbtgt/REALM.COM@AD.COM на сервере KDC с помощью следующей команды:

    Kadmin> addprinc krbtgt/REALM.COM@AD.COM
    
  3. В файл конфигурации службы HDFS hadoop.security.auth_to_local добавьте RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//.

На контроллере домена:

  1. Выполните следующие Ksetup команды, чтобы добавить запись в область:

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    
  2. Установите доверие из домена Windows в область Kerberos. [password] — это пароль для субъекта krbtgt/REALM.COM@AD.COM.

    C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]
    
  3. Выберите алгоритм шифрования, используемый в Kerberos.

    a. Выберите Диспетчер сервера>Управление групповыми политиками>Домен>Объекты групповой политики>Политику по умолчанию или активный домен, а затем выберите Изменить.

    b. В области Редактор управления групповой политикой выберите Конфигурация компьютера>Политики>Параметры Windows>Параметры безопасности>Локальные политики>Параметры безопасности, и затем настройте Сетевая безопасность: настройте типы шифрования, разрешенные для Kerberos.

    с. Выберите алгоритм шифрования, который будет использоваться для подключения к KDC. Можно выбрать все параметры.

    Снимок экрана:

    d. С помощью команды Ksetup задайте алгоритм шифрования, который будет использоваться для этой области.

    C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
    
  4. Создайте сопоставление между доменной учетной записью и Kerberos principal, чтобы использовать Kerberos principal в домене Windows.

    a. Выберите Административные инструменты>Active Directory Users and Computers.

    b. Настройте дополнительные функции, выбрав Вид>Дополнительные параметры.

    с. На панели Дополнительные функции щелкните правой кнопкой мыши учетную запись, для которой нужно создать сопоставления, и на панели Сопоставления имен выберите вкладку Имена Kerberos.

    d. Добавьте принципал из домена.

    Снимок экрана панели

На машине с локально размещенной интеграционной средой выполнения:

  • Выполните следующие команды Ksetup, чтобы добавить запись в область.

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    

В хранилище данных или рабочей области Synapse:

  • Настройте соединитель HDFS, используя аутентификацию Windows вместе с либо вашей учетной записью домена, либо основной учетной записью Kerberos, для подключения к источнику данных HDFS. Сведения о настройке см. в разделе Свойства связанной службы HDFS.

Свойства операции поиска

Сведения о свойствах действия поиска см. в разделе Действие поиска.

Удалить свойства активности

Сведения о свойствах действия удаления см. в статье Действие удаления.

Устаревшие модели

Примечание.

Следующие модели по-прежнему поддерживаются на условиях "как есть" для обеспечения обратной совместимости. Рекомендуется использовать ранее описанную новую модель, так как пользовательский интерфейс разработки переключен для создания новой модели.

Устаревшая модель набора данных

Свойство Описание: Обязательное поле
тип Свойство type для набора данных должно иметь значение FileShare Да
folderPath Путь к папке. Фильтр с подстановочными символами поддерживается. Допустимые подстановочные знаки: * (соответствует нулю или большему количеству знаков) и ? (соответствует нулю или одному знаку). Для экранирования используйте ^, если фактическое имя файла содержит подстановочный знак или escape-символ.

Примеры: rootfolder/subfolder/. Дополнительные примеры см. в разделе Примеры фильтров папок и файлов.
Да
имя файла Имя или фильтр постановочных знаков для файлов по указанному folderPath. Если этому свойству не присвоить значение, набор данных будет указывать на все файлы в папке.

Допустимые знаки подстановки для фильтра: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному отдельному символу).
Пример 1. "fileName": "*.csv"
Пример 2. "fileName": "???20180427.txt"
Используйте ^ для экранирования, если фактическое имя папки содержит подстановочный знак или этот escape-символ.
Нет
modifiedDatetimeStart Фильтрация файлов на основе атрибута Last Modified. Выбираются все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате 2018-12-01T05:00:00Z.

Учтите, что включение этого параметра в случае, если требуется применить фильтр файлов к огромному числу файлов, повлияет на общую производительность перемещения данных.

Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не применяются к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
Нет
modifiedDatetimeEnd Фильтрация файлов на основе атрибута Last Modified. Выбираются все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате 2018-12-01T05:00:00Z.

Учтите, что включение этого параметра в случае, если требуется применить фильтр файлов к огромному числу файлов, повлияет на общую производительность перемещения данных.

Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не применяются к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
Нет
format Если требуется скопировать файлы между файловыми хранилищами "как есть" (двоичное копирование), можно пропустить раздел форматирования в определениях входного и выходного наборов данных.

Если нужно проанализировать файлы определенного формата, поддерживаются следующие форматы: TextFormat, JsonFormat, AvroFormat, OrcFormat, ParquetFormat. Свойству type в разделе format необходимо присвоить одно из этих значений. Дополнительные сведения см. в разделах о текстовом формате, формате JSON, формате Avro, формате ORC и формате Parquet.
Нет (только для сценария двоичного копирования)
сжатие Укажите тип и уровень сжатия данных. Дополнительные сведения см. в разделе Поддержка сжатия.
Поддерживаемые типы: Gzip, Deflate, Bzip2 и ZipDeflate.
Поддерживаемые уровни: Optimal и Fastest.
Нет

Совет

Чтобы скопировать все файлы в папке, укажите только folderPath.
Чтобы скопировать один файл с заданным именем, укажите folderPath с частью папки и fileName с именем файла.
Чтобы скопировать подмножество файлов в папке, укажите folderPath с частью папки и fileName с фильтром подстановочных знаков.

Пример:

{
    "name": "HDFSDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<HDFS linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Устаревшая исходная модель Copy activity

Свойство Описание: Обязательное поле
тип Свойство type источника Copy activity должно иметь значение HdfsSource. Да
рекурсивный Указывает, следует ли читать данные рекурсивно из вложенных каталогов или только из конкретной папки. Если для свойства recursive задано значение true, а приемником является файловое хранилище, пустые папки и вложенные папки не копируются и не создаются в приемнике.
Допустимые значения: true (по умолчанию) и false.
Нет
distcpSettings Группа свойств, когда вы используете HDFS DistCp. Нет
конечная_точка_диспетчера_ресурсов Конечная точка YARN Менеджера ресурсов Да, если используется DistCp
tempScriptPath Путь к папке для хранения временного командного скрипта DistCp. Файл сценария создается, а после завершения задания копирования он удаляется. Да, если используется DistCp
distcpOptions Предоставляются дополнительные параметры для команды DistCp. Нет
максимальное количество одновременных подключений Верхний предел одновременных подключений, установленных в хранилище данных при запуске задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений. Нет

Пример: источник HDFS в операции копирования с помощью DistCp

"source": {
    "type": "HdfsSource",
    "distcpSettings": {
        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
        "tempScriptPath": "/usr/hadoop/tempscript",
        "distcpOptions": "-m 100"
    }
}

Список хранилищ данных, поддерживаемых в качестве источников и приемников Copy activity, см. в разделе поддерживаемые хранилища данных.