2016-04-04 31 views
12

Spark ec2/spark_ec2.pyファイルを使用してAWS上でSparkクラスタを起動しようとするたびに、というSSH接続エラーが発生するため、最終的にはが解決されますが、 。スパークEC2 SSH接続エラーSSHリターンコード255

私は重複しているとマークする前に、似たような質問がいくつかありますが、2つの重要な違いがあります:a)私の接続常にが完了し、 b)他の質問の「回答」は、一般に、以前のSparkバージョン(たとえば、1.2,1.3など)を中心にしています。私はいつもこの問題を12ヶ月前に1.3/1から1.6/1に今日まで経験しました。

ありがとうございます!

ターミナル出力:

Launched master in us-east-1e, regid = r-a1b2c3d4 
Waiting for AWS to propagate instance metadata... 
Waiting for cluster to enter 'ssh-ready' state........... 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 

Warning: SSH connection error. (This could be temporary.) 
Host: ec2-xx-xx-xx-xxx.compute-1.amazonaws.com 
SSH return code: 255 
SSH output: ssh: connect to host ec2-xx-xx-xx-xxx.compute-1.amazonaws.com port 22: Connection refused 

. 
Cluster is now in 'ssh-ready' state. Waited 833 seconds. 
Generating cluster's SSH key on master... 
+0

誰かが助けることができる場合にも、同じ問題が発生します。 –

+0

一時的に閉じないでください。鉱山は600秒後に働いています。 –

+0

はい、私の仕事は非常に長い待ち時間の後にも同様に動作します。私は待つことを避けようとしています。 –

答えて

1

EC2でのセキュリティグループは、sshのポート(22)のオープンを持っているかどうかを確認してください。

+0

これは@ r-kochhar –

+0

どのように確認していますか? –

+0

ドキュメントごとに@docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout: https://console.aws.amazon.com/でAmazon EC2コンソールを開きます。 ec2 /。 ナビゲーションペインで、[インスタンス]を選択し、インスタンスを選択します。 [説明]タブで、[セキュリティグループ]の横にある[表示ルール]を選択して、有効なルールのリストを表示します。 Linuxインスタンスの場合:コンピュータからポート22(SSH)へのトラフィックを許可するルールがあることを確認します。 –

1

チェックthis、あなたは鍵ペアの名前クライアント上で、宛先マシンの試合のことを、ご確認くださいインバウンドSSHトラフィック

+1

spark-ec2スクリプトから作成されたセキュリティグループは既にSSHトラフィックを有効にしています。私はEC2コンソール内でもそれをチェックしています –

+0

そしてosファイアウォールを無効にしましたか? – jedijs

1

を有効にする必要があります。

クライアントでは、〜/ .sshにpemファイルとして格納されている可能性があります。 宛先ホストでは、EC2コンソールに表示されます(クリックインスタンス、次の説明タブ)。

これを確認する別の方法:同じ鍵ペアで新しいEC2インスタンスを開始し、対応するpemファイルを使用してログします。

マインドセキュリティグループ。

1

火花EC2スクリプトbuild AMIs based on the Amazon Linux base AMI

# Creates an AMI for the Spark EC2 scripts starting with a stock Amazon 
# Linux AMI. 
# This has only been tested with Amazon Linux AMI 2014.03.2 

Iは、したがって遅いSSH接続の遅延/起動は、VPCの構成に応じて、アウト印加(又はしようとEC2インスタンスに起因するタイミングであると信じています)Amazon Linux AMI FAQで詳述するように重要なパッチ/作成上のセキュリティアップデート、:

最初の起動時に、アマゾンのLinux AMIはcriti評価されているすべてのユーザ空間のセキュリティ更新プログラムをレポジトリ パッケージからインストールされますcal または重要であり、SSHなどのサービスが開始される前に実行されます。

AMIがyumリポジトリにアクセスできない場合、ブート処理を完了する前にタイムアウトし、 を何度も再試行します。可能な は、限定的なファイアウォール設定またはVPC設定、 で、Amazon Linux AMIパッケージリポジトリへのアクセスを禁止しています。

これは確かにそうであるならば、関連するすべての更新プログラムが適用されたと--amiオプションを指定してスクリプトを呼び出すと、問題が解決しなければならないVMから独自のAMIを作成する(これは、維持するために自動化することができますすべての上に)。

一つは、潜在的にthe FAQごとに、最初のセキュリティ更新プログラムのプロセスを無効にすることでこれをテストすることができます:「高度なインスタンスオプションに

は、AWS EC2コンソールからのブートにセキュリティ更新プログラムを無効にするには"ページのリクエストインスタンス ウィザードには、Amazon Linux AMI ユーザデータを送信するためのテキストフィールドがあります。このデータは、テキストとして入力することも、ファイルとしてアップロードすることもできます。いずれの場合 には、データは次のようになります。

#cloud-config 
repo_upgrade: none 

コマンドラインから起動時にセキュリティ更新プログラムを無効にするには:

前のユーザデータを持つテキストファイルを作成し、AWS に渡しますec2実行インスタンスに--user-data file://<filename>フラグ( はec2-run-instances -fでも実行できます)を指定します。

アマゾン のLinux AMIをrebundling時にブートのセキュリティ更新プログラムを無効にするには:

変更/etc/cloud/cloud.cfgrepo_upgrade: nonerepo_upgrade: securityを変更します。

関連する問題