チュートリアル: の開始方法Amazon EMR - Amazon EMR

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

チュートリアル: の開始方法Amazon EMR

Overview

では、ビッグデータフレームワークを使用してデータを処理および分析するためのクラスターを数分で設定できます。Amazon EMRこのチュートリアルでは、Spark を使用してサンプルクラスターを起動する方法と、Amazon S3 バケットに保存する単純な PySpark スクリプトを実行する方法について説明します。3 つの主要なワークフローカテゴリ (計画と構成、管理、クリーンアップ) で主要な Amazon EMR タスクについて説明します。このプロセスを独自のワークロードに適応させることもできます。


				[計画] と [構成]、[管理]、および [クリーンアップ] の 3 つの主要なワークフローカテゴリの概要を示す、Amazon EMR のワークフロー図。

Prerequisites

このチュートリアルを進める際により詳細なトピックへのリンクと、「次のステップ」セクションで追加のステップのアイデアを紹介します。ご質問がある場合や問題が発生した場合は、Amazon EMRディスカッションフォーラム チームまでお問い合わせください。

Cost

  • 作成するサンプルクラスターは、ライブ環境で実行されます。クラスターは最小限の料金が発生し、クリーンアップタスクを完了しない限り、このチュートリアルの期間中のみ実行されます。料金は Amazon EMR 料金の 1 秒あたりのレートで発生し、リージョンによって異なります。詳細については、「Amazon EMR 料金表.」を参照してください。

  • チュートリアルの Amazon S3 に保存する小さいファイルに対しても最小限の料金が発生する場合があります。無料利用枠の使用制限内である場合、Amazon S3 の料金の一部またはすべてが免除される可能性があります。AWS詳細については、「Amazon S3 料金表」および「AWS 無料利用枠.」を参照してください。

ステップ 1: Amazon EMR クラスターの計画と設定

このステップでは、Apache Spark がインストールされたシンプルな Amazon EMR クラスターを計画して起動します。セットアッププロセスには、サンプルの PySpark スクリプト、入力データセット、クラスター出力を保存する Amazon S3 バケットの作成が含まれます。

クラスターの入出力のためのストレージの準備

PySpark スクリプト例、入力データ、出力データを保存する Amazon S3 バケットを作成します。クラスターを起動する予定の AWS リージョンと同じリージョンにバケットを作成します。Amazon EMRたとえば、米国西部 (オレゴン) us-west-2 です。で使用するバケットとフォルダには、次の制限があります。Amazon EMR

  • 名前は、小文字、数字、ピリオド (.)、およびハイフン (-) のみで構成できます。

  • 名前を数字で終わることはできません。

  • バケット名はすべての AWS アカウントで一意である必要があります。

  • 出力フォルダは空である必要があります。

このチュートリアル用のバケットを作成するには、 コンソールユーザーガイドの「S3 バケットを作成する方法Amazon Simple Storage Service」を参照してください。

用のアプリケーションを開発して準備するAmazon EMR

このステップでは、PySpark スクリプトのサンプルを Amazon S3 にアップロードします。これは、Amazon EMR のアプリケーションを準備する最も一般的な方法です。EMR では、作業をクラスターに送信するときに、スクリプトの Amazon S3 の場所を指定することができます。また、PySpark スクリプトが処理するサンプル入力データを Amazon S3 にアップロードします。

以下の PySpark スクリプトが提供されています。このスクリプトは、食品の確立検査データを処理し、最も「Red」タイプの違反が多い上位 10 件の施設をリストアップしたファイルを S3 バケットに出力します。

EMR 用の PySpark スクリプト例を準備するには

  1. 以下のコード例を、任意のエディタの新しいファイルにコピーします。

  2. という名前でファイルを保存します。health_violations.py.

  3. このチュートリアルで指定したバケットに health_violations.py を Amazon S3 にアップロードします。オブジェクトを Amazon S3 にアップロードする方法については、Amazon Simple Storage Service 入門ガイドの「バケットへのオブジェクトのアップロード」を参照してください。

