EMR Spark Streaming ノードは、高スループットのリアルタイムストリーミングデータを処理します。フォールトトレランスを提供し、データストリームの障害から迅速に回復できます。このトピックでは、データ開発のために EMR Spark Streaming ノードを作成して使用する方法について説明します。
前提条件
Alibaba Cloud E-MapReduce (EMR) クラスターを作成し、DataWorks に登録済みであること。詳細については、「DataStudio: EMR 計算リソースの関連付け」をご参照ください。
(オプション、RAM ユーザーに必須) タスク開発を担当する Resource Access Management (RAM) ユーザーをワークスペースに追加し、Developer または Workspace Administrator ロールを割り当て済みであること。Workspace Administrator ロールは広範な権限を持つため、慎重に付与してください。メンバーの追加に関する詳細については、「ワークスペースへのメンバーの追加」をご参照ください。
Alibaba Cloud アカウントを使用している場合は、このステップをスキップできます。
制限事項
このタイプのタスクは、Serverless リソースグループ (推奨) またはスケジューリング専用リソースグループでのみ実行できます。
EMR on ACK Spark クラスターでは、タスク開発に EMR Spark Streaming ノードを使用することはできません。
操作手順
EMR Spark Streaming ノードのエディターページで、以下の開発手順を実行します。
EMR JAR リソースの作成と参照
DataLake クラスター上の EMR JAR リソースを参照するには、以下の手順に従います。
説明EMR Spark Streaming ノードが依存するリソースが大きすぎて 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 100EMR JAR リソースを作成します。
詳細については、「リソース管理」をご参照ください。生成された JAR ファイルを
emr/jarsディレクトリに保存し、[クリックしてアップロード] をクリックします。[ストレージパス]、[データソース]、[リソースグループ] を選択します。
[保存] をクリックします。
EMR JAR リソースを参照します。
作成した EMR Spark Streaming ノードを開きます。コードエディターページが開きます。
左側のナビゲーションウィンドウのリソース管理セクションで、目的のリソースを見つけて右クリックし、[リソースの参照] を選択します。
リソースを参照すると、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 に置き換えてください。取得するには、DataWorks コンソールにログインし、右上のプロフィール画像にカーソルを合わせ、[AccessKey 管理] をクリックします。EMR Spark Streaming ノードは、コード内のコメントをサポートしていません。
(オプション) 詳細設定
ノード設定ページの右側にある [スケジュール] タブの セクションで、次の表で説明するパラメーターを設定できます。
説明使用可能な詳細設定は、次の表に示すように、EMR クラスターのタイプによって異なります。
[スケジュール] タブの セクションで、より多くの オープンソースの Spark プロパティ を設定できます。
DataLake クラスター: EMR on ECS
パラメーター
説明
FLOW_SKIP_SQL_ANALYZE
SQL 文の実行モード。有効値:
true: 毎回複数の SQL 文を実行します。false(デフォルト): 毎回 1 つの SQL 文を実行します。
説明このパラメーターは、DataStudio 環境でのテスト実行でのみサポートされます。
queue
ジョブが送信されるスケジューリングキュー。デフォルト値: default。EMR YARN の詳細については、「基本的なキュー設定」をご参照ください。
priority
優先度。デフォルト値: 1。
その他
詳細設定にカスタムの SparkConf パラメーターを追加できます。ジョブを送信すると、DataWorks はこれらのパラメーターをコマンドに自動的に追加します。例:
"spark.driver.memory" : "2g"。説明Ranger 権限制御を有効にするには、
spark.hadoop.fs.oss.authorization.method=rangerに グローバル Spark パラメーターの設定 構成を追加して、権限制御が有効になるようにします。パラメーター設定の詳細については、「グローバル Spark パラメーターの設定」をご参照ください。
ジョブの実行
[計算リソース] の Run Configuration セクションで、[計算リソース] と [DataWorks リソースグループ] を選択します。
説明タスクのリソース要件に基づいて [スケジューリング CU] を設定することもできます。デフォルトは
0.25です。パブリックネットワークまたは VPC 経由でデータソースにアクセスするには、データソースの接続性テストに合格したスケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ツールバーのパラメーターダイアログボックスで作成したデータソースを選択し、[実行] をクリックします。
タスクを定期的に実行するには、そのスケジューリングプロパティを設定します。設定の詳細については、「ノードのスケジューリング設定」をご参照ください。
ノードを設定した後、デプロイする必要があります。詳細については、「ノードとワークフローのデプロイ」をご参照ください。
タスクがデプロイされた後、オペレーションセンターでタスクの実行ステータスを表示できます。詳細については、「オペレーションセンター入門」をご参照ください。