すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:サンプル プロジェクトの使用

最終更新日:Jan 11, 2025

このサンプル プロジェクトは、完全でコンパイルおよび実行可能なプロジェクトです。MapReduce、Pig、Hive、および Spark のサンプル コードが含まれています。

サンプル プロジェクト

サンプル プロジェクトには、次のジョブが含まれています。

  • MapReduce

    WordCount: ファイル内の単語の出現回数をカウントします。

  • Hive

    sample.hive: テーブルからデータをクエリします。

  • Pig

    sample.pig: オブジェクト ストレージ サービス (OSS) オブジェクトを処理します。

  • Spark

    • SparkPi: 円周率を計算します。

    • SparkWordCount: ファイル内の単語の出現回数をカウントします。

    • LinearRegression: 線形回帰モデルをトレーニングし、モデルの要約統計量を抽出します。

    • OSSSample: Spark を OSS と共に使用します。

    • MaxComputeSample: Spark を MaxCompute と共に使用します。

    • MNSSample: Spark をメッセージ サービス (MNS) と共に使用します。

    • LoghubSample: Spark を LogHub と共に使用します。

依存関係

  • data ディレクトリ内のテスト データ

    • The_Sorrows_of_Young_Werther.txt: MapReduce WordCount または SparkWordCount の入力データ ファイル。

    • patterns.txt: MapReduce WordCount ジョブで無視される単語パターン。

    • u.data: sample.hive のテスト テーブル。

    • abalone: 線形回帰のテスト データ ファイル。

  • lib ディレクトリ内の JAR パッケージ

    tutorial.jar: sample.pig に必要な JAR パッケージ。

準備

このプロジェクトは、いくつかのテスト データを提供します。テスト データを OSS に直接アップロードして使用できます。また、MaxCompute、MNS、メッセージ キュー (MQ)、ログ サービスなどのサービスでテスト データを準備することもできます。

  • ログ サービスの使用方法の詳細については、「5 分クイック スタート」をご参照ください。

  • MaxCompute プロジェクトとテーブルの作成方法の詳細については、「プロジェクトの作成」および「テーブルの作成と表示」をご参照ください。

  • MQ の使用方法の詳細については、MQ の「概要」をご参照ください。

  • MNS の使用方法の詳細については、MNS の [クイックスタート]["概要"] セクションをご参照ください。

概念

  • OSS URI: ジョブの入力または出力データ ファイルを指定します。hdfs:// のような URL に似ています。OSS URI は、oss://<accessKeyId>:<accessKeySecret>@<bucket>.<endpoint>/a/b/c.txt 形式です。

  • アクセスキー ID とアクセスキー シークレット: Alibaba Cloud API にアクセスするためのアクセスキー。

