Transformar dados usando a atividade do Hadoop MapReduce no Azure Data Factory ou no Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

A atividade MapReduce do HDInsight em um pipeline do Azure Data Factory ou do Synapse Analytics invoca o programa MapReduce em seu cluster HDInsight próprio ou sob demanda. Este artigo baseia-se no artigo de atividades de transformação de dados, que apresenta uma visão geral da transformação de dados e das atividades de transformação suportadas.

Para saber mais, leia os artigos de introdução do Azure Data Factory e do Synapse Analytics e faça o tutorial: Tutorial: transformar dados antes de ler este artigo.

Consulte Pig e Hive para obter detalhes sobre como executar scripts Pig /Hive em um cluster HDInsight a partir de um pipeline usando as atividades do Pig e do Hive do HDInsight.

Adicionar uma atividade MapReduce do HDInsight a um pipeline com a interface do usuário

Para usar uma atividade MapReduce do HDInsight em um pipeline, conclua as seguintes etapas:

  1. Procure MapReduce no painel Atividades do pipeline e arraste uma atividade do MapReduce para a tela do pipeline.

  2. Selecione a nova atividade MapReduce na tela se ainda não estiver selecionada.

  3. Selecione a guia Cluster HDI para selecionar ou criar um novo serviço vinculado a um cluster HDInsight que será usado para executar a atividade MapReduce.

    Shows the UI for a MapReduce activity.

  4. Selecione a guia Jar para selecionar ou criar um novo serviço vinculado Jar a uma conta de Armazenamento do Azure que hospedará seu script. Especifique um nome de classe a ser executado lá e um caminho de arquivo dentro do local de armazenamento. Você também pode configurar detalhes avançados, incluindo um local Jar libs, configuração de depuração e argumentos e parâmetros a serem passados para o script.

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

Sintaxe

{
    "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"
        }
    }
}

Detalhes da sintaxe

Propriedade Descrição Necessário
nome Nome da atividade Sim
descrição Texto descrevendo para que a atividade é usada Não
tipo Para MapReduce Activity, o tipo de atividade é HDinsightMapReduce Sim
linkedServiceName Referência ao cluster HDInsight registrado como um serviço vinculado. Para saber mais sobre esse serviço vinculado, consulte o artigo Serviços vinculados de computação. Sim
className Nome da classe a ser executada Sim
jarLinkedService Referência a um Serviço Vinculado de Armazenamento do Azure usado para armazenar os arquivos Jar. Apenas o Armazenamento de Blobs do Azure e os serviços vinculados ADLS Gen2 são suportados aqui. Se você não especificar esse Serviço Vinculado, o Serviço Vinculado de Armazenamento do Azure definido no Serviço Vinculado do HDInsight será usado. Não
jarFilePath Forneça o caminho para os arquivos Jar armazenados no Armazenamento do Azure referidos por jarLinkedService. O nome do arquivo diferencia maiúsculas de minúsculas. Sim
Jarlibs Matriz de cadeia de caracteres do caminho para os arquivos da biblioteca Jar referenciados pelo trabalho armazenado no Armazenamento do Azure definido em jarLinkedService. O nome do arquivo diferencia maiúsculas de minúsculas. Não
getDebugInfo Especifica quando os arquivos de log são copiados para o Armazenamento do Azure usado pelo cluster HDInsight (ou) especificado pelo jarLinkedService. Valores permitidos: Nenhum, Sempre ou Falha. Valor padrão: Nenhum. Não
Argumentos Especifica uma matriz de argumentos para um trabalho Hadoop. Os argumentos são passados como argumentos de linha de comando para cada tarefa. Não
define Especifique parâmetros como pares chave/valor para referência dentro do script Hive. Não

Exemplo

Você pode usar a Atividade MapReduce do HDInsight para executar qualquer arquivo jar do MapReduce em um cluster HDInsight. No exemplo de definição JSON de um pipeline a seguir, a Atividade do HDInsight é configurada para executar um arquivo 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"
        ]
    }
}

Você pode especificar quaisquer argumentos para o programa MapReduce na seção argumentos . No tempo de execução, você vê alguns argumentos extras (por exemplo: mapreduce.job.tags) da estrutura MapReduce. Para diferenciar seus argumentos com os argumentos MapReduce, considere usar a opção e o valor como argumentos, conforme mostrado no exemplo a seguir (-s,--input,--output etc., são opções imediatamente seguidas por seus valores).

Consulte os seguintes artigos que explicam como transformar dados de outras maneiras: