コンソールから EMR Serverless の使用を開始する - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンソールから EMR Serverless の使用を開始する

ステップ 1: EMR Serverless アプリケーションを作成する

次のように EMR Serverless で新しいアプリケーションを作成します。

  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/emr で Amazon EMRコンソールを開きます。

  2. 左側のナビゲーションペインで、EMRサーバーレスを選択してEMRサーバーレスランディングページに移動します。

  3. EMR Serverless アプリケーションを作成または管理するには、EMRStudio UI が必要です。

    • アプリケーション AWS リージョン を作成する に EMR Studio が既にある場合は、アプリケーションの管理を選択して EMR Studio に移動するか、使用するスタジオを選択します。

    • アプリケーションを作成する に EMR Studio がない場合は、「開始する」を選択し、「作成」を選択して Studio を起動 AWS リージョン します。EMR Serverless は、アプリケーションを作成および管理できるように EMR Studio を作成します。

  4. 新しいタブで開くスタジオ UI の作成で、アプリケーションの名前、タイプ、リリースバージョンを入力します。バッチジョブのみを実行する場合は、「バッチジョブのデフォルト設定のみを使用する」を選択します。インタラクティブワークロードの場合は、「インタラクティブワークロードのデフォルト設定を使用する」を選択します。このオプションを使用すると、インタラクティブ対応アプリケーションでバッチジョブを実行することもできます。必要に応じて、後でこれらの設定を変更できます。

    詳細については、「スタジオの作成」を参照してください。

  5. アプリケーションの作成を選択して、最初のアプリケーションを作成します。

次のセクションに進みステップ 2: ジョブ実行またはインタラクティブワークロードを送信する、ジョブ実行またはインタラクティブワークロードを送信します。

ステップ 2: ジョブ実行またはインタラクティブワークロードを送信する

Spark job run

このチュートリアルでは、 PySpark スクリプトを使用して、複数のテキストファイルにわたる一意の単語の出現数を計算します。パブリックで読み取り専用の S3 バケットには、スクリプトとデータセットの両方が保存されます。

Spark ジョブを実行するには
  1. 次のコマンドを使用して、サンプルスクリプトwordcount.pyを新しいバケットにアップロードします。

    aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket/scripts/
  2. 完了するとステップ 1: EMR Serverless アプリケーションを作成する、EMRStudio のアプリケーションの詳細ページに移動します。そこで、ジョブの送信オプションを選択します。

  3. ジョブの送信ページで、以下を実行します。

    • 名前 フィールドに、ジョブ実行を呼び出す名前を入力します。

    • ランタイムロールフィールドに、 で作成したロールの名前を入力しますジョブランタイムロールを作成する

    • スクリプトの場所フィールドに、S3 s3://amzn-s3-demo-bucket/scripts/wordcount.pyとして を入力しますURI。

    • Script 引数 フィールドに、 と入力します["s3://amzn-s3-demo-bucket/emr-serverless-spark/output"]

    • Spark プロパティセクションで、テキストとして編集を選択し、次の設定を入力します。

      --conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1
  4. ジョブの実行を開始するには、ジョブの送信 を選択します。

  5. ジョブ実行タブには、新しいジョブ実行が実行ステータスで表示されます。

Hive job run

チュートリアルのこの部分では、テーブルを作成し、いくつかのレコードを挿入し、カウント集約クエリを実行します。Hive ジョブを実行するには、まず、単一のジョブの一部として実行するすべての Hive クエリを含むファイルを作成し、ファイルを S3 にアップロードし、Hive ジョブを開始するときにこの S3 パスを指定します。

