2017-08-28 9 views
0

私はAWS EC2でhadoopクラスタセットアップを行っていますが、開発環境(spark)はローカルWindowsシステムにあります。私が接続できるAWS Hiveサーバーを接続しようとしていますが、ローカルスパーク設定からジョブを送信しようとしたときに、接続が拒否されたというエラーが表示されています。 Windowsでは、ユーザー名がHadoopエコシステムがAWSサーバーで実行されているユーザー名と異なることに注意してください。このセットアップで基礎となるシステムがどのように機能するかは、誰でも説明できますか?AWS Hadoopクラスタ設定によるスパークジョブの提出

1)地元のSparkからHIVEへのジョブを提出するとき、それがMRジョブに関連付けられている場合、ASW HiveセットアップはそのジョブNNを独自のIDで提出するか、スパークセットアップIDを引き継ぎます。

2)自分の設定で、AWSのhadoopクラスタと同じユーザー名でローカルでsparkを実行する必要がありますか?

3)私のローカルシステムを認証するためにSSLを設定する必要がありますか?

私のローカルシステムはhadoopクラスタの一部ではなく、AWS Hadoopクラスタにも含めることはできません。

私のhadoopクラスタがAWSにあり、sparkが私のローカルで実行されている環境の実際の設定は何かを教えてください。

+0

ローカルマシンを「エッジノード」と見なしてください。すべてのHadoop + Hive XML設定ファイルがローカルに必要です。 HiveではSparkコードに明示的に 'hive.metastore.uris'を設定することができます。 https://stackoverflow.com/questions/31980584/how-to-connect-to-a-hive-metastore-programmatically-in-sparksql#31993754 –

+0

私の理解しているエッジノードは同じクラスタの一部でなければならないそうではありませんか?この場合、私のローカルシステムもAWSハープループクラスタシステムに含める必要がありますか? – Biswajit

+0

エッジノードは、ネットワークの周辺にある任意のコンピュータです。クライアント専用の構成ファイル。実行中のクラスタサービスはありません。ただし、すべてのサービスに必要なec2ポートを開く必要があります。 (NameNode、thrift、Datanode、Spark History Server、ResourceManagerなど) –

答えて

0

問題を単純化するために、あなたはに無料で、その後spark-submit --master yarn --class <classname> <jar-file>を実行し、AWSの任意のspark-clientにユーバー/日陰JAR、SCPを作成、ローカルコードをコンパイル。

ただし、EC2をローカルでスパークする場合は、プログラムによっていくつかのプロパティを設定できます。その記事で述べたように

Spark submit YARN mode HADOOP_CONF_DIR contents

あるいは、最良の方法は、HADOOP_CONF_DIRからクラスタのXMLファイルを取得し、アプリケーションのクラスパスにそれらの上にコピーされます。 Java/Scalaアプリケーションの場合、これは通常src/main/resourcesです。

Python、R、またはSSLコンフィグについては不明です。

はい、すべてのノードでローカルWindowsユーザー名のリモートユーザーアカウントを追加する必要があります。これは、スパークエグゼキュータがユーザー偽装を処理する方法です。

関連する問題