Sparkは汎用ビッグデータ分析エンジンです。 Sparkは高性能、使いやすさ、幅広い用途を特徴としています。 Sparkを使用して複雑なメモリ分析を実行し、大規模で低レイテンシのデータ分析アプリケーションを構築できます。 DataWorksは、DataWorksでSparkタスクを開発し、定期的にスケジュールするために使用できるCloudera's Distribution Including Apache Hadoop(CDH)Sparkノードを提供します。 このトピックでは、CDH Sparkノードを作成および使用する方法について説明します。
前提条件
DataStudioでワークフローが作成されていること。
DataStudioのワークフローに基づいて、さまざまなタイプの計算エンジンの開発操作が実行されます。 したがって、ノードを作成する前に、ワークフローを作成する必要があります。 詳細については、「ワークフローの作成」をご参照ください。
Alibaba Cloud CDHクラスターが作成され、DataWorksに登録されていること。
CDHノードを作成し、CDHノードを使用してDataWorksでCDHタスクを開発する前に、CDHクラスターをDataWorksワークスペースに登録する必要があります。 詳細については、「CDH または CDP クラスタを DataWorks に登録する」をご参照ください。
(RAMユーザーを使用してタスクを開発する場合に必要)RAMユーザーがメンバーとしてDataWorksワークスペースに追加され、[開発] ロールまたは [ワークスペース管理者] ロールが割り当てられていること。 ワークスペース管理者ロールには、必要以上の権限があります。 ワークスペース管理者ロールを割り当てる場合は注意してください。 メンバーの追加方法の詳細については、「ワークスペースメンバーを追加し、ロールを割り当てる」をご参照ください。
サーバーレスリソースグループが購入され、構成されていること。 構成には、ワークスペースとの関連付けとネットワーク構成が含まれます。 詳細については、「サーバーレスリソースグループの作成と使用」をご参照ください。
制限
このタイプのノードのタスクは、スケジュール用にサーバーレスリソースグループまたは旧バージョンの専用リソースグループで実行できます。 タスクはサーバーレスリソースグループで実行することをお勧めします。
準備:Sparkタスクコードを準備し、JARパッケージを取得する
DataWorksを使用してCDH Sparkタスクをスケジュールする前に、CDHでSparkタスクコードを準備し、タスクコードをコンパイルしてJARパッケージを生成する必要があります。 Sparkタスクコードの準備の詳細については、「Spark」をご参照ください。
取得したJARパッケージをDataWorksコンソールにアップロードする必要があります。 これにより、DataWorksはCDH Sparkタスクを定期的にスケジュールできます。
ステップ 1:CDH Sparkノードを作成する
DataStudioページに移動します。
DataWorksコンソールにログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションペインで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
DataStudioページで、目的のワークフローを見つけ、ワークフロー名を右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、エンジンインスタンス、パス、および名前パラメーターを構成します。
[確認] をクリックします。 次に、作成したノードを使用して、タスクを開発および構成できます。
ステップ 2:CDH JARリソースを作成して参照する
作成したCDH SparkノードでJARパッケージリソースを参照し、ノードのコードを記述し、spark-submitコマンドを使用してノードでタスクをコミットできます。 CDH JARリソースを作成して参照するには、次の操作を実行します。
CDH JARリソースを作成します。
目的のワークフローを見つけ、[CDH] をクリックします。 [リソース] を右クリックし、 を選択します。 [リソースの作成] ダイアログボックスで、[アップロード] をクリックして必要なファイルをアップロードします。

