Преобразование данных с помощью действия MapReduce Hadoop в Фабрике данных Azure или Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Действие HDInsight MapReduce в конвейере Фабрики данных или Synapse Analytics вызывает программу MapReduce для вашего кластера HDInsight или кластера HDInsight по запросу. Данная статья основана на материалах статьи о действиях преобразования данных , в которой приведен общий обзор преобразования данных и список поддерживаемых действий преобразования.

Дополнительные сведения см. в статьях с вводной информацией о Фабрике данных Azure и Synapse Analytics, а перед изучением этой статьи выполните руководство по преобразованию данных.

Дополнительные сведения о выполнении скриптов Pig и Hive в кластере HDInsight из конвейера с помощью действий Pig и Hive в HDInsight см. в статьях о действии Pig и Hive.

Добавление действия HDInsight MapReduce в конвейер с помощью пользовательского интерфейса

Чтобы использовать в конвейере действие HDInsight MapReduce, выполните следующее:

  1. Выполните поиск MapReduce в области конвейера "Действия" и перетащите действие MapReduce на холст конвейера.

  2. Выберите действие MapReduce на холсте, если оно еще не выбрано.

  3. Перейдите на вкладку Кластер HDI, чтобы выбрать или создать связанную службу для кластера HDInsight, которая будет использоваться для выполнения действия MapReduce.

    Shows the UI for a MapReduce activity.

  4. Перейдите на вкладку Jar, чтобы выбрать или создать связанную службу Jar для учетной записи хранения Azure, в которой будет размещен скрипт. Укажите имя класса для выполнения и путь к файлу в месте хранения. Можно также настроить дополнительные сведения, в частности расположение библиотек Jar, конфигурацию отладки, аргументы и параметры для отправки в скрипт.

    Shows the UI for the Jar tab for a MapReduce activity.

Синтаксис

{
    "name": "Map Reduce Activity",
    "description": "Description",
    "type": "HDInsightMapReduce",
    "linkedServiceName": {
        "referenceName": "MyHDInsightLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "className": "org.myorg.SampleClass",
        "jarLinkedService": {
            "referenceName": "MyAzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "jarFilePath": "MyAzureStorage/jars/sample.jar",
        "getDebugInfo": "Failure",
        "arguments": [
            "-SampleHadoopJobArgument1"
        ],
        "defines": {
            "param1": "param1Value"
        }
    }
}

Сведения о синтаксисе

Свойство Описание Обязательно
name Имя действия. Да
description Текст, описывающий, для чего используется действие Нет
type Для действия MapReduce Activity используется тип действия HDinsightMapReduce. Да
linkedServiceName Ссылка на кластер HDInsight, зарегистрированный в качестве связанной службы. Дополнительные сведения об этой связанной службе см. в статье Вычислительные среды, поддерживаемые фабрикой данных Azure. Да
className Имя класса для выполнения. Да
jarLinkedService Ссылки на связанные службы хранилища Azure, используемые для хранения файлов Jar. Здесь поддерживаются только связанные службы Хранилище BLOB-объектов Azure и ADLS 2-го поколения . Если не указать эту связанную службу, будет использоваться связанная служба хранилища Azure, определенная в связанной службе HDInsight. Нет
jarFilePath Укажите путь к файлам Jar, которые хранятся в службе хранилища Azure, на который ссылается jarLinkedService. В имени файла учитывается регистр знаков. Да
jarlibs Массив строк пути к файлам библиотеки Jar, на которые ссылается задание, хранящееся в службе хранилища Azure, которая, в свою очередь, определена в свойстве jarLinkedService. В имени файла учитывается регистр знаков. Нет
getDebugInfo Указывает, когда файлы журнала копируются в службу хранилища Azure, используемую кластером HDInsight или определенную jarLinkedService. Допустимые значения: None (никогда), Always (всегда) или Failure (в случае сбоя). Значение по умолчанию: Нет. Нет
аргументы Указывает массив аргументов для задания Hadoop. Аргументы передаются в качестве аргументов командной строки в каждую задачу. Нет
defines Параметры в виде пары "ключ — значение", ссылки на которые указываются в скрипте Hive. Нет

Пример

С помощью действия MapReduce можно выполнить JAR-файл MapReduce в кластере HDInsight. В приведенном ниже образце определения конвейера JSON действие HDInsight настроено на запуск JAR-файла Mahout.

{
    "name": "MapReduce Activity for Mahout",
    "description": "Custom MapReduce to generate Mahout result",
    "type": "HDInsightMapReduce",
    "linkedServiceName": {
        "referenceName": "MyHDInsightLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "className": "org.apache.mahout.cf.taste.hadoop.similarity.item.ItemSimilarityJob",
        "jarLinkedService": {
            "referenceName": "MyStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "jarFilePath": "adfsamples/Mahout/jars/mahout-examples-0.9.0.2.2.7.1-34.jar",
        "arguments": [
            "-s",
            "SIMILARITY_LOGLIKELIHOOD",
            "--input",
            "wasb://adfsamples@spestore.blob.core.windows.net/Mahout/input",
            "--output",
            "wasb://adfsamples@spestore.blob.core.windows.net/Mahout/output/",
            "--maxSimilaritiesPerItem",
            "500",
            "--tempDir",
            "wasb://adfsamples@spestore.blob.core.windows.net/Mahout/temp/mahout"
        ]
    }
}

Вы можете указать необходимые аргументы для программы MapReduce в разделе arguments. Во время выполнения вы увидите несколько дополнительных аргументов (например, mapreduce.job.tags) платформы MapReduce. Чтобы отличать свои аргументы от аргументов MapReduce, вы можете использовать параметр и значение в качестве аргументов, как показано в следующем примере (-s, --input, --output и т. д. — параметры, за которыми сразу следуют их значения).

Дальнейшие действия

Ознакомьтесь со следующими ссылками, в которых описаны способы преобразования данных другими способами: