Transformar dados usando a atividade do MapReduce do Hadoop no Azure Data Factory ou 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 desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

A atividade do MapReduce no HDInsight em um pipeline do Azure Data Factory ou Synapse Analytics invoca programa MapReduce em um cluster do HDInsight de sua propriedade ou sob demanda. Este artigo se baseia no artigo sobre atividades de transformação de dados que apresenta uma visão geral da transformação de dados e as atividades de transformação permitidas.

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

Consulte Pig e Hive para obter detalhes sobre a execução de scripts do Pig/Hive em um cluster do HDInsight de um pipeline usando atividades do Pig e do Hive no HDInsight.

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

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

  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 ela ainda não estiver selecionada.

  3. Selecione a guia Cluster HDI para selecionar ou criar um novo serviço vinculado para 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 serviço vinculado Jar a uma conta do Armazenamento do Azure que hospedará o script. Especifique um nome de classe a ser executada no local de armazenamento e um caminho de arquivo dentro desse local. Você também pode configurar detalhes avançados, incluindo um local de bibliotecas Jar, uma configuração de depuração, bem como 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 Obrigatório
name Nome da atividade Sim
descrição Texto que descreve qual a utilidade da atividade Não
type Para a atividade do MapReduce, o tipo de atividade é HDinsightMapReduce Sim
linkedServiceName Referência ao cluster do HDInsight registrado como um serviço vinculado. Para saber mais sobre esse serviço vinculado, consulte o artigo Compute linked services (Serviços de computação vinculados). Sim
className Nome da classe a ser executada Sim
jarLinkedService Referência a um serviço vinculado do Armazenamento do Azure usado para armazenar os arquivos Jar. Somente os serviços vinculados do Armazenamento de Blobs do Azure e do ADLS Gen2 são compatíveis aqui. Se você não especificar esse serviço vinculado, será usado o serviço vinculado do Armazenamento do Azure definido no serviço vinculado do HDInsight. Não
jarFilePath Forneça o caminho para os arquivos Jar armazenados no Armazenamento do Azure referenciado por jarLinkedService. O nome do arquivo diferencia maiúsculas de minúsculas. Sim
jarlibs Matriz de cadeia de caracteres do caminho para os arquivos de biblioteca Jar referenciados pelo trabalho armazenado no Armazenamento do Azure referenciado por 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 do HDInsight (ou) especificado por jarLinkedService. Valores permitidos: Nenhum, Sempre ou Falha. Valor padrão: Nenhum. Não
argumentos Especifica uma matriz de argumentos para um trabalho do Hadoop. Os argumentos são passados como argumentos de linha de comando para cada tarefa. Não
defines Especifique parâmetros como pares chave-valor para referências no script do Hive. Não

Exemplo

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

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

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