Azure Data Factory または Synapse Analytics で Hadoop MapReduce アクティビティを使用してデータを変換する

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

Azure Data Factory または Synapse Analytics パイプラインの HDInsight MapReduce アクティビティは、独自のまたはオンデマンドの HDInsight クラスターで MapReduce プログラムを起動します。 この記事は、データ変換とサポートされる変換アクティビティの概要を説明する、 データ変換アクティビティ に関する記事に基づいています。

詳細については、この記事を読む前に、Azure Data FactorySynapse Analytics の概要に関する記事を参照し、データ変換のチュートリアルを実行してください。

HDInsight Pig と Hive アクティビティを使用してパイプラインから HDInsight クラスター上の Pig/Hive スクリプトを実行する方法の詳細については、PigHive に関する記事をご覧ください。

UI を使用して HDInsight MapReduce アクティビティをパイプラインに追加する

HDInsight MapReduce アクティビティをパイプラインに使用するには、次の手順を実行します。

  1. パイプラインのアクティビティ ウィンドウ内で MapReduce を検索し、MapReduce アクティビティをパイプライン キャンバスにドラッグします。

  2. まだ選択されていない場合は、キャンバスで新しい MapReduce アクティビティを選択します。

  3. [HDI クラスター] タブを選択して、HDInsight クラスターに対する新しいリンクされたサービスを選択または作成します。このサービスは、MapReduce を実行するのに使用されます。

    Shows the UI for a MapReduce activity.

  4. Jar タブを選択して、スクリプトをホストする Azure Storage アカウントにリンクされた新しい Jar サービスを選択または作成します。 そこで実行するクラス名と、ストレージの場所内のファイル パスを指定します。 Jar ライブラリの場所、デバッグ構成や、スクリプトに渡される引数とパラメーターなど、詳細を構成することもできます。

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

構文

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

構文の詳細

プロパティ Description 必須
name アクティビティの名前 はい
description アクティビティの用途を説明するテキストです。 いいえ
type MapReduce アクティビティの場合、アクティビティの種類は HDinsightMapReduce です はい
linkedServiceName リンクされたサービスとして登録されている HDInsight クラスターへの参照。 このリンクされたサービスの詳細については、計算のリンクされたサービスに関する記事をご覧ください。 はい
className 実行するクラスの名前 はい
jarLinkedService Jar ファイルの格納に使用される Azure Storage のリンクされたサービスへの参照。 ここでは Azure Blob Storage および ADLS Gen2 にリンクされたサービスのみがサポートされています。 このリンクされたサービスを指定していない場合は、HDInsight のリンクされたサービスで定義されている Azure Storage のリンクされたサービスが使用されます。 いいえ
jarFilePath jarLinkedServiceで参照される Azure Storage に格納されている Jar ファイルへのパスを指定します。 ファイル名は大文字と小文字が区別されます。 はい
jarlibs jarLinkedServiceで定義される Azure Storage に格納されているジョブで参照される Jar ライブラリ ファイルへのパスの文字列配列。 ファイル名は大文字と小文字が区別されます。 いいえ
getDebugInfo HDInsight クラスターで使用されている Azure Storage または jarLinkedService で指定された Azure Storage にログ ファイルがコピーされるタイミングを指定します。 使用できる値は以下の通りです。None、Always、または Failure。 既定値:[なし] : いいえ
引数 Hadoop ジョブの引数の配列を指定します。 引数はコマンド ライン引数として各タスクに渡されます。 いいえ
defines Hive スクリプト内で参照するキーと値のペアとしてパラメーターを指定します。 いいえ

HDInsight MapReduce アクティビティを使用して、HDInsight クラスター上で MapReduce jar ファイルを実行できます。 次のサンプルのパイプラインの JSON 定義では、Mahout JAR ファイルを実行するために HDInsight アクティビティが構成されます。

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

arguments セクションで MapReduce プログラムに任意の引数を指定できます。 実行時に、MapReduce フレームワークのいくつかの引数 (mapreduce.job.tags など) が表示されます。 MapReduce の引数と区別するために、次の例のように、オプションと値の両方を引数として使用することを検討してください (-s、--input、--output などがオプションであり、直後に値が続きます)。

別の手段でデータを変換する方法を説明している次の記事を参照してください。