Freigeben über


Transformieren von Daten mithilfe von Hadoop MapReduce-Aktivitäten in Azure Data Factory oder Synapse Analytics

Gilt für: Azure Data Factory Azure Synapse Analytics

Tipp

Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.

Die HDInsight MapReduce-Aktivität in einer Azure Data Factory- oder Synapse Analytics-Pipeline ruft ein MapReduce-Programm für Ihren eigenen oder bedarfsgesteuerten HDInsight-Cluster auf. Dieser Artikel baut auf dem Artikel zu Datentransformationsaktivitäten auf, der eine allgemeine Übersicht über die Datentransformation und die unterstützten Transformationsaktivitäten bietet.

Weitere Informationen finden Sie in den Einführungsartikeln für Azure Data Factory und Synapse Analytics, und führen Sie das Lernprogramm aus: Tutorial: Transformieren von Daten bevor Sie diesen Artikel lesen.

Weitere Informationen zum Ausführen von Pig-/Hive-Skripts in einem HDInsight-Cluster über eine Pipeline mithilfe von Pig-/Hive-HDInsight-Aktivitäten finden Sie unter Pig und Hive.

Hinzufügen einer HDInsight MapReduce-Aktivität zu einer Pipeline mit Benutzeroberfläche

Führen Sie die folgenden Schritte aus, um eine HDInsight-MapReduce-Aktivität in einer Pipeline zu verwenden:

  1. Suchen Sie im Bereich mit den Pipelineaktivitäten nach MapReduce, und ziehen Sie eine MapReduce-Aktivität in den Pipelinecanvas.

  2. Wählen Sie die neue MapReduce-Aktivität auf der Leinwand aus, wenn sie noch nicht ausgewählt ist.

  3. Wählen Sie die Registerkarte HDI-Cluster aus, um einen neuen verknüpften Dienst für einen HDInsight-Cluster auszuwählen oder zu erstellen, der zum Ausführen der MapReduce-Aktivität verwendet wird.

    Benutzeroberfläche für eine MapReduce-Aktivität.

  4. Wählen Sie die Registerkarte Jar aus, um einen neuen jar-verknüpften Dienst mit einem Azure Storage Konto auszuwählen oder zu erstellen, das Ihr Skript hosten soll. Geben Sie einen Klassennamen, der dort ausgeführt werden soll, und einen Dateipfad innerhalb des Speicherorts an. Sie können auch erweiterte Details konfigurieren, z. B. einen JAR-Bibliotheksspeicherort, eine Debugkonfiguration sowie Argumente und Parameter, die an das Skript übergeben werden sollen.

    Zeigt die Benutzeroberfläche für die Registerkarte „JAR“ für eine MapReduce-Aktivität.

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

Syntaxdetails

Eigenschaft Beschreibung Erforderlich
Name Der Name der Aktivität Ja
Beschreibung Ein Text, der beschreibt, wofür die Aktivität verwendet wird. Nein
Typ Für die MapReduce-Aktivität ist der Aktivitätstyp „HDInsightMapReduce“. Ja
verknüpfterDienstname Verweis auf den HDInsight-Cluster, der als verknüpfter Dienst registriert ist. Weitere Informationen zu diesem verknüpften Dienst finden Sie im Artikel Verknüpfte Compute-Dienste. Ja
className Name der Klasse, die ausgeführt werden soll Ja
jarLinkedService Verweisen Sie auf einen Azure Storage verknüpften Dienst, der zum Speichern der Jar-Dateien verwendet wird. Hier werden nur Azure Blob Storage und ADLS Gen2 verknüpften Dienste unterstützt. Wenn Sie diesen verknüpften Dienst nicht angeben, wird der im HDInsight Linked Service definierte Azure Storage verknüpfter Dienst verwendet. Nein
jarFilePath Geben Sie den Pfad zu den Jar-Dateien an, die in der von jarLinkedService referenzierten Azure Storage gespeichert sind. Der Dateiname ist case-sensitive. Ja
jarlibs Zeichenfolgenarray des Pfads zu der JAR-Bibliotheksdateien, die in dem Auftrag referenziert wird, der in dem Azure Storage-Speicher gespeichert ist, der in „jarLinkedService“ definiert ist. Der Dateiname ist case-sensitive. Nein
getDebugInfo Gibt an, wann die Protokolldateien entweder in den von einem HDInsight-Cluster verwendeten Azure-Speicher oder in den durch jarLinkedService angegebenen Speicher kopiert werden. Zulässige Werte: „None“, „Always“ oder „Failure“. Standardwert: Keine. Nein
Argumente Gibt ein Array von Argumenten für einen Hadoop-Auftrag an. Die Argumente werden als Befehlszeilenargumente an jeden Vorgang übergeben. Nein
defines Geben Sie Parameter als Schlüssel-Wert-Paare für Verweise innerhalb des Hive-Skripts an. Nein

Beispiel

Mit der HDInsight-Aktivität „MapReduce“ können Sie beliebige MapReduce-JAR-Dateien auf einem HDInsight-Cluster ausführen. In der folgenden JSON-Beispieldefinition einer Pipeline wird die HDInsight-Aktivität für die Ausführung einer Mahout-JAR-Datei konfiguriert.

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

Sie können im Abschnitt arguments Argumente für das MapReduce-Programm angeben. Zur Laufzeit werden ein paar zusätzliche Argumente aus dem MapReduce-Framework angezeigt (z.B.: mapreduce.job.tags). Wenn Sie Ihre Argumente mit den MapReduce-Argumenten unterscheiden möchten, sollten Sie erwägen, sowohl die Option als auch den Wert als Argumente zu verwenden, wie im folgenden Beispiel gezeigt wird („-s“, „--input“, „--output“ usw. sind Optionen, auf die unmittelbar die Werte folgen).

In den folgenden Artikeln erfahren Sie, wie Daten auf andere Weisen transformiert werden: