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:
Procure MapReduce no painel Atividades do pipeline e arraste uma atividade mapReduce para a tela do pipeline.
Selecione a nova atividade MapReduce na tela, se ainda não estiver selecionada.
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.
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.
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: