分享

spark streaming 在yarn模式下,如何指定master

孔雀王 发表于 2014-12-19 16:20:20 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 12 69883
偶是一个spark的新人,现在一个需求需要启动spark streaming for flume-ng,用yarn管理,启动脚本是
spark-submit \
--class org.apache.spark.examples.streaming.JavaFlumeEventCount \
--executor-cores 10 \
--master yarn \
/usr/lib/spark/examples/lib/spark-examples-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar ssp-s001.prod 14141

启动后失败,看日志原因是 master被yarn指定到 ssp-s002.prod,无法在ssp-s001.prod启动监听程序 14141
除非改成

spark-submit \
--class org.apache.spark.examples.streaming.JavaFlumeEventCount \
--executor-cores 10 \
--master yarn \
/usr/lib/spark/examples/lib/spark-examples-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar 0.0.0.0 14141

在这种设定下会在yarn自动分配的master下启动监听程序,问题就是这个机器是随机的

各位大哥,有什么办法用yarn指定启动那台master吗(管理者坚决不开7077端口)


已有(12)人评论

跳转到指定楼层
pig2 发表于 2014-12-19 18:45:40

7077只是默认端口,你修改下spark-env.sh文件就可以了。
然后指定master,
比如某台机器
192.168.1.110
然后端口配置为1021
执行下面命令即可:这样不就即指定了master,又不使用7077端口了。【7077端口见下面】

./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:1021 \
--executor-memory 20G \
--total-executor-cores 100 \
/path/to/examples.jar \
1000






你可以通过conf/spark-env.sh进一步配置整个集群的环境变量。这个文件可以用conf/spark-env.sh.template当模版复制生成。然后,复制到所有的worker机器上才奏效。下面给出一些可选的参数以及含义:
Environment VariableMeaning
SPARK_MASTER_IP绑定一个外部IP给master.
SPARK_MASTER_PORT从另外一个端口启动master(默认: 7077)
SPARK_MASTER_WEBUI_PORTMaster的web UI端口 (默认: 8080)
SPARK_WORKER_PORT启动Spark worker 的专用端口(默认:随机)
SPARK_WORKER_DIR伸缩空间和日志输入的目录路径(默认: SPARK_HOME/work);
SPARK_WORKER_CORES作业可用的CPU内核数量(默认: 所有可用的);
SPARK_WORKER_MEMORY作业可使用的内存容量,默认格式1000M或者 2G (默认:  所有RAM去掉给操作系统用的1 GB);注意:每个作业自己的内存空间由SPARK_MEM决定。
SPARK_WORKER_WEBUI_PORTworker 的web UI 启动端口(默认: 8081)
SPARK_WORKER_INSTANCES没太机器上运行worker数量 (默认: 1). 当你有一个非常强大的计算机的时候和需要多个Spark worker进程的时候你可以修改这个默认值大于1 . 如果你设置了这个值。要确保SPARK_WORKER_CORE 明确限制每一个r worker的核心数, 否则每个worker 将尝试使用所有的核心
SPARK_DAEMON_MEMORY分配给Spark master和 worker 守护进程的内存空间 (默认: 512m)
SPARK_DAEMON_JAVA_OPTSSpark master 和 worker守护进程的JVM 选项(默认: none)
注意: 启动脚本目前不支持Windows。要运行一个Spark 集群在Windows上,手动启动master 和 workers

回复

使用道具 举报

lixiaoliang7 发表于 2014-12-20 10:27:17
pig2 发表于 2014-12-19 18:45
7077只是默认端口,你修改下spark-env.sh文件就可以了。
然后指定master,
比如某台机器

正好我也遇到了这个问题。
请问,如果在submit时指定了master,会不会spark的集群不是spark on yarn模式而变成了standalone模式?
回复

使用道具 举报

lixiaoliang7 发表于 2014-12-21 09:57:31
pig2 发表于 2014-12-19 18:45
7077只是默认端口,你修改下spark-env.sh文件就可以了。
然后指定master,
比如某台机器

我试了一下,
spark-submit --driver-memory 512m --executor-memory 512m --executor-cores 1  --num-executors 3 --class com.yhx.sensor.sparkstreaming.LogicHandle --deploy-mode cluster --master spark://domain:7077 /opt/spark/SparkStreaming.jar

这样启动不起来呀…………  报错:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.2.0-1.cdh5.2.0.p0.36/jars/spark-assembly-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.2.0-1.cdh5.2.0.p0.36/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Sending launch command to spark://domain:7077
Error connecting to master spark://domain:7077 (akka.tcp://sparkMaster@domain:7077), exiting.

Cause was: akka.remote.EndpointAssociationException: Association failed with [akka.tcp://sparkMaster@domain:7077]
回复

使用道具 举报

desehawk 发表于 2014-12-21 12:02:35
lixiaoliang7 发表于 2014-12-21 09:57
我试了一下,
spark-submit --driver-memory 512m --executor-memory 512m --executor-cores 1  --num-e ...



你这种提交方式,是按照什么方式或则文档来做的,按照下面方式试试

  1. SPARK_JAR=./assembly/target/scala-2.10.4/spark-assembly-0.9.0-incubating-hadoop2.2.0.jar \
  2. ./bin/spark-class org.apache.spark.deploy.yarn.Client \
  3. --jar ./examples/target/scala-2.10/spark-examples_2.10-assembly-0.9.0-incubating.jar \
  4. --class org.apache.spark.examples.SparkPi \
  5. --args yarn-standalone \
  6. --num-workers 3 \
  7. --master-memory 2g \
  8. --worker-memory 2g \
  9. --worker-cores 1
复制代码


回复

使用道具 举报

孔雀王 发表于 2014-12-22 15:58:43
多谢,去试试先
回复

使用道具 举报

孔雀王 发表于 2014-12-22 16:03:52
pig2 发表于 2014-12-19 18:45
7077只是默认端口,你修改下spark-env.sh文件就可以了。
然后指定master,
比如某台机器

想请教一个问题,按这种方式启动,是否已经脱离了yarn的控制。不用7077实际的意思是,管理者认为如果用spark://ip:7077这种方式启动,脱离了yarn的管理,换个端口好像不能说服他
回复

使用道具 举报

desehawk 发表于 2014-12-22 16:25:11
孔雀王 发表于 2014-12-22 16:03
想请教一个问题,按这种方式启动,是否已经脱离了yarn的控制。不用7077实际的意思是,管理者认为如果用sp ...
楼主,不明白你想表达什么?
换端口,说服?
使用yarn,但是却不用7077端口?
使用7077端口,不使用yarn?
回复

使用道具 举报

孔雀王 发表于 2014-12-22 17:36:38
管理者,不许我用 --master 这个参数
回复

使用道具 举报

孔雀王 发表于 2014-12-22 17:37:46
他认为在使用这个参数的情况下,yarn管理不了相关结点
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条