このサンプル プロジェクトは、完全でコンパイルおよび実行可能なプロジェクトです。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.jarOSSSample:
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 プラグインをインストールします。
手順
IntelliJ IDEA で、左側のプロジェクトリストにある SparkWordCount.scala を見つけてダブルクリックして開きます。

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

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

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

操作ログを表示します。

Scala IDE for Eclipse
準備
Eclipse 用の Scala IDE、Maven、および Eclipse 用の Maven プラグインをインストールします。
手順
次の図に示すように、Maven プロジェクトをインポートします。



Maven プロジェクトをビルドします。Alt + Shift + X を押してから M を押して、Maven プロジェクトをビルドできます。または、プロジェクト名を右クリックして、 を選択することもできます。
プロジェクトがビルドされたら、プロジェクトを右クリックして [実行構成] を選択し、構成ページに移動します。
構成ページで、[scala アプリケーション] > SparkWordCount$ を選択し、次の図に示すように、右側でメインクラスと必要な引数を設定します。

[実行] をクリックします。
次の図に示すように、[コンソール] タブで出力ログを表示します。