import argparse from pyspark.sql import SparkSession def calculate_red_violations(data_source, output_uri): """ Processes sample food establishment inspection data and queries the data to find the top 10 establishments with the most Red violations from 2006 to 2020. :param data_source: The URI where the food establishment data CSV is saved, typically an Amazon S3 bucket, such as 's3://DOC-EXAMPLE-BUCKET/food-establishment-data.csv'. :param output_uri: The URI where the output is written, typically an Amazon S3 bucket, such as 's3://DOC-EXAMPLE-BUCKET/restaurant_violation_results'. """ with SparkSession.builder.appName("Calculate Red Health Violations").getOrCreate() as spark: # Load the restaurant violation CSV data if data_source is not None: restaurants_df = spark.read.option("header", "true").csv(data_source) # Create an in-memory DataFrame to query restaurants_df.createOrReplaceTempView("restaurant_violations") # Create a DataFrame of the top 10 restaurants with the most Red violations top_red_violation_restaurants = spark.sql("SELECT name, count(*) AS total_red_violations " + "FROM restaurant_violations " + "WHERE violation_type = 'RED' " + "GROUP BY name " + "ORDER BY total_red_violations DESC LIMIT 10 ") # Write the results to the specified output URI top_red_violation_restaurants.write.option("header", "true").mode("overwrite").csv(output_uri) if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( '--data_source', help="The URI where the CSV restaurant data is saved, typically an S3 bucket.") parser.add_argument( '--output_uri', help="The URI where output is saved, typically an S3 bucket.") args = parser.parse_args() calculate_red_violations(args.data_source, args.output_uri)

入力引数

PySpark スクリプトをステップとして実行するときは、次の引数の値を含める必要があります。

  • --data_source - 食品確定データ CSV ファイルの Amazon S3 URI。このファイルは以下で準備します。

  • --output_uri - 出力結果が保存される Amazon S3 バケットの URI。

入力データは、Health Department 検査結果が、ワシントン州の King County (2006 から 2020 まで) にある、公開されている食品確定検査データセットの修正バージョンです。詳細については、「King County Open Data: Standard Authorization Inspection Data」を参照してください。以下はデータセットのサンプル行です。

name, inspection_result, inspection_closed_business, violation_type, violation_points 100 LB CLAM, Unsatisfactory, FALSE, BLUE, 5 100 PERCENT NUTRICION, Unsatisfactory, FALSE, BLUE, 5 7-ELEVEN #2361-39423A, Complete, FALSE, , 0

EMR のサンプル入力データを準備するには

  1. zip ファイル face_estabilities_data.zip をダウンロードします。

  2. コンテンツを解凍し、 としてローカルに保存します。food_establishment_data.csv.

  3. このチュートリアル用に作成した S3 バケットに CSV ファイルをアップロードします。詳細な手順については、 コンソールユーザーガイドの「S3 バケットにファイルとフォルダをアップロードする方法Amazon Simple Storage Service」を参照してください。

EMR のデータ設定の詳細については、「Prepare Input Data」を参照してください。

クラスターを起動するAmazon EMR

これで事前作業は完了です。最新の Amazon EMR リリースを使用して、Apache Spark がインストールされたサンプルクラスターを起動できます。

注記

2013 年 12 月 4 日以降に AWS アカウントを作成した場合は、何も指定されていないときに、Amazon EMR によって、選択したリージョンのデフォルトの Amazon Virtual Private Cloud (VPC) にクラスターが設定されます。

Console

