を使用してプライマリノードに接続する SSH - Amazon EMR

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

を使用してプライマリノードに接続する SSH

Secure Shell (SSH) は、リモートコンピュータへの安全な接続を作成するために使用できるネットワークプロトコルです。接続後、ローカルコンピュータ上のターミナルは、リモートコンピュータで実行されているかのように動作します。ローカルで発行したコマンドがリモートコンピュータで実行され、リモートコンピュータからのコマンドの出力はターミナルウィンドウに表示されます。

SSH で を使用すると AWS、クラウドで実行されている仮想サーバーであるEC2インスタンスに接続されます。Amazon を使用する場合EMR、 の最も一般的な用途は、クラスターのプライマリノードとして機能するEC2インスタンスに接続SSHすることです。

SSH を使用してプライマリノードに接続すると、クラスターをモニタリングして操作できます。例えば、プライマリノードで Linux コマンドを発行したり、Hive や Pig などのアプリケーションをインタラクティブに実行したりできます。また、ディレクトリのブラウズやログファイルの読み取りなども可能です。SSH 接続にトンネルを作成して、プライマリノードでホストされているウェブインターフェイスを表示することもできます。詳細については、「Amazon EMRクラスターでホストされているウェブインターフェイスを表示する」を参照してください。

を使用してプライマリノードに接続するにはSSH、プライマリノードのパブリックDNS名が必要です。さらに、プライマリノードに関連付けられたセキュリティグループには、SSH接続元のクライアントを含むソースからの SSH (TCP ポート 22) トラフィックを許可するインバウンドルールが必要です。クライアントからの SSH接続を許可するルールを追加する必要がある場合があります。セキュリティグループルールの変更の詳細については、「Amazon EC2ユーザーガイド」のセキュリティグループを使用してネットワークトラフィックを制御する「」および「セキュリティグループへのルールの追加」を参照してください。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

プライマリノードのパブリックDNS名を取得する

Amazon EMRコンソールと を使用して、プライマリパブリックDNS名を取得できます AWS CLI。

注記

使いやすくするために Amazon EMRコンソールを再設計しました。古いコンソールと新しいコンソールエクスペリエンスの違いについては、「Amazon EMR コンソール」を参照してください。

New console
新しいコンソールでプライマリノードのパブリックDNS名を取得するには
  1. にサインインし AWS Management Console、https://console.aws.amazon.com/emr で Amazon EMRコンソールを開きます。

  2. 左側のナビゲーションペインの EMRでEC2クラスター を選択し、パブリックDNS名を取得するクラスターを選択します。

  3. クラスターの詳細ページの 概要セクションにあるプライマリノードのパブリックDNS値を書き留めます。

Old console
古いコンソールでプライマリノードのパブリックDNS名を取得するには
  1. 新しい Amazon EMRコンソールに移動し、サイドナビゲーションから古いコンソールに切り替えるを選択します。古いコンソールに切り替えたときの動作の詳細については、「Using the old console」を参照してください。

  2. [Cluster List] ページで、クラスターのリンクを選択します。

  3. クラスターの詳細 ページの 概要 セクションに表示されるマスターパブリックDNS値を書き留めます。

    注記

    プライマリノードとSSHの接続を作成する手順のSSHリンクを選択することもできます。

