构建一个由 Master Slave 构成的 Spark 集群,Spark 运行在集群中。 这个要和 Hadoop 中的 Standalone 区别开来. 这里的 Standalone 是指只用 Spark 来搭建一个集群, 不需要借助其他的框架.是相对于 Yarn 和 Mesos 来说的.
一. 集群角色的简单介绍
Spark是基于内存计算的大数据并行计算框架,实际中运行计算任务肯定是使用集群模式,那么我们先来学习Spark自带的standalone集群模式了解一下它的架构及运行机制。
- Standalone集群使用了分布式计算中的master-slave模型
- master是集群中含有master进程的节点
- slave是集群中的worker节点含有Executor进程
二. 集群规划
假设集群中有三台节点,hadoop002,hadoop003,hadoop004
hadoop002 | master |
hadoop003 | slave/worker |
hadoop004 | slave/worker |
三. 修改配置
- 1. 复制 spark, 并命名为spark-standalone
[bigdata@hadoop002 module]$ cp -r spark-2.1.1-bin-hadoop2.7 spark
- 2. 进入配置文件目录conf, 配置spark-evn.sh
[bigdata@hadoop002 spark-standalone]$ cd conf/
[bigdata@hadoop002 conf]$ cp spark-env.sh.template spark-env.sh
[bigdata@hadoop002 conf]$ vim spark-env.sh
#指定默认master的ip或主机名
export SPARK_MASTER_HOST=hadoop002
#指定maaster提交任务的默认端口为7077
export SPARK_MASTER_PORT=7077
- 3. 修改 slaves 文件, 添加 worker 节点
[bigdata@hadoop002 conf]$ cp slaves.template slaves
[bigdata@hadoop002 conf]$ vim slaves
# 在slaves文件中配置如下内容:
hadoop002
hadoop003
hadoop004
- 4. 在
sbin/spark-config.sh
中添加入JAVA_HOME
变量
export JAVA_HOME=/opt/module/jdk1.8.0_144
此处如果不添加会出现如下错误:
- 5. 分发
spark
通过scp 命令将配置文件分发到其他机器上
代码语言:javascript复制scp -r /opt/module/spark hadoop003:/opt/module/
scp -r /opt/module/spark hadoop004:/opt/module/
- 6. 启动 Spark 集群
[bigdata@hadoop002 spark]$ sbin/start-all.sh
- 7. 在Web端查看Spark集群情况
地址
: http://hadoop002:8080
- 8. 测试运行
[bigdata@hadoop002 spark]$ bin/spark-submit
--class org.apache.spark.examples.SparkPi
--master spark://hadoop002:7077
--executor-memory 1G
--total-executor-cores 2
./examples/jars/spark-examples_2.11-2.1.1.jar
100
完成上述的操作 standalone集群模式就算是大概完成了。
四. 修改事项(修改记得所有的都要哦)
- 1. 如果配置的有HADOOP_HOME的话
[bigdata@hadoop002 spark]$ sudo vim /etc/profile
配置spark环境变量(建议不添加,避免和Hadoop的命令冲突)
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
[bigdata@hadoop002 spark]$ source /etc/profile
解决方案
:
- 1.把其中一个框架的sbin从环境变量中去掉
- 2.改名 hadoop/sbin/start-all.sh 改为: start-all-hadoop.sh
// 通过scp 命令将配置文件分发到其他机器上
scp /etc/profile root@hadoop003:/etc
scp /etc/profile root@hadoop004:/etc
source /etc/profile
五. 集群的启动和停止
- 1. 集群的启动和停止
在主节点上启动Spark集群
/export/servers/spark/sbin/start-all.sh
在主节点上停止spark集群
/export/servers/spark/sbin/stop-all.sh
- 2. 单独启动和停止
在 master 安装节点上启动和停止 master:
start-master.sh
stop-master.sh
在 Master 所在节点上启动和停止worker(work指的是slaves 配置文件中的主机名)
start-slaves.sh
stop-slaves.sh
本次的分享就到这里了