CDH JARリソースを参照します。
作成したノードの構成タブに移動します。
[CDH] フォルダーの [リソース] にある参照するリソースを見つけ、リソース名を右クリックし、[リソースパスの挿入] を選択します。 この例では、
spark-examples_2.11_2.4.0.jarという名前のリソースを使用します。
##@resource_reference{""}形式の句がノードの構成タブに表示されている場合、リソースは正常に参照されています。 サンプルコード:##@resource_reference{"spark_examples_2.11_2.4.0.jar"} spark_examples_2.11_2.4.0.jarCDH Sparkノードのコードを変更し、spark-submitコマンドを追加します。 次のコードは例を示しています。
重要CDH Sparkノードのコードを記述するときは、コメントを追加しないでください。 コメントを追加すると、CDH Sparkノードでタスクを実行したときにエラーが報告されます。 CDH Sparkノードのコードを編集するには、次のサンプルコードを参照する必要があります。
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-submit --class org.apache.spark.examples.SparkPi --master yarn spark-examples_2.11-2.4.0.jar 100パラメーターの説明:
org.apache.spark.examples.SparkPi: コンパイル済みJARパッケージ内のタスクのメインクラス。
spark-examples_2.11-2.4.0.jar: アップロードしたJARパッケージの名前。
ステップ 3:タスクスケジューリングプロパティを構成する
システムにノードのタスクを定期的に実行させる場合は、ノードの構成タブの右側のナビゲーションペインにある [プロパティ] をクリックして、ビジネス要件に基づいてタスクスケジューリングプロパティを構成できます。
タスクの基本プロパティを構成します。 詳細については、「基本プロパティの構成」をご参照ください。
スケジューリングサイクル、再実行プロパティ、およびスケジューリングの依存関係を構成します。 詳細については、「時間プロパティの構成」および「同一サイクルのスケジューリング依存関係の構成」をご参照ください。
説明タスクをコミットする前に、[プロパティ] タブで [再実行] パラメーターと [親ノード] パラメーターを構成する必要があります。
ノードのリソースプロパティを構成します。 詳細については、「リソースプロパティの構成」をご参照ください。 作成したノードが自動トリガーノードであり、ノードがインターネットまたは仮想プライベートクラウド(VPC)にアクセスするようにするには、ノードに接続されているスケジュール用のリソースグループを選択する必要があります。 詳細については、「ネットワーク接続ソリューション」をご参照ください。
ステップ 4:タスクコードをデバッグする
オプション。 リソースグループを選択し、カスタムパラメーターを変数に割り当てます。
ノードの構成タブの上部ツールバーにある
アイコンをクリックします。 [パラメーター] ダイアログボックスで、タスクコードのデバッグと実行に使用するリソースグループを選択します。タスクコードでスケジューリングパラメーターを使用する場合は、デバッグのために、スケジューリングパラメーターを変数に値としてタスクコードに割り当てます。 スケジューリングパラメーターの値割り当てロジックの詳細については、「実行、パラメーター付き実行、開発環境でのスモークテストの実行モードにおけるスケジューリングパラメーターの値割り当てロジックの違いは何ですか?」をご参照ください。
SQLステートメントを保存して実行します。
上部ツールバーで、
アイコンをクリックしてSQLステートメントを保存します。 次に、
アイコンをクリックしてSQLステートメントを実行します。オプション。 スモークテストを実行します。
タスクをコミットするとき、またはタスクをコミットした後に、開発環境でタスクのスモークテストを実行できます。 詳細については、「スモークテストを実行する」をご参照ください。
次の手順
タスクをコミットしてデプロイします。
ツールバーの [保存] アイコンをクリックして、タスクを保存します。
上部ツールバーの [送信] アイコンをクリックして、タスクをコミットします。
[送信] ダイアログボックスで、[変更の説明] パラメーターを構成します。
[確認] をクリックします。
標準モードのワークスペースを使用する場合は、タスクをコミットした後に、本番環境にタスクをデプロイする必要があります。 ノードにタスクをデプロイするには、DataStudioページの上部ナビゲーションバーにある [デプロイ] をクリックします。 詳細については、「タスクのデプロイ」をご参照ください。
タスクを表示します。
対応するノードの構成タブの右上隅にある [オペレーションセンター] をクリックして、本番環境のオペレーションセンターに移動します。
スケジュールされたタスクを表示します。 詳細については、「自動トリガータスクの表示と管理」をご参照ください。
タスクの詳細を表示するには、DataStudioページの上部ナビゲーションバーにある [オペレーションセンター] をクリックします。 詳細については、「オペレーションセンター」をご参照ください。
シナリオ
DataWorksは、SparkジョブをCDHクラスターに正常に送信して実行できるように、包括的なジョブスケジューリングおよび監視機能を提供します。 これにより、ジョブのO&Mプロセスが簡素化され、効率的なリソース管理が保証されます。 以下は、Sparkタスクの具体的な使用シナリオです。
データ分析:Spark SQL、Dataset、DataFrame APIを使用して、複雑なデータを集計、フィルタリング、変換し、データへの迅速な洞察を得ます。
ストリーム処理:Spark Streamingを使用してリアルタイムデータストリームを処理し、即時分析と意思決定を実行します。
機械学習:Spark MLlibを使用してデータを前処理し、特徴を抽出し、モデルのトレーニングと評価を実行します。
大規模データの抽出、変換、ロード(ETL):大規模データセットでETL操作を実行して、データウェアハウスまたは他のストレージシステムのデータを準備します。