web-dev-qa-db-ja.com

yarnクライアントモードのリモートマスターノードでspark=ジョブを送信する方法は?

sparkアプリ/ジョブをリモートsparkクラスターに送信する必要があります。現在、マシンにはsparkと、yarn-clientとしてのマスターノードのIPアドレスがあります。ところで、私のマシンはクラスターにありません。このコマンドでジョブを送信します

./spark-submit --class SparkTest --deploy-mode client /home/vm/app.jar 

私はマスターのアドレスをフォームにアプリにハードコーディングしています

val spark_master = spark://IP:7077

それでも、私が得るのはエラーだけです

16/06/06 03:04:34 INFO AppClient$ClientEndpoint: Connecting to master spark://IP:7077...
16/06/06 03:04:34 WARN AppClient$ClientEndpoint: Failed to connect to master IP:7077
Java.io.IOException: Failed to connect to /IP:7077
at org.Apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.Java:216)
at org.Apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.Java:167)
at org.Apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:200)
at org.Apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:187)
at org.Apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:183)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
at Java.lang.Thread.run(Thread.Java:745)
Caused by: Java.net.ConnectException: Connection refused: /IP:7077

または代わりに私が使用する場合

./spark-submit --class SparkTest --master yarn --deploy-mode client /home/vm/test.jar

私は得る

Exception in thread "main" Java.lang.Exception: When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.
at org.Apache.spark.deploy.SparkSubmitArguments.validateSubmitArguments(SparkSubmitArguments.scala:251)
at org.Apache.spark.deploy.SparkSubmitArguments.validateArguments(SparkSubmitArguments.scala:228)
at org.Apache.spark.deploy.SparkSubmitArguments.<init>(SparkSubmitArguments.scala:109)
at org.Apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:114)
at org.Apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

ワークステーションでもhadoopを設定する必要は本当にありますか?すべての作業はリモートで行われ、このマシンはクラスターの一部ではありません。 Spark 1.6.1を使用しています。

14
Mnemosyne

まず、アプリケーションコードからconf.setMaster(...)を設定している場合は、(-master引数よりも)最も優先されます。 yarnクライアントモードで実行する場合は、アプリケーションコードでMASTER_IP:7077を使用しないでください。次の方法で、ドライバにhadoopクライアント設定ファイルを提供する必要があります。

環境変数HADOOP_CONF_DIRまたはYARN_CONF_DIRを設定して、クライアント設定を含むディレクトリを指すようにする必要があります。

http://spark.Apache.org/docs/latest/running-on-yarn.html

sparkアプリケーションで使用しているhadoop機能に応じて、設定ファイルの一部は設定の検索に使用されます。Hiveを使用する場合(spark-sqlのHiveContextを使用)、 Hive-site.xmlを探すhdfs-site.xmlは、ジョブからHDFSへのNameNode読み取り/書き込みの座標を検索するために使用されます。

16
Pranav Shukla