[Quick Options (クイックオプション)] を使用して Spark がインストールされたクラスターを起動するには

  1. AWS マネジメントコンソールにサインインした後、Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [クラスターの作成] を選択して [Quick Options (クイックオプション)] ウィザードを開きます。

  3. [Create Cluster - Quick Options (クラスターの作成 - クイックオプション)] ページで、[Release (リリース)]、[Instance type (インスタンスタイプ)]、[Number of instances (インスタンスの数)]、および [Permissions (アクセス許可)] のデフォルト値を書き留めます。これらのフィールドには、汎用クラスター用に選択した値が自動入力されます。[Quick Options (クイックオプション)] 設定の詳細については、「クイックオプションの概要」を参照してください。

  4. 以下のフィールドを変更します。

    • クラスターを識別するのに役立つ [クラスター名] を入力します。たとえば、My First EMR Cluster.

    • [Logging] は有効のままにしますが、[S3 folder] 値は、作成した Amazon S3 バケットに置き換え、続いて /logs に置き換えます。たとえば、s3://DOC-EXAMPLE-BUCKET/logs と指定します。これにより、バケット内に「logs」という新しいフォルダが作成され、EMR はクラスターのログファイルをコピーします。

    • [アプリケーション] で、[Spark] オプションを選択します。[ クイックオプション] では、クラスターにインストールする一般的なアプリケーションの組み合わせを選択できます。

    • [Security and access (セキュリティとアクセス)] で、「」で指定または作成した [EC2 key pair (EC2 キーペア)SSH の Amazon EC2 キーペアの作成] を選択します。

  5. [Create cluster (クラスターの作成)] を選択してクラスターを起動し、クラスターステータスページを開きます。

  6. クラスターステータスページで、クラスター名の横にある [ステータス] を見つけます。クラスターの作成プロセス中は、ステータスが [Starting (開始中)] から [Running (実行中)] に、[Waiting (待機中)] に変わります。アップデートを受けるには、右側にある更新アイコンを選択するか、ブラウザを更新する必要があります。

ステータスが [待機中] に進行すると、クラスターは稼働しており、実行中になり、作業を受け入れる準備が整います。

CLI

AWS CLI を使用して Spark がインストールされたクラスターを起動するには

  1. 次のコマンドを使用して Spark クラスターを作成します。オプションでクラスターの名前を入力し、--name オプションで EC2 キーペアの名前を指定します。--ec2-attributes

    aws emr create-cluster \ --name "My First EMR Cluster" \ --release-label emr-5.32.0 \ --applications Name=Spark \ --ec2-attributes KeyName=myEMRKeyPairName \ --instance-type m5.xlarge \ --instance-count 3 \ --use-default-roles

    --instance-type、および --instance-count の他の必須値に注意してください。--use-default-rolesこれらの値は、汎用クラスター用に選択されています。ここで使用する create-cluster については、「AWS CLI リファレンス」を参照してください。

    注記

    読みやすくするため、Linux の行連結文字 (\) を含めています。Linux コマンドでは、これらの文字は削除することも、使用することもできます。Windows の場合は、削除するか、キャレット (^) で置き換えます。

    新しいクラスターの ClusterIdClusterArn を含む出力が表示されます。を書き留めておきます。これは、クラスターのステータスを確認し、後で作業を送信するために使用します。ClusterIdJSON 形式の create-cluster 出力の例を次に示します。

    { "ClusterId": "myClusterId", "ClusterArn": "myClusterArn" }
  2. 以下のコマンドを使用して、クラスターのステータスを確認します。

    aws emr describe-cluster --cluster-id myClusterId

    新しいクラスターの Status の出力が表示されます。JSON 形式の describe-cluster 出力の例を次に示します。

    { "Cluster": { "Id": "myClusterId", "Name": "My First EMR Cluster", "Status": { "State": "STARTING", "StateChangeReason": { "Message": "Configuring cluster software" }, ... }, ... } {

    クラスターの作成プロセス中は、ステータスが State から STARTING に変わり、RUNNING に変わります。WAITING

クラスターステータスが WAITING に進行すると、クラスターは稼働しており、作業を受け入れる準備ができています。

クラスターの概要の読み込みの詳細については、「」を参照してください。クラスターステータスおよび詳細の確認. クラスターステータスの詳細については、「クラスターライフサイクルについて」を参照してください。

ステップ 2: Amazon EMR クラスターを管理する

これでクラスターが起動して実行中になったので、クラスターに接続して管理できます。また、実行中のクラスターに作業を送信して、データを処理および分析することもできます。

への作業の送信Amazon EMR

クラスターを起動して実行することで、health_violations.pyステップとして を送信できます。ステップとは、1 つ以上のジョブで構成されるクラスター作業の単位です。たとえば、値の計算、またはデータの転送と処理のステップを送信する場合があります。

クラスターを作成するとき、またはクラスターがすでに実行されているときに、クラスターで一連のタスクを実行する複数のステップを送信できます。詳細については、「」を参照してください。クラスターへの作業の送信.

Console

コンソールを使用して Spark アプリケーションをステップとして送信するには

  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [Cluster List] で、クラスターの名前を選択します。クラスターが待機中の状態であることを確認します。

  3. Steps (ステップ)]、[Add step (ステップの追加).] の順に選択します。

  4. 次のガイドラインに従ってステップを設定します。

    • Step type] では、[Spark application.] を選択します。[Deploy Mode (デプロイモード)]、[Spark-submit options (Spark-submit オプション)]、および [Application location (アプリケーションの場所)] の追加フィールドが表示されます。

    • [名前] は、デフォルト値のままにするか、新しい名前を入力します。クラスターに多数のステップがある場合は、各ステップに名前を付けると、追跡に役立ちます。

    • [Deploy mode] は、デフォルト値の [Cluster] のままにします。Spark デプロイモードの詳細については、Apache Spark ドキュメントの「クラスターモードの概要」を参照してください。

    • [Spark-submit options] フィールドは空白のままにします。spark-submit オプションの詳細については、「spark-submit を使用したアプリケーションの起動.」を参照してください。

    • [Application location (アプリケーションの場所)] で、health_violations.py の Amazon S3 スクリプトの場所を入力します。たとえば、s3://DOC-EXAMPLE-BUCKET/health_violations.py.

    • [Arguments] フィールドに、次の引数と値を入力します。

      --data_source s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv --output_uri s3://DOC-EXAMPLE-BUCKET/myOutputFolder

      置換 s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv で準備した入力データの S3 URI に置き換えます。用のアプリケーションを開発して準備するAmazon EMR

      置換 DOC-EXAMPLE-BUCKET を、このチュートリアル用に作成した バケットの名前に置き換えます。myOutputFolder クラスター出力フォルダの名前を使用した

    • [Action on failure (失敗時のアクション)] では、デフォルトのオプション [Continue (続行)] をそのまま使用して、ステップが失敗してもクラスターが実行し続けるようにします。

  5. [Add (追加)] を選択してステップを送信します。ステップは、[保留中] というステータスでコンソールに表示されます。

  6. ステップが実行されると、ステータスは [Pending (保留中)] から [Running (実行中)] に、[Completed (完了)] に変わります。コンソールでステータスを更新するには、[Filter] の右側にある更新アイコンを選択します。スクリプトの実行には約 1 分かかります。

