繁体   English   中英

如何在纱线客户端模式下在远程主节点上提交spark作业?

[英]How to submit a spark job on a remote master node in yarn client mode?

我需要将火花应用程序/作业提交到远程火花群集。 我目前在我的机器上发出火花,主节点的IP地址作为yarn-client。 顺便说一句我的机器不在群集中。 我用这个命令提交我的工作

./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将用于查找NameNode从您的作业读取/写入HDFS的坐标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM