翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ノートブックを使用して Amazon EMR Spark インスタンスを制御する
重要
Amazon SageMaker Studio または Amazon SageMaker Studio Classic が Amazon SageMaker リソースを作成できるようにするカスタムIAMポリシーは、それらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要です。IAM ポリシーで Studio と Studio Classic がリソースの作成を許可されていてもタグ付けが許可されていない場合、リソースの作成を試みるとAccessDenied「」エラーが発生する可能性があります。詳細については、「リソースにタグ付けするための SageMakerアクセス許可を提供する」を参照してください。
AWS Amazon のマネージドポリシー SageMaker SageMaker リソースを作成するアクセス許可を付与する には、それらのリソースの作成中にタグを追加するアクセス許可が既に含まれています。
カスタムライフサイクル設定スクリプトで作成されたノートブックインスタンスを使用して、ノートブックから AWS サービスにアクセスできます。例えば、Sparkmagic でノートブックを使用して Amazon EMRインスタンスなどの他の AWS リソースを制御できるスクリプトを作成できます。その後、ノートブックでデータ分析を実行する代わりに、Amazon EMRインスタンスを使用してデータを処理できます。これにより、データを処理するためにインスタンスを使用しないため、より小さなノートブックインスタンスを作成できます。これは、データを処理するために大きなノートブックインスタンスを必要とする大規模なデータセットがある場合に役立ちます。
このプロセスには、Amazon SageMaker コンソールを使用した 3 つの手順が必要です。
-
Amazon Spark EMR インスタンスを作成する
-
Jupyter ノートブックを作成する
-
EMR 接続を notebook-to-Amazonテストする
Sparkmagic EMR を使用してノートブックから制御できる Amazon Spark インスタンスを作成するには
で Amazon EMRコンソールを開きますhttps://console.aws.amazon.com/elasticmapreduce/
。 -
ナビゲーションペインで、[クラスターの作成] を選択します。
-
クラスターの作成 - クイックオプションページのソフトウェア設定 で、Ganglia 3.7.2 および Zeppelin 0.8.2 YARNを使用して Hadoop 2.8.5 で Spark: Spark 2.4.4 を選択します。
-
ページで追加のパラメータを設定し、[クラスターの作成] を選択します。
-
[クラスター] ページで、作成したクラスター名を選択します。Master Public DNS、EMRマスターのセキュリティグループ 、EMRクラスターが作成されたVPC名前とサブネット ID を書き留めます。上記の値は、ノートブック作成時に使用します。
Sparkmagic を使用して Amazon Spark EMR インスタンスを制御するノートブックを作成するには
で Amazon SageMaker コンソールを開きますhttps://console.aws.amazon.com/sagemaker/
。 -
ナビゲーションペインの [ノートブックインスタンス] で、[ノートブックの作成] を選択します。
-
ノートブックインスタンス名を入力し、インスタンスタイプを選択します。
-
[追加設定] を選択し、[ライフサイクル設定] で [新しいライフサイクル設定の作成] を選択します。
-
ライフサイクル設定スクリプトに次のコードを追加します。
# OVERVIEW # This script connects an Amazon EMR cluster to an Amazon SageMaker notebook instance that uses Sparkmagic. # # Note that this script will fail if the Amazon EMR cluster's master node IP address is not reachable. # 1. Ensure that the EMR master node IP is resolvable from the notebook instance. # One way to accomplish this is to have the notebook instance and the Amazon EMR cluster in the same subnet. # 2. Ensure the EMR master node security group provides inbound access from the notebook instance security group. # Type - Protocol - Port - Source # Custom TCP - TCP - 8998 - $NOTEBOOK_SECURITY_GROUP # 3. Ensure the notebook instance has internet connectivity to fetch the SparkMagic example config. # # https://aws.amazon.com/blogs/machine-learning/build-amazon-sagemaker-notebooks-backed-by-spark-in-amazon-emr/ # PARAMETERS EMR_MASTER_IP=your.emr.master.ip cd /home/ec2-user/.sparkmagic echo "Fetching Sparkmagic example config from GitHub..." wget https://raw.githubusercontent.com/jupyter-incubator/sparkmagic/master/sparkmagic/example_config.json echo "Replacing EMR master node IP in Sparkmagic config..." sed -i -- "s/localhost/$EMR_MASTER_IP/g" example_config.json mv example_config.json config.json echo "Sending a sample request to Livy.." curl "$EMR_MASTER_IP:8998/sessions"
-
スクリプトの
PARAMETERS
セクションで、 を Amazon EMRインスタンスのマスターパブリックDNS名your.emr.master.ip
に置き換えます。 -
[Create configuration] (設定を作成) をクリックします。
-
[ノートブックの作成] ページで、[ネットワーク - オプション] を選択します。
-
Amazon EMRインスタンスがあるサブネットVPCとサブネットを選択します。
-
Amazon EMRマスターノードで使用されるセキュリティグループを選択します。
-
[Create notebook instance] (ノートブックインスタンスの作成) を選択します。
ノートブックインスタンスの作成中は、ステータスは [保留中] になります。インスタンスが作成され、ライフサイクル設定スクリプトが正常に実行されると、ステータスは になりますInService。
注記
ノートブックインスタンスが Amazon EMRインスタンスに接続できない場合は、ノートブックインスタンスを作成 SageMaker できません。Amazon EMRインスタンスとノートブックが同じサブネットVPCとサブネットにない場合、Amazon EMRマスターセキュリティグループがノートブックで使用されていない場合、またはスクリプトのマスターパブリックDNS名が正しくない場合、接続が失敗する可能性があります。
Amazon EMRインスタンスとノートブック間の接続をテストするには
-
ノートブックのステータスが の場合InService、Open Jupyter を選択してノートブックを開きます。
-
New を選択し、Sparkmagic (PySpark) を選択します。
-
コードセルで、
%%info
を入力し、セルを実行します。出力は次の例のようになります
Current session configs: {'driverMemory': '1000M', 'executorCores': 2, 'kind': 'pyspark'} No active sessions.