web-dev-qa-db-ja.com

Spark AWS EMRのUI

EMRコンソールのドロップダウンからSpark(1.3.1)がインストールされたAWS EMRクラスターを実行しています。Sparkは最新であり、データを処理していますが、 WebUIに割り当てられているポートを見つけます。接続なしで4040と8080の両方をポート転送しようとしました。

ssh -i ~/KEY.pem -L 8080:localhost:8080 hadoop@EMR_DNS

1)Spark WebUIに割り当てられたポートが何であるかを確認するにはどうすればよいですか?2)Spark WebUIが実行されていることを確認するにはどうすればよいですか?

15
gallamine

EMR上のSparkはYARN用に構成されているため、Spark UIは、YARNリソースマネージャー( http://spark.Apache.org/docs/ latest/monitoring.html )これに到達する最も簡単な方法は、SSHによって開かれたポートを使用してSOCKSでブラウザーを設定し、EMRコンソールからリソースマネージャーを開き、右側にあるアプリケーションマスターURLをクリックすることです。実行中のアプリケーションSpark=履歴サーバーは、デフォルトのポート18080で使用できます。

http://docs.aws.Amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-web-interfaces.html にあるEMRの靴下の例

11
ChristopherB

EMRのドキュメントで提案されているように、SOCKSを使用したブラウザの設定を処理したくない場合の代替案を次に示します。

  1. spark uiを実行しているマシンへのポート転送を使用して、マスターノードへのSSHトンネルを開きます

    ssh -i path/to/aws.pem  -L 4040:SPARK_UI_NODE_URL:4040 hadoop@MASTER_URL
    

    MASTER_URL(質問のEMR_DNS)は、クラスターのEMR管理コンソールページから取得できるマスターノードのURLです。

    SPARK_UI_NODE_URLは、stderrログの上部近くにあります。ログ行は次のようになります。

    16/04/28 21:24:46 INFO SparkUI: Started SparkUI at http://10.2.5.197:4040
    
  2. ブラウザでlocalhost:4040を指定します

Spark 2.6.1を実行しているEMR 4.6でこれを試しました

9
ud3sh

次のコマンドを実行するだけです。

ssh -i /your-path/aws.pem -N -L 20888:ip-172-31-42-70.your-region.compute.internal:20888 [email protected]

変更する必要がある3つの場所があります。

  1. きみの .pemファイル
  2. 内部マスターノードIP
  3. パブリックDNSドメイン。

最後に、Yarn UIでSpark Application Tracking URLをクリックして、URLを置き換えるだけです。

"http://your-internal-ip:20888/proxy/application_1558059200084_0002/" 

->

"http://localhost:20888/proxy/application_1558059200084_0002/"

EMR 5.xで動作しました

2
DennisLi