Hive ジョブを実行するには
  1. Hive ジョブで実行するすべてのクエリhive-query.qlを含む というファイルを作成します。

    create database if not exists emrserverless; use emrserverless; create table if not exists test_table(id int); drop table if exists Values__Tmp__Table__1; insert into test_table values (1),(2),(2),(3),(3),(3); select id, count(id) from test_table group by id order by id desc;
  2. 次のコマンドを使用して S3 バケットhive-query.qlにアップロードします。

    aws s3 cp hive-query.ql s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql
  3. 完了するとステップ 1: EMR Serverless アプリケーションを作成する、EMRStudio のアプリケーションの詳細ページに移動します。そこで、ジョブの送信オプションを選択します。

  4. ジョブの送信ページで、以下を完了します。

    • 名前 フィールドに、ジョブ実行を呼び出す名前を入力します。

    • ランタイムロールフィールドに、 で作成したロールの名前を入力しますジョブランタイムロールを作成する

    • スクリプトの場所 フィールドに、S3 s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.qlとして を入力しますURI。

    • Hive プロパティセクションで、テキストとして編集 を選択し、次の設定を入力します。

      --hiveconf hive.log.explain.output=false
    • ジョブ設定セクションで、 として編集 JSONを選択し、次の を入力しますJSON。

      { "applicationConfiguration": [{ "classification": "hive-site", "properties": { "hive.exec.scratchdir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/scratch", "hive.metastore.warehouse.dir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/warehouse", "hive.driver.cores": "2", "hive.driver.memory": "4g", "hive.tez.container.size": "4096", "hive.tez.cpu.vcores": "1" } }] }
  5. ジョブの実行を開始するには、ジョブの送信 を選択します。

  6. ジョブ実行タブには、新しいジョブ実行が実行ステータスで表示されます。

Interactive workload

Amazon EMR6.14.0 以降では、EMRStudio でホストされているノートブックを使用して、EMRServerless で Spark のインタラクティブワークロードを実行できます。アクセス許可や前提条件などの詳細については、「」を参照してくださいEMR Studio を使用して EMR Serverless でインタラクティブワークロードを実行する

アプリケーションを作成し、必要なアクセス許可を設定したら、次の手順を使用して EMR Studio でインタラクティブノートブックを実行します。

  1. EMR Studio の Workspaces タブに移動します。Amazon S3 ストレージロケーションと EMR Studio サービスロール を設定する必要がある場合は、画面上部のバナーでスタジオを設定するボタンを選択します。

  2. ノートブックにアクセスするには、Workspace を選択するか、新しい Workspace を作成します。クイック起動を使用して、新しいタブで Workspace を開きます。

  3. 新しく開いたタブに移動します。左側のナビゲーションからコンピューティングアイコンを選択します。EMR Serverless をコンピューティングタイプ として選択します。

  4. 前のセクションで作成したインタラクティブ対応アプリケーションを選択します。

  5. Runtime ロールフィールドに、ジョブ実行のために EMR Serverless アプリケーションが引き受けることができるIAMロールの名前を入力します。ランタイムロールの詳細については、「Amazon Serverless ユーザーガイド」の「ジョブランタイムロール」を参照してください。 EMR

  6. アタッチ を選択します。これには最大 1 分かかる場合があります。ページはアタッチされると更新されます。

  7. カーネルを選択し、ノートブックを起動します。EMR Serverless でサンプルノートブックを参照し、Workspace にコピーすることもできます。サンプルノートブックにアクセスするには、左側のナビゲーションの{...}メニューに移動し、ノートブックファイル名serverlessに があるノートブックをブラウズします。

  8. ノートブックでは、ドライバーログリンクと、ジョブをモニタリングするためのメトリクスを提供するリアルタイムインターフェイスである Apache Spark UI へのリンクにアクセスできます。詳細については、「Amazon EMR Serverless ユーザーガイド」の「サーバーレスアプリケーションとジョブのモニタリング」を参照してください。 EMR

Studio ワークスペースにアプリケーションをアタッチすると、まだ実行されていない場合、アプリケーションは自動的にトリガーされます。また、アプリケーションを事前に起動し、ワークスペースにアタッチする前に準備しておくこともできます。

ステップ 3: アプリケーション UI とログを表示する

アプリケーション UI を表示するには、まずジョブ実行を識別します。Spark UI または Hive Tez UI のオプションは、ジョブタイプに基づいて、そのジョブ実行のオプションの最初の行で使用できます。適切なオプションを選択します。

Spark UI を選択した場合は、Executors タブを選択してドライバーとエグゼキューターのログを表示します。Hive Tez UI を選択した場合は、すべてのタスクタブを選択してログを表示します。

ジョブ実行ステータスが成功 と表示されたら、S3 バケットでジョブの出力を表示できます。

ステップ 4: クリーンアップする

作成したアプリケーションは 15 分間非アクティブになった後も自動停止する必要がありますが、再度使用しないリソースをリリースすることをお勧めします。

アプリケーションを削除するには、アプリケーションのリストページに移動します。作成したアプリケーションを選択し、アクション → 停止を選択してアプリケーションを停止します。アプリケーションが STOPPED状態になったら、同じアプリケーションを選択し、アクション → 削除 を選択します。

Spark ジョブと Hive ジョブの実行例の詳細については、Spark ジョブ「」および「」を参照してくださいHive ジョブ