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 Factory と Synapse Analytics の概要に関する記事を参照し、データ変換のチュートリアルを実行してください。
HDInsight Pig と Hive アクティビティを使用してパイプラインから HDInsight クラスター上の Pig/Hive スクリプトを実行する方法の詳細については、Pig と Hive に関する記事をご覧ください。
UI を使用して HDInsight MapReduce アクティビティをパイプラインに追加する
HDInsight MapReduce アクティビティをパイプラインに使用するには、次の手順を実行します。
パイプラインのアクティビティ ウィンドウ内で MapReduce を検索し、MapReduce アクティビティをパイプライン キャンバスにドラッグします。
まだ選択されていない場合は、キャンバスで新しい MapReduce アクティビティを選択します。
[HDI クラスター] タブを選択して、HDInsight クラスターに対する新しいリンクされたサービスを選択または作成します。このサービスは、MapReduce を実行するのに使用されます。
Jar タブを選択して、スクリプトをホストする Azure Storage アカウントにリンクされた新しい Jar サービスを選択または作成します。 そこで実行するクラス名と、ストレージの場所内のファイル パスを指定します。 Jar ライブラリの場所、デバッグ構成や、スクリプトに渡される引数とパラメーターなど、詳細を構成することもできます。
構文
{
"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"
}
}
}
構文の詳細
プロパティ | 内容 | 必須 |
---|---|---|
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 などがオプションであり、直後に値が続きます)。
関連するコンテンツ
別の手段でデータを変換する方法を説明している次の記事を参照してください。