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を使用しています。
まず、アプリケーションコードから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読み取り/書き込みの座標を検索するために使用されます。