E-MapReduce クラスタでジョブを実行する

  • Spark

    • SparkWordCount:

      spark-submit --class SparkWordCount examples-1.0-SNAPSHOT-shaded.jar <inputPath>
                      <outputPath> <numPartition>

      次の表に、SparkWordCount ジョブを送信するためのパラメータを示します。

      パラメータ

      説明

      inputPath

      入力データ ファイルのパス。

      outputPath

      出力データ ファイルのパス。

      numPartition

      入力データ ファイルの Resilient Distributed Dataset (RDD) パーティションの数。

    • SparkPi:

      spark-submit --class SparkPi examples-1.0-SNAPSHOT-shaded.jar
    • OSSSample:

      spark-submit --class OSSSample examples-1.0-SNAPSHOT-shaded.jar <inputPath>
                      <numPartition>

      次の表に、OSSSample ジョブを送信するためのパラメータを示します。

      パラメータ

      説明

      inputPath

      入力データ ファイルのパス。

      numPartition

      入力データ ファイルの RDD パーティションの数。

    • ONSSample:

      spark-submit --class ONSSample examples-1.0-SNAPSHOT-shaded.jar <accessKeyId>
                      <accessKeySecret> <consumerId> <topic> <subExpression> <parallelism>

      次の表に、ONSSample ジョブを送信するためのパラメータを示します。

      パラメータ

      説明

      accessKeyId

      アクセスキー ID。

      accessKeySecret

      アクセスキー シークレット。

      consumerId

      コンシューマの ID。詳細については、「用語」をご参照ください。

      topic

      メッセージ キューのトピック。各メッセージ キューにはトピックがあります。

      subExpression

      メッセージをフィルタリングするためのタグ。詳細については、「メッセージのフィルタリング」をご参照ください。

      parallelism

      キュー内のメッセージを消費するコンシューマの数。

    • MaxComputeSample:

      spark-submit --class MaxComputeSample examples-1.0-SNAPSHOT-shaded.jar <accessKeyId>
                      <accessKeySecret> <envType> <project> <numPartitions>

      次の表に、MaxComputeSample ジョブを送信するためのパラメータを示します。

      パラメータ

      説明

      accessKeyId

      アクセスキー ID。

      accessKeySecret

      アクセスキー シークレット。

      envType

      環境タイプ。値 0 はパブリック ネットワークを、1 は内部ネットワークを示します。

      サンプルをローカル サーバーで実行する場合は、このパラメータを 0 に設定します。プログラムを E-MapReduce で実行する場合は、このパラメータを 1 に設定します。

      project

      プロジェクトの名前。詳細については、「用語」をご参照ください。

      numPartition

      入力データ ファイルの RDD パーティションの数。

    • MNSSample:

      spark-submit --class MNSSample examples-1.0-SNAPSHOT-shaded.jar <queueName>
                      <accessKeyId> <accessKeySecret> <endpoint>

      次の表に、MNSSample ジョブを送信するためのパラメータを示します。

      パラメータ

      説明

      queueName

      キューの名前。

      アクセスキー ID

      アクセスキー ID です。

      accessKeySecret

      AccessKey シークレット。

      エンドポイント

      キューにアクセスするために使用するエンドポイント。

    • LoghubSample:

      spark-submit --class LoghubSample examples-1.0-SNAPSHOT-shaded.jar <sls project> <sls
                      logstore> <loghub group name> <sls endpoint> <access key id> <access key secret> <batch
                      interval seconds>

      次の表に、LoghubSample ジョブを送信するためのパラメーターを示します。

      パラメーター

      説明

      sls project:

      プロジェクトの名前。

      sls logstore

      ログストアの名前。

      loghub group name

      ジョブでログストアデータを使用するグループの名前。必要に応じて名前を指定できます。 sls project パラメーターと sls store パラメーターの値が同じ場合、同じグループのジョブはログストアのデータを共同で使用し、異なるグループのジョブはログストアのデータを個別に使用します。

      sls endpoint

      ログサービスにアクセスするために使用するエンドポイント。詳細については、「サービスエンドポイント」をご参照ください。

      accessKeyId

      アクセスキー ID。

      accessKeySecret

      アクセスキーのシークレット。

    • 線形回帰:

      spark-submit --class LinearRegression examples-1.0-SNAPSHOT-shaded.jar <inputPath>
                      <numPartitions>

      次の表は、LinearRegression ジョブを送信するためのパラメーターについて説明しています。

      パラメーター

      説明

      inputPath

      入力データファイルのパス。

      numPartition

      入力データファイルの RDD パーティションの数。

  • MapReduce

    WordCount:

    hadoop jar examples-1.0-SNAPSHOT-shaded.jar WordCount
                    -Dwordcount.case.sensitive=true <inputPath> <outputPath> -skip <patternPath>

    次の表に、MapReduce WordCount ジョブを送信するためのパラメーターを示します。

    パラメーター

    説明

    inputPath

    入力データファイルのパス。

    outputPath

    出力データファイルのパス。

    patternPath

    無視する単語パターンを含むファイルのパス。 データディレクトリにある patterns.txt ファイルを使用できます。

  • Hive

    hive -f sample.hive -hiveconf inputPath=<inputPath>

    次の表は、sample.hive ジョブを送信するためのパラメーターについて説明しています。

    inputPath: 入力データファイルのパス。

  • Pig

    pig -x mapreduce -f sample.pig -param tutorial=<tutorialJarPath> -param
                    input=<inputPath> -param result=<resultPath>

    次の表は、sample.pig ジョブを送信するためのパラメーターについて説明しています。

    パラメーター

    説明

    tutorialJarPath

    JAR パッケージ。lib ディレクトリの tutorial.jar パッケージを使用できます。

    inputPath

    入力データファイルのパス。

    resultPath

    出力データファイルのパス。

重要
  • E-MapReduce でジョブを実行するには、テストデータと JAR パッケージを OSS にアップロードできます。OSS URI 形式に従ってストレージパスを設定してください。

  • または、テストデータと JAR パッケージを E-MapReduce クラスタに保存することもできます。

ローカルサーバーでのジョブの実行

このセクションでは、OSS などの Alibaba Cloud サービスに格納されているデータにアクセスするために、ローカルサーバーで Spark ジョブを実行する方法について説明します。ローカルサーバーでジョブをデバッグして実行する場合は、特に Windows を使用している場合は、IntelliJ IDEA や Eclipse などの一部の開発ツールを使用することをお勧めします。そうでない場合は、Windows サーバーで Hadoop および Spark ランタイム環境を構成する必要があります。

  • IntelliJ IDEA

    • 準備

      IntelliJ IDEA、Maven、IntelliJ IDEA 用 Maven プラグイン、Scala、および IntelliJ IDEA 用 Scala プラグインをインストールします。

    • 手順

      1. IntelliJ IDEA で、左側のプロジェクトリストにある SparkWordCount.scala を見つけてダブルクリックして開きます。

        Double-click SparkWordCount

      2. SparkWordCount.scala の [実行/デバッグ構成] ページに移動します。

        Run/Debug Configurations page

      3. アプリケーションリストで SparkWordCount をクリックし、右側で必要なパラメーターを設定します。Set parameters

      4. [OK] をクリックします。

      5. [実行] アイコンをクリックして SparkWordCount を実行します。Run SparkWordCount

      6. 操作ログを表示します。View operational logs

  • Scala IDE for Eclipse

    • 準備

      Eclipse 用の Scala IDE、Maven、および Eclipse 用の Maven プラグインをインストールします。

    • 手順

      1. 次の図に示すように、Maven プロジェクトをインポートします。

        Import a projectImport a project 2Import a project 3

      2. Maven プロジェクトをビルドします。Alt + Shift + X を押してから M を押して、Maven プロジェクトをビルドできます。または、プロジェクト名を右クリックして、[実行] > [maven ビルド] を選択することもできます。

      3. プロジェクトがビルドされたら、プロジェクトを右クリックして [実行構成] を選択し、構成ページに移動します。

      4. 構成ページで、[scala アプリケーション] > SparkWordCount$ を選択し、次の図に示すように、右側でメインクラスと必要な引数を設定します。

        Set parameters

      5. [実行] をクリックします。

      6. 次の図に示すように、[コンソール] タブで出力ログを表示します。View the output logs on the Console tab