Data Science Workshop (DSW) を EMR クラスターに接続して、Spark ジョブを送信および実行します。この統合により、EMR の強力なパフォーマンスを使用してデータを効率的に処理し、モデル開発にシームレスに移行して、ビッグデータと AI を融合させることができます。
背景情報
データの前処理は、機械学習および大規模言語モデル (LLM) の分野で重要なステップです。このプロセスは多くの場合、時間がかかり複雑であり、データクリーニング、変換、特徴量エンジニアリングなどの主要なステップが含まれます。この課題に対処するため、DSW とオープンソースのビッグデータプラットフォームである EMR は提携し、ビッグデータと AI を統合したオールインワンソリューションを提供しています。
EMR は、Apache Spark を統合した Alibaba Cloud 上のフルマネージドのビッグデータ処理サービスです。これにより、クラウド上で Spark クラスターを簡単に構築、管理、使用して、大規模なデータ処理、リアルタイムコンピューティング、機械学習タスク、グラフ処理を行うことができます。
適用範囲
EMR クラスターに接続できるのは、次のタイプの DSW インスタンスのみです。
パブリックリソースグループを使用して作成された従量課金制の DSW インスタンス。
次のタイプの EMR クラスターのみがサポートされています。
DataLake クラスター
Spark 3 と Hadoop がインストールされたカスタムクラスター
各 DSW インスタンスは 1 つの EMR クラスターにのみ接続できます。接続が確立された後、別のクラスターに切り替えることはできません。
前提条件
DSW インスタンスを作成済みであること。イメージのオペレーティングシステムは Ubuntu 20.04 以前である必要があります。ネットワーク構成については、EMR クラスターと同じ VPC とセキュリティグループを指定する必要があります。詳細については、「DSW インスタンスの作成」をご参照ください。
重要DSW インスタンスの VPC とセキュリティグループは、EMR クラスターのものと同じである必要があります。そうでない場合、構成は失敗します。
手順
DSW でチュートリアルファイルを開く
DSW 開発環境に移動します。
PAI コンソールにログインします。
ページ左上のコーナーで、DSW インスタンスが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、Workspaces をクリックします。[ワークスペースリスト] ページで、デフォルトのワークスペース名をクリックして開きます。
左側のナビゲーションウィンドウで、Model Training > Data Science Workshop (DSW) を選択します。
開きたいインスタンスの Actions 列で、Open をクリックして DSW 開発環境を起動します。
Notebook タブの ランチャー ページで、Quick Start エリアにある ツール の下の DSW ギャラリー をクリックして、DSW Gallery ページを開きます。
DSW ギャラリーページで、
Big Data and AI Integration: Submit Spark Jobs to an EMR Clusterを検索します。Open in DSW をクリックします。このチュートリアルのリソースとチュートリアルファイルが自動的に DSW インスタンスにダウンロードされます。ダウンロードが完了すると、チュートリアルファイルが自動的に開きます。
チュートリアルファイルの実行
emr_connect.ipynb ファイルを使用すると、チュートリアルの内容を表示し、コードを直接実行できます。
チュートリアルファイルで、
をクリックして各ステップのコマンドを実行します。コマンドが正常に実行されたら、次のステップのコマンドを実行します。

このチュートリアルには、次の 4 つのステップが含まれています。
EMR クラスターを選択します。
指定されたクラスターに接続します。
spark-submit を使用してジョブを送信します。
PySpark 対話型アプリケーションを実行します。
よくある質問
Q: DSW インスタンスを再起動した後に Spark ジョブの実行に失敗した場合はどうすればよいですか?
DSW インスタンスを再起動した後、「EMR クラスターの選択」と「指定されたクラスターへの接続」のステップを繰り返して、EMR クラスターの接続情報を再初期化する必要があります。
Q: 「spark-submit: command not found」というエラーが表示された場合はどうすればよいですか?
EMR クラスターに接続した後、新しいターミナルを開いて Spark 環境パラメーターをロードします。次のコマンドを実行して、現在のセッションで Spark 構成がアクティブであるかどうかを確認します。コマンドが空の結果を返す場合、構成はアクティブではありません。
env | grep -i SPARK_HOMEQ: 「Python in worker has different version * than that in driver *」というエラーが表示された場合はどうすればよいですか?
このエラーは、ドライバークライアントの Python バージョンとクラスターのワーカーノードのバージョンが一致しないことを示します。
Q: 「ModuleNotFoundError: No module named ***」というエラーが表示された場合はどうすればよいですか?
このエラーは、クラスター上の Executor が使用する Python 環境に、PySpark アプリケーションに必要なパッケージがないために発生します。`spark.archives` 構成を使用して、ローカルの Python 環境をリモートクラスターと同期させることができます。または、クラスター内の各ワーカーノードに依存関係を手動でインストールすることもできます。
Q: PySpark カーネルを初期化した後、新しい Notebook を作成するときに PySpark オプションが表示されないのはなぜですか?
[Notebook] タブのツールバーで、[カーネル] > [カーネルの再起動] を選択します。