10.4 spark集群搭建-standalone模式

Spark standalone集群搭建:

1、上传解压 tar -zxvf spark-1.6.0-bin-hadoop2.6.tgz

2、修改安装包的名称(最好保留版本号)mv spark-1.6.0-bin-hadoop2.6 spark-1.6.0

3、进入conf目录,修改slaves和Spark-env.sh

slaves(Worker进程所在的节点):

node2

node3

node4

spark-env.sh

export SPARK_MASTER_IP=hadoop1 Matser的IP

export SPARK_MASTER_PORT=7077 提交任务的端口

扫描二维码关注公众号,回复: 2415798 查看本文章

export SPARK_WORKER_CORES=2 每个Worker进程管理2个core

export SPARK_WORKER_MEMORY=2G 每个Worker进程管理2G内存

export SPARK_WORKER_INSTANCES=1 在每个虚拟机或者真实的物理机上启动的Worker的数量 defult 1

4、将安装包同步到其他的节点上 scp -r spark-1.6.0 root@node2:/opt/local/

5、如果想要修改master的监控端口 在start-master.sh 脚本里面修改 不修改默认8080

6,启动sbin目录下./start-all.sh

web端访问:http://node1:8080/

测试:bin目录下

./spark-submit --master spark://node1:7077 --deploy-mode cluster --

total-executor-cores 3 --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 1000

./spark-submit --master spark://node1:7077 --deploy-mode cluster 提交模式(defult:client,cluster)

--total-executor-cores 3(小于集群core的总数) 集群为当前的application奉献了3个core

--class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.6.0-hadoop2.6.0.jar 1000(并发度 使用1000个线程来计算)


Spark standalone模式

Master:资源管理的主节点,掌握集群的资源情况

实际上就是一个进程

Worker:只是管理某一台机器 或者 管理某一部分资源 2G内存和2个core

也是一个进程,Worker会管理他所在机器的资源

Driver:与任务调度有关

Spark 在Standalone上运行分为两种模式

node1 master 也是提交应用程序的客户端

node2 worker

node3 worker

node4 worker

1、client 测试程序

Driver进程是在客户端启动的

Driver(SparkContext对象)的作用:

分发任务

回收task的计算结果

回收task的执行情况

心跳

可以在提交应用程序的客户端上监控task的执行情况

适应场景:

测试 生产环境下为什么不使用client模式?

如果我要提交100个application到集群运行,Driver每次都会在client节点启动,那么就会操作客户端100次网卡流量暴增的问题

2、cluster 适合在生产环境

Driver进程是在集群某一台Worker上启动的

是无法查看task的执行情况的

如果我要提交100个application到集群运行,每次Driver会随机在某一台Worker上启动,那么这100次网卡流量暴增的问题就散布在集群上的

猜你喜欢

转载自blog.csdn.net/u011418530/article/details/81161671