Spark快速入门系列(4) | Spark环境搭建—standalone(1) 集群的搭建

2020-10-28 17:04:13 浏览数 (1)

构建一个由 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
代码语言:javascript复制
[bigdata@hadoop002 module]$ cp -r spark-2.1.1-bin-hadoop2.7 spark
  • 2. 进入配置文件目录conf, 配置spark-evn.sh
代码语言:javascript复制
[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 节点
代码语言:javascript复制
[bigdata@hadoop002 conf]$ cp slaves.template slaves
[bigdata@hadoop002 conf]$ vim slaves

# 在slaves文件中配置如下内容:
hadoop002
hadoop003
hadoop004
  • 4. 在sbin/spark-config.sh中添加入JAVA_HOME变量
代码语言:javascript复制
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 集群
代码语言:javascript复制
[bigdata@hadoop002 spark]$ sbin/start-all.sh
  • 7. 在Web端查看Spark集群情况 地址: http://hadoop002:8080
  • 8. 测试运行
代码语言:javascript复制
[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的话
代码语言:javascript复制
[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
代码语言:javascript复制
// 通过scp 命令将配置文件分发到其他机器上

scp /etc/profile root@hadoop003:/etc
scp /etc/profile root@hadoop004:/etc
source /etc/profile 

五. 集群的启动和停止

  • 1. 集群的启动和停止
代码语言:javascript复制
在主节点上启动Spark集群
/export/servers/spark/sbin/start-all.sh

在主节点上停止spark集群
/export/servers/spark/sbin/stop-all.sh
  • 2. 单独启动和停止
代码语言:javascript复制
在 master 安装节点上启动和停止 master:

start-master.sh
stop-master.sh

在 Master 所在节点上启动和停止worker(work指的是slaves 配置文件中的主机名)
start-slaves.sh
stop-slaves.sh

  本次的分享就到这里了

0 人点赞