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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

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

A atividade mapReduce do HDInsight num pipeline do Azure Data Factory ou do Synapse Analytics invoca o programa MapReduce por conta própria ou a pedido do cluster do HDInsight. Este artigo baseia-se no artigo de atividades de transformação de dados , que apresenta uma descriçã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.

Veja Pig e Hive para obter detalhes sobre como executar scripts do Pig/Hive num cluster do HDInsight a partir de um pipeline com as atividades do Pig e do Hive do HDInsight.

Adicionar uma atividade mapReduce do HDInsight a um pipeline com IU

Para utilizar uma atividade mapReduce do HDInsight num pipeline, conclua os seguintes passos:

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

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

  3. Selecione o separador Cluster do HDI para selecionar ou criar um novo serviço ligado a um cluster do HDInsight que será utilizado para executar a atividade mapReduce.

    Mostra a IU de uma atividade mapReduce.

  4. Selecione o separador Jar para selecionar ou criar um novo serviço ligado Jar para uma conta de Armazenamento do Azure que irá alojar o script. Especifique um nome de classe a ser executado e um caminho de ficheiro na localização de armazenamento. Também pode configurar detalhes avançados, incluindo uma localização jar libs, configuração de depuração e argumentos e parâmetros a serem transmitidos para o script.

    Mostra a IU do separador Jar de uma atividade do MapReduce.

Syntax

{
    "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
name Nome da atividade Sim
descrição Texto que descreve para que serve a atividade No
tipo Para a Atividade mapReduce, o tipo de atividade é HDinsightMapReduce Sim
linkedServiceName Referência ao cluster do HDInsight registado como um serviço ligado. Para saber mais sobre este serviço ligado, veja o artigo Serviços ligados de computação . Sim
className Nome da Classe a ser executada Sim
jarLinkedService Referência a um Serviço Ligado do Armazenamento do Azure utilizado para armazenar os ficheiros Jar. Apenas Armazenamento de Blobs do Azure e os serviços ligados do ADLS Gen2 são suportados aqui. Se não especificar este Serviço Ligado, é utilizado o Serviço Ligado do Armazenamento do Azure definido no Serviço Ligado do HDInsight. No
jarFilePath Indique o caminho para os ficheiros Jar armazenados no Armazenamento do Azure referido por jarLinkedService. O nome do ficheiro é sensível a maiúsculas e minúsculas. Sim
jarlibs Matriz de cadeia do caminho para os ficheiros da biblioteca Jar referenciados pela tarefa armazenada no Armazenamento do Azure definido em jarLinkedService. O nome do ficheiro é sensível a maiúsculas e minúsculas. Não
getDebugInfo Especifica quando os ficheiros de registo são copiados para o Armazenamento do Azure utilizado pelo cluster do HDInsight (ou) especificado pelo jarLinkedService. Valores permitidos: Nenhum, Sempre ou Falha. Valor predefinido: Nenhum. Não
argumentos Especifica uma matriz de argumentos para uma tarefa do Hadoop. Os argumentos são transmitidos como argumentos da linha de comandos para cada tarefa. No
define Especifique parâmetros como pares chave/valor para referenciar no script do Hive. No

Exemplo

Pode utilizar a Atividade MapReduce do HDInsight para executar qualquer ficheiro jar do MapReduce num cluster do HDInsight. Na seguinte definição JSON de exemplo de um pipeline, a Atividade do HDInsight está configurada para executar um ficheiro JAR do 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"
        ]
    }
}

Pode especificar quaisquer argumentos para o programa MapReduce na secção de argumentos . No runtime, verá alguns argumentos adicionais (por exemplo: mapreduce.job.tags) da arquitetura MapReduce. Para diferenciar os argumentos com os argumentos mapReduce, considere utilizar a opção e o valor como argumentos, conforme mostrado no exemplo seguinte (-s,--input,--output, etc., são opções imediatamente seguidas pelos respetivos valores).

Passos seguintes

Veja os seguintes artigos que explicam como transformar dados de outras formas: