EMR Spark Streaming ノードは、高スループットのリアルタイムストリーミングデータを処理し、失敗したデータストリームを回復するためのフォールトトレラントメカニズムを提供します。このトピックでは、データ開発用に EMR Spark Streaming ノードを作成する方法について説明します。
前提条件
-
Alibaba Cloud EMR クラスターを作成し、DataWorks に登録済みであること。詳細については、「Data Studio: EMR コンピューティングリソースのバインド」をご参照ください。
-
(オプション、RAM ユーザーの場合) タスク開発を行う RAM ユーザーが、対応するワークスペースに追加され、Development または スペース管理者 (このロールは広範な権限を持つため、付与には注意が必要です) のロールが付与されていること。メンバーの追加方法の詳細については、「ワークスペースへのメンバーの追加」をご参照ください。
Alibaba Cloud アカウントを使用する場合は、このステップをスキップできます。
制限事項
-
このタイプのタスクは、サーバーレスリソースグループ (推奨) または専用スケジューリングリソースグループでのみ実行できます。
-
EMR on ACK で実行される Spark クラスターでは、EMR Spark Streaming ノードをタスク開発に使用することはできません。
-
このノードはワークフローでは使用できません。スタンドアロンノードとしてのみ開発および実行できます。
操作手順
-
EMR Spark Streaming ノードのエディターページで、次の手順を実行します。
EMR JAR リソースの作成と参照
DataLake クラスターを使用する場合は、次の手順に従って EMR JAR リソースを参照します。
説明必要なリソースが大きすぎて DataWorks ページからアップロードできない場合は、リソースを HDFS に保存し、コードで参照する必要があります。以下にコード例を示します。
spark-submit --master yarn --deploy-mode cluster --name SparkPi --driver-memory 4G --driver-cores 1 --num-executors 5 --executor-memory 4G --executor-cores 1 --class org.apache.spark.examples.JavaSparkPi hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar 100-
EMR JAR リソースを作成します。
-
詳細については、「Resource Management」をご参照ください。生成された JAR パッケージを
emr/jarsディレクトリに保存します。Click Upload をクリックして JAR リソースをアップロードします。 -
Storage Path、Data Sources、Resource Group を選択します。
-
Save をクリックします。
-
-
EMR JAR リソースを参照します。
-
作成したEMR Spark Streaming ノードを開き、コードエディタ ページを表示したままにします。
-
左側のナビゲーションウィンドウで、[Resource Management] の下にある参照したいリソースを見つけます。リソースを右クリックし、Insert Resource Path を選択します。
-
参照が追加されると、EMR Spark Streaming ノードのコードエディターページに成功メッセージが表示されます。その後、次のコマンドを実行できます。次のコマンドのリソースパッケージ、バケット名、パス情報は一例です。実際の値に置き換えてください。
##@resource_reference{"examples-1.2.0-shaded.jar"} --master yarn-cluster --executor-cores 2 --executor-memory 2g --driver-memory 1g --num-executors 2 --class com.aliyun.emr.example.spark.streaming.JavaLoghubWordCount examples-1.2.0-shaded.jar <logService-project> <logService-store> <group> <endpoint> <access-key-id> <access-key-secret>
-
コードの開発
EMR Spark Streaming ノードのコードエディターで、実行したいジョブコードを入力します。例:
spark-submit --master yarn-cluster --executor-cores 2 --executor-memory 2g --driver-memory 1g --num-executors 2 --class com.aliyun.emr.example.spark.streaming.JavaLoghubWordCount examples-1.2.0-shaded.jar <logService-project> <logService-store> <group> <endpoint> <access-key-id> <access-key-secret>説明-
この例では、DataWorks にアップロードされたリソースは
examples-1.2.0-shaded.jarです。 -
access-key-idとaccess-key-secretを、ご利用の Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret に置き換えてください。AccessKey ID と AccessKey Secret を取得するには、DataWorks コンソールにログインし、上部のナビゲーションバーの右上隅にあるプロフィール画像にカーソルを合わせ、[AccessKey 管理] を選択します。 -
EMR Spark Streaming ノードのコードエディターではコメントはサポートされていません。
(オプション) 詳細パラメーターの設定
ノードページの右側にある Scheduling Settings ペインで、 の下にある次の表の特定のパラメーターを設定できます。
説明-
使用可能な詳細パラメーターは、次の表に示すように EMR クラスターのタイプによって異なります。
-
Scheduling Settings ペインの で、さらに多くの オープンソースの Spark プロパティを構成できます。
DataLake: EMR on ECS
パラメーター
説明
FLOW_SKIP_SQL_ANALYZE
SQL ステートメントの実行モード。有効値:
-
true:一度に複数の SQL ステートメントを実行します。 -
false(デフォルト):一度に 1 つの SQL ステートメントを実行します。
説明このパラメーターは、データ開発環境でのテスト実行でのみサポートされます。
queue
ジョブ送信キュー。デフォルトのキューは default です。EMR YARN の詳細については、「基本的なキュー設定」をご参照ください。
priority
ジョブの優先度。デフォルトは 1 です。
その他
詳細設定でカスタム SparkConf パラメーターを追加できます。コードを送信すると、DataWorks は新しいパラメーターをコマンドに自動的に追加します。例:
"spark.driver.memory" : "2g"説明Ranger アクセス制御を有効にするには、「グローバル Spark パラメーターの設定」で
spark.hadoop.fs.oss.authorization.method=ranger設定を追加します。パラメーター設定の詳細については、「グローバル Spark パラメーターの設定」をご参照ください。
タスクの実行
-
Run Configuration の Compute Resource で、Compute Resource と DataWorks Resource Group を選択します。
説明-
タスクのリソース要件に基づいて CUs for Scheduling を設定することもできます。デフォルト値は
0.25です。 -
パブリックインターネットまたは VPC 経由でデータソースにアクセスするには、データソースに接続できるスケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
-
-
ツールバーのパラメーターダイアログボックスで、作成したデータソースを選択し、Run をクリックしてタスクを実行します。
-
-
ノードを定期タスクとして実行するには、必要に応じてスケジューリングプロパティを設定します。詳細については、「ノードスケジューリングの設定」をご参照ください。
-
ノードタスクを設定した後、公開する必要があります。詳細については、「ノードまたはワークフローの公開」をご参照ください。
-
タスクが公開された後、オペレーションセンターで定期タスクのステータスを表示できます。詳細については、「オペレーションセンターの概要」をご参照ください。