Spark-Standalone集群及搭建

Spark集群

1.Spark集群

1.集群规划

Master Worker
node01
node02
node03
node04

2.搭建步骤
    我们使用spark1.6.3版本搭建集群,资源:[spark-1.6.3-bin-hadoop2.6.tgz][1]

2.1.将上述jar包传到/opt目录下
2.2.解压jar包

	tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz

2.3.改名
将sbin目录下的start-all.sh和stop-all.sh更改为start-spark.sh和stop-spark.sh

	mv start-all.sh start-spark.sh
	mv stop-all.sh stop-spark.sh

2.4.修改配置文件
    2.4.1、修改slave.template文件

#改文件名
mv slave.templste slave
#修改slave文件
vim slave
#添加从节点信息
node02
node03
node04

    2.4.2、修改spark-env.sh.template文件

#改文件名
mv spark-env.sh.template spark-env.sh
#修改配置文件
vim spark-env.sh
#添加配置信息
#master的ip地址
SPARK_MASTER_IP=node01
#master的端口号
SPARK_MASTER_PORT=7077
#worker能够管理的核数
SPARK_WORKER_CORES=1
# worker能够管理的内存
SPARK_WORKER_MEMORY=2g
# worker文件位置
SPARK_WORKER_DIR=/opt/software/spark/worker

2.5分发文件

scp -r spark-1.6.3-bin-hadoop2.6 node02:`pwd`
scp -r spark-1.6.3-bin-hadoop2.6 node03:`pwd`
scp -r spark-1.6.3-bin-hadoop2.6 node04:`pwd`

2.6环境变量
    看个人习惯,可以修改/etc/profile或~/.bashrc,修改完后记得source使环境配置生效
2.7启动集群

start-spark.sh

2.8查看网页

node01:8080

直接使用node01的前提是在电脑上已经配置了IP及主机名,不然需要使用地址访问

2.9提交任务

spark-submit --master spark://node01:7077 --class org.apache.spark.examples.SparkPi /opt/software/spark/spark-1.6.3/lib/spark-examples-1.6.3-hadoop2.6.0.jar  100

提交以后,可以去页面查看任务执行状况

2.Spark HA集群

1.集群规划

Master Worker Zookeeper
node01
node02
node03
node04

Spark HA依赖于zookeeper集群,通过zookeeper集群实现集群的主备切换。[zookeeper安装][2]

2.搭建步骤
    使用普通集群,修改node02上的配置文件

#修改spark-env.sh
SPARK_MASTER_IP=node02

3.页面访问

node01:8080
node02:8080

4.提交任务

spark-submit --master spark://node02:7077,node01:7077  --class org.apache.spark.examples.SparkPi /opt/software/spark/spark-1.6.3/lib/spark-examples-1.6.3-hadoop2.6.0.jar  100

注意提交命令,node01与node02之间使用","隔开的,而且只需要写一次spark://

Saprk集群主备切换的小知识点
Q:主备切换都做那些工作?
A:1.zookeeper选举一个新的master作为主节点
       2.master通知worker节点,主节点已更改
       3.worker向新的master节点汇报信息
Q:主备切换过程中,能提交一个新的任务到集群中运行吗?
A:不能,主备切换中,之前正在工作的master已经死了,新接管的master还处于RECOVER状态中。
Q:如果有一个Application已经在集群中运行了,那么主备切换对这个Application有无影响?
A:无影响,Spark是粗粒度的资源调度,任务在运行之前已经向master申请资源了。之后的运行与master无关。

3.客户端

    将node01上的文件传送一份即可,然后配置环境变量。
    客户端主要使用spark的提交命令。

猜你喜欢

转载自blog.csdn.net/love__guo/article/details/84788139