ステータスが [Completed (完了)] に変わると、ステップが正常に終了したことがわかります。

CLI

AWS CLI を使用して Spark アプリケーションをステップとして送信するには

  1. ClusterId」で起動したクラスターの クラスターを起動するAmazon EMR があることを確認します。次のコマンドを使用してクラスター ID を取得することもできます。

    aws emr list-clusters --cluster-states WAITING
  2. health_violations.py コマンドを使用し、ステップとして add-steps を送信します。ClusterId

    • を置き換えて、ステップの名前を指定できます。"My Spark Application"。 配列で、Args を置き換えます。s3://DOC-EXAMPLE-BUCKET/health_violations.py アプリケーションの場所に置き換えます。health_violations.py

    • 置換 s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv データセットの S3 の場所に置き換えます。food_establishment_data.csv

    • 置換 s3://DOC-EXAMPLE-BUCKET/MyOutputFolder 指定先のバケットの S3 パスとクラスターの出力フォルダの名前を持つ 。

    • ActionOnFailure=CONTINUE は、ステップが失敗してもクラスターが実行を継続することを意味します。

    aws emr add-steps \ --cluster-id myClusterId \ --steps Type=Spark,Name="My Spark Application",ActionOnFailure=CONTINUE,Args=[s3://DOC-EXAMPLE-BUCKET/health_violations.py,--data_source,s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv,--output_uri,s3://DOC-EXAMPLE-BUCKET/MyOutputFolder]

    CLI を使用してステップを送信する方法の詳細については、「AWS CLI コマンドリファレンス」を参照してください。

    ステップを送信すると、StepIds のリストを含む出力が表示されます。1 つのステップを送信したので、リストには 1 つの ID のみが存在します。ステップ ID をコピーします。これはステップのステータスの確認に使用します。

    以下に示すのは、ステップの送信後に表示される JSON 形式のコンソール出力の例です。

    { "StepIds": [ "s-1XXXXXXXXXXA" ] }
  3. ステップ ID と describe-step コマンドを使用してステップのステータスのクエリを実行します。置換 myClusterId をクラスター ID に置き換えます。

    aws emr describe-step --cluster-id myClusterId --step-id s-1XXXXXXXXXXA

    出力には、ステップに関する情報と、Status セクションが表示されます。JSON 形式の describe-step 出力例を次に示します。

    { "Step": { "Id": "s-1XXXXXXXXXXA", "Name": "My Spark Application", "Config": { "Jar": "command-runner.jar", "Properties": {}, "Args": [ "spark-submit", "s3://DOC-EXAMPLE-BUCKET/health_violations.py", "--data_source", "s3://DOC-EXAMPLE-BUCKET/food_establishment_data.csv", "--output_uri", "s3://DOC-EXAMPLE-BUCKET/myOutputFolder" ] }, "ActionOnFailure": "CONTINUE", "Status": { "State": "COMPLETED", ... } } }

    ステップが実行されると、ステップの StatePENDING から RUNNING に切り替わります。COMPLETEDステップの実行には約 1 分かかるため、ステータスを数回確認することが必要になる場合があります。

State に変わったときにステップが成功したことがわかります。COMPLETED

ステップライフサイクルの詳細については、「ステップの実行によるデータの処理」を参照してください。

結果の表示

ステップが正常に実行されたら、ステップの送信時に指定した Amazon S3 出力フォルダにその出力結果を表示できます。

の結果を表示するにはhealth_violations.py

  1. https://console.aws.amazon.com/s3/ にある Amazon S3 コンソールを開きます。

  2. [バケット名] を選択し、ステップの送信時に指定した出力フォルダを選択します。たとえば、DOC-EXAMPLE-BUCKET 次に myOutputFolder.

  3. 次の項目が出力フォルダにあることを確認します。

    • と呼ばれる小さなオブジェクト。ステップの成功を示します。_SUCCESS

    • プレフィックス part- で始まる CSV ファイル。これは結果を含むオブジェクトです。

  4. 結果を含むオブジェクトを選択し、[ダウンロード] を選択してローカルファイルシステムに保存します。

  5. 適切なエディタで結果を開きます。出力ファイルには、最も多くの Red 違反を持つ上位 10 の食品施設がリストされます。

    の結果の例を次に示します。health_violations.py

    name, total_red_violations SUBWAY, 322 T-MOBILE PARK, 315 WHOLE FOODS MARKET, 299 PCC COMMUNITY MARKETS, 251 TACO TIME, 240 MCDONALD'S, 177 THAI GINGER, 153 SAFEWAY INC #1508, 143 TAQUERIA EL RINCONSITO, 134 HIMITSU TERIYAKI, 128

クラスター出力の詳細については、「Amazon EMR」を参照してください。Configure an Output Location

(オプション) クラスター接続の設定

このステップは必須ではありませんが、コマンドの発行、アプリケーションのインタラクティブな実行、ログファイルの読み取りなどのタスク用に、Secure Shell (SSH) を使用してクラスターノードに接続するオプションがあります。

セキュリティグループルールの設定

クラスターに接続する前に、SSH 接続を許可するようにポート 22 インバウンドルールを設定する必要があります。

セキュリティグループは、仮想ファイアウォールとして機能し、クラスターへのインバウンドトラフィックとアウトバウンドトラフィックをコントロールします。デフォルトのセキュリティグループを使用してクラスターを作成すると、Amazon EMR によって以下のグループが作成されます。

ElasticMapReduce-master

マスターインスタンスに関連付けられたデフォルトの Amazon EMR マネージドセキュリティグループ。

ElasticMapReduce-slave

コアノードとタスクノードに関連付けられたデフォルトのセキュリティグループ。

ElasticMapReduce-master セキュリティグループの信頼できるソースの SSH アクセスを許可するには

まず、AWS に root ユーザーとしてログインするか、クラスターが存在する VPC でセキュリティグループの管理を許可された IAM プリンシパルとしてログインする必要があります。詳細については、「ユーザーのアクセス権限の変更」と、IAM ユーザーガイド の EC2 セキュリティグループの管理を許可する「サンプルポリシー」を参照してください。

  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [Clusters] を選択します。

  3. クラスターの [Name (名前)] を選択します。

  4. [Security and access (セキュリティとアクセス)] で、[Security groups for Master (マスターのセキュリティグループ)] リンクを選択します。

  5. リストから [ElasticMapReduce-master] を選択します。

  6. [Inbound]、[Edit] の順に選択します。

  7. 次の設定によってパブリックアクセスを許可するインバウンドルールが存在するかどうかを確認します。存在する場合は、[削除] を選択して削除します。

    • タイプ

      SSH

    • ポート

      22

    • ソース

      Custom 0.0.0.0/0

    警告

    2020 年 12 月以前は、パブリックサブネットのマスターインスタンスのデフォルトの EMR 管理セキュリティグループが、すべてのソースからのインバウンドトラフィックをポート 22 で許可する、事前設定されたルールを使用して作成されていました。このルールは、マスターノードへの初期 SSH 接続を簡素化するために作成されたものです。このインバウンドルールを削除して、信頼できるソースからのみにトラフィックを制限することを強くお勧めします。

  8. ルールのリストの下部までスクロールし、[ルールの追加] を選択します。

  9. [Type (タイプ)] で、[SSH] を選択します。

    これにより、[プロトコル] には [TCP]、[ポート範囲] には [22] が自動的に入力されます。

  10. ソースには、[My IP] を選択します。

    これにより、クライアントコンピュータの IP アドレスが送信元アドレスとして自動的に追加されます。または、幅広い [Custom (カスタム)] 信頼済みクライアントの IP アドレスを追加でき、[Add rule (ルールの追加)] を選択して他のクライアントに追加のルールを作成できます。多くのネットワーク環境では、IP アドレスが動的に割り当てられるため、セキュリティグループのルールを定期的に編集して、信頼されたクライアントの IP アドレスを更新する必要があります。

  11. [Save] を選択します。

  12. 必要に応じて、[ElasticMapReduce-slave] をリストから選択し、上記の手順を繰り返して信頼済みクライアントからコアノードおよびタスクノードへの SSH クライアントアクセスを許可します。

クラスターに接続する

SSH ルールを設定したら、SSH を使用してマスターノードに接続する に移動し、手順に従います。

  • 接続するノードのパブリック DNS 名を取得します。

  • SSH を使用してクラスターに接続します。

クラスターノードに対する認証方法の詳細については、「Authenticate to Amazon EMR Cluster Nodes」を参照してください。

ステップ 3: Amazon EMR クラスターリソースをクリーンアップする

これで、作業をクラスターに送信し、PySpark アプリケーションの結果を表示したので、追加料金を回避するために、クラスターをシャットダウンして、指定した Amazon S3 バケットを削除できます。

クラスターのシャットダウン

クラスターをシャットダウンすると、クラスターに関連付けられているすべての Amazon EMR 料金と Amazon EC2 インスタンスが停止されます。

Amazon EMR は、クラスターが終了した後、2 か月間無料でクラスターに関するメタデータを保持します。これにより、新しいジョブ用にクラスターのクローンを作成することや、参照目的で構成を再度参照することが簡単になります。メタデータには、クラスターが S3 に書き込んだデータや、クラスターの実行中にクラスター上の HDFS に保存されたデータは含まれていません

注記

クラスターをシャットダウンした後に、Amazon EMR コンソールでリストビューからクラスターを削除することはできません。がメタデータを消去すると、終了したクラスターはコンソールから消えます。Amazon EMR

Console

コンソールを使用してクラスターをシャットダウンするには

  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [クラスター] を選択し、シャットダウンするクラスターを選択します。たとえば、My First EMR Cluster.

  3. [Terminate] を選択して [Terminate cluster] プロンプトを開きます。

  4. 開いているプロンプトで、[Terminate] をもう一度選択してクラスターをシャットダウンします。クラスター設定によっては、割り当てられた EC2 リソースが完全に終了され、解放されるまでに 5~10 分かかる場合があります。クラスターのシャットダウンの詳細については、「Amazon EMR」を参照してください。クラスターを終了する

    注記

    クラスターは多くの場合、偶発的なシャットダウンを防ぐために、終了保護を有効にして作成されます。チュートリアルに厳密に従っていれば、終了保護はオフになります。終了保護がオンの場合は、クラスターを終了する前に設定を変更するプロンプトが表示されます。[Change]、[Off] の順に選択します。

CLI

を使用してクラスターをシャットダウンするにはAWS CLI

  1. 次のコマンドを使用してクラスター終了プロセスを開始します。myClusterId をサンプルクラスターの ID に置き換えます。

    aws emr terminate-clusters --cluster-ids myClusterId

    出力は表示されません。

  2. クラスター終了プロセスが開始されたことを確認するには、次のコマンドを使用してクラスターのステータスを確認します。

    aws emr describe-cluster --cluster-id myClusterId

    JSON 形式の出力例を次に示します。クラスター StatusTERMINATING から TERMINATED に変わります。クラスター設定によっては、割り当てられた EC2 リソースが完全に終了され、解放されるまでに 5~10 分かかる場合があります。クラスターのシャットダウンの詳細については、「Amazon EMR」を参照してください。クラスターを終了する

    { "Cluster": { "Id": "j-xxxxxxxxxxxxx", "Name": "My Cluster Name", "Status": { "State": "TERMINATED", "StateChangeReason": { "Code": "USER_REQUEST", "Message": "Terminated by user request" }, ... }, ... }, ... }

S3 リソースの削除

先ほど作成したバケットを削除して、このチュートリアルで使用したすべての Amazon S3 オブジェクトを削除します。このバケットには、入力データセット、クラスター出力、PySpark スクリプト、およびログファイルが含まれている必要があります。PySpark スクリプトまたは出力を別の場所に保存した場合は、保存したファイルを削除するための追加のステップが必要になる場合があります。

注記

バケットを削除する前に、クラスターを完全にシャットダウンする必要があります。バケットを空にしようとすると、問題が発生することがあります。

https://docs.aws.amazon.com/AmazonS3/latest/user-guide/delete-bucket.html の「S3 バケットを削除する方法Amazon Simple Storage Service 入門ガイド」の手順に従って、バケットを空にし、S3 から削除します。

次のステップ

これで、最初の Amazon EMR クラスターが最初から最後まで起動され、ビッグデータアプリケーションの準備と送信、結果の表示、クラスターのシャットダウンなど、主要な EMR タスクについて説明しました。

ワークフローのカスタマイズの詳細について、推奨されるトピックをいくつか示します。Amazon EMR

のビッグデータアプリケーションの詳細Amazon EMR

リリースガイドAmazon EMR』で、クラスターにインストールできるビッグデータアプリケーションを検出して比較します。リリースガイドには、各 EMR バージョンの詳細と、Amazon EMR で Spark や Hadoop などのフレームワークを設定および使用する方法に関するヒントも含まれています。

クラスターハードウェア、ネットワーク、およびセキュリティの計画

このチュートリアルでは、インスタンスタイプ、ネットワーキング、セキュリティなどの詳細オプションを設定せずに、シンプルな EMR クラスターを作成します。速度、容量、セキュリティ要件を満たすクラスターの計画と起動の詳細については、「」および「」を参照してください。クラスタの計画と構成 でのセキュリティAmazon EMR

クラスターを管理する

クラスターへの接続方法、デバッグステップ、クラスターのアクティビティと状態の追跡方法を説明する、Manage Clusters で実行中のクラスターについて詳しく説明します。また、EMR マネージドスケーリングを使用して、ワークロードの需要に応じてクラスターリソースを調整する方法について詳細を確認することもできます。

別のインターフェイスを使用する

コンソールに加えて、Amazon EMR、ウェブサービス API、またはサポートされている多くの AWS SDK のいずれかを使用して Amazon EMR を管理できます。AWS Command Line Interface詳細については、「」を参照してください。管理インターフェイス.

クラスターにインストールされているアプリケーションを操作する方法は多数あります。Amazon EMRApache Hadoop などの一部のアプリケーションは、クラスターインスタンスで表示できるウェブインターフェイスを公開します。詳細については、「」を参照してください。Amazon EMR クラスターでホストされているウェブサイトの表示. Apache Spark を実行する Amazon EMR クラスターでは、Amazon EMR コンソールで EMR ノートブックを使用してクエリとコードを実行できます。詳細については、「」を参照してください。Amazon EMR ノートブック.

EMR 技術ブログを参照する

EMR 機能のチュートリアル例と詳細な説明については、AWS ビッグデータブログを参照してください。