CLI
を使用してプライマリノードのパブリックDNS名を取得するには AWS CLI
  1. クラスター識別子を取得するには、次のコマンドを入力します。

    aws emr list-clusters

    出力には、クラスター を含むクラスターが一覧表示されますIDs。接続しているクラスターのクラスター ID を書き留めます。

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "My cluster"
  2. クラスターのパブリックDNS名を含むクラスターインスタンスを一覧表示するには、次のいずれかのコマンドを入力します。置換 j-2AL4XXXXXX5T9 を、前のコマンドによって返されたクラスター ID に置き換えます。

    aws emr list-instances --cluster-id j-2AL4XXXXXX5T9

    または:

    aws emr describe-cluster --cluster-id j-2AL4XXXXXX5T9

    出力には、DNS名前と IP アドレスを含むクラスターインスタンスが一覧表示されます。PublicDnsName の値を書き留めます。

    "Status": { "Timeline": { "ReadyDateTime": 1408040779.263, "CreationDateTime": 1408040515.535 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-e89b45e7", "PublicDnsName": "ec2-###-##-##-###.us-west-2.compute.amazonaws.com" "PrivateDnsName": "ip-###-##-##-###.us-west-2.compute.internal", "PublicIpAddress": "##.###.###.##", "Id": "ci-12XXXXXXXXFMH", "PrivateIpAddress": "###.##.#.###"

詳細については、「」の「Amazon EMR コマンド AWS CLI」を参照してください。

SSH と Linux、Unix、Mac OS X の Amazon EC2プライベートキーを使用してプライマリノードに接続する

プライベートキーファイルで認証されたSSH接続を作成するには、クラスターの起動時に Amazon EC2 キーペアのプライベートキーを指定する必要があります。キーペアへのアクセスの詳細については、「Amazon ユーザーガイド」の「Amazon EC2キーペア」を参照してください。 EC2

Linux コンピュータには、デフォルトで SSHクライアントが含まれている可能性があります。例えば、OpenSSH はほとんどの Linux、Unix、macOS オペレーティングシステムにインストールされます。コマンドラインsshで と入力すると、 SSH クライアントを確認できます。コンピュータがコマンドを認識しない場合は、 SSHクライアントをインストールしてプライマリノードに接続します。OpenSSH プロジェクトでは、ツールのフルスイートを無料で実装SSHできます。詳細については、「OpenSSH website」を参照してください。

次の手順は、Linux、Unix、および Mac OS X で Amazon EMRプライマリノードSSHへの接続を開く方法を示しています。

キーペアのプライベートキーのファイルアクセス許可を設定するには

Amazon EC2キーペアのプライベートキーを使用してSSH接続を作成する前に、キー所有者のみが.pemファイルにアクセスするアクセス許可を持つように、ファイルに対するアクセス許可を設定する必要があります。これは、ターミナルまたは を使用してSSH接続を作成する場合に必要です AWS CLI。

  1. インバウンドSSHトラフィックが許可されていることを確認します。手順については、「接続する前に: インバウンドトラフィックを承認する」を参照してください。

  2. .pem ファイルを見つけます。この手順では、ファイル名が mykeypair.pem であり、現在のユーザーのホームディレクトリに保存されていることを想定しています。

  3. 次のコマンドを入力してアクセス許可を設定します。置換 ~/mykeypair.pem キーペアプライベートキーファイルのフルパスとファイル名を指定します。例えば、C:/Users/<username>/.ssh/mykeypair.pem です。

    chmod 400 ~/mykeypair.pem

    .pem ファイルに対するアクセス許可を設定していない場合、キーファイルが保護されておらず、キーが拒否されることを示すエラーが表示されます。接続するためにキーペアのプライベートキーファイルに対するアクセス許可を設定する必要があるのは、このファイルを最初に使用するときだけです。

ターミナルを使用してプライマリノードに接続するには
  1. ターミナルウィンドウを開きます。Mac OS X で、[Applications] > [Utilities] > [Terminal] を選択します。他の Linux ディストリビューションでは、ターミナルは通常、[Applications] > [Accessories] > [Terminal] にあります。

  2. プライマリノードへの接続を確立するには、次のコマンドを入力します。置換 ec2-###-##-##-###.compute-1.amazonaws.com をクラスターのプライマリパブリックDNS名に置き換えます。~/mykeypair.pem ファイルのフルパスとファイル名.pemを指定します。例えば「C:/Users/<username>/.ssh/mykeypair.pem」のようにです。

    ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem
    重要

    Amazon EMRプライマリノードに接続するhadoopときは、ログイン名を使用する必要があります。そうしないと、 のようなエラーが表示されることがありますServer refused our key

  3. 警告は、接続先ホストの正当性を検証できないことを示しています。yes を入力して、操作を続けます。

  4. プライマリノードでの作業が完了したら、次のコマンドを入力してSSH接続を閉じます。

    exit

SSH を使用してプライマリノードに接続するときに問題が発生した場合は、「インスタンスへの接続のトラブルシューティング」を参照してください。

Windows SSHで を使用してプライマリノードに接続する

Windows ユーザーは、PuTTY などのSSHクライアントを使用してプライマリノードに接続できます。Amazon EMRプライマリノードに接続する前に、PuTTY と P をダウンロードしてインストールする必要がありますuTTYgen。これらのツールは、PuTTY ダウンロードページ からダウンロードできます

PuTTY は、Amazon によって生成されたキーペアプライベートキーファイル形式 (.pem) をネイティブにサポートしていませんEC2。P を使用してuTTYgen 、キーファイルを必要な PuTTY 形式 () に変換します.ppk。Pu を使用してプライマリノードに接続しようとする前に、キーをこの形式 (.ppk) に変換する必要がありますTTY。

キーの変換の詳細については、「Amazon EC2 ユーザーガイド」の「P を使用したプライベートキーの変換uTTYgen」を参照してください。

Pu を使用してプライマリノードに接続するにはTTY
  1. インバウンドSSHトラフィックが許可されていることを確認します。手順については、「接続する前に: インバウンドトラフィックを承認する」を参照してください。

  2. putty.exe を開きます。Windows プログラムリストから PuTTY を起動することもできます。

  3. 必要に応じて、[Category] リストで、[Session] を選択します。

  4. ホスト名 (または IP アドレス) の場合は、「」と入力します。 hadoop@MasterPublicDNS。 例: hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

  5. カテゴリ リストで、接続 > SSH認証 を選択します。

  6. [Private key file for authentication] では、[Browse] をクリックし、以前に生成した .ppk ファイルを選択します。

  7. Open を選択し、Yes を選択して PuTTY セキュリティアラートを却下します。

    重要

    プライマリノードにログインするときに、ユーザー名の入力を求められた場合は、「hadoop」と入力します。

  8. プライマリノードでの作業が完了したら、Pu を閉じることでSSH接続を閉じることができますTTY。

    注記

    SSH 接続がタイムアウトしないようにするには、Category リストで Connection を選択し、Enable TCP_keepalives オプションを選択します。Pu でアクティブなSSHセッションがある場合はTTY、Pu タイトルバーのコンテキスト (右クリック) を開き、「設定の変更TTY」を選択して設定を変更できます。

SSH を使用してプライマリノードに接続するときに問題が発生した場合は、「インスタンスへの接続のトラブルシューティング」を参照してください。

AWS CLIを使用してプライマリノードに接続する

Windows AWS CLI および Linux、Unix、Mac OS X で を使用して、プライマリノードとSSHの接続を作成できます。プラットフォームに関係なく、プライマリノードのパブリックDNS名と Amazon EC2キーペアのプライベートキーが必要です。Linux、Unix、または Mac OS X AWS CLI で を使用している場合は、 に示すように、プライベートキー (.pem または .ppk) ファイルにもアクセス許可を設定する必要がありますキーペアのプライベートキーのファイルアクセス許可を設定するには

を使用してプライマリノードに接続するには AWS CLI
  1. インバウンドSSHトラフィックが許可されていることを確認します。手順については、「接続する前に: インバウンドトラフィックを承認する」を参照してください。

  2. クラスター識別子を取得するには、次のように入力します。

    aws emr list-clusters

    出力には、クラスター を含むクラスターが一覧表示されますIDs。接続しているクラスターのクラスター ID を書き留めます。

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "AWS CLI cluster"
  3. 次のコマンドを入力して、プライマリノードSSHへの接続を開きます。次の例では、j-2AL4XXXXXX5T9 をクラスター ID に置き換え、~/mykeypair.key ファイル (Linux、Unix、Mac OS X の場合) または .pem ファイル (Windows の場合) のフルパスと.ppkファイル名を指定します。例えば「C:\Users\<username>\.ssh\mykeypair.pem」のようにです。

    aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
  4. プライマリノードでの作業が完了したら、 AWS CLI ウィンドウを閉じます。

    詳細については、「」の「Amazon EMR コマンド AWS CLI」を参照してください。SSH を使用してプライマリノードに接続する際に問題が発生した場合は、「インスタンスへの接続のトラブルシューティング」を参照してください。