Spark环境的搭建相比于Hadoop集群的搭建还是比较简单的,而且跟Hadoop集群的搭建流程也很相似,只是没有Hadoop集群那么多的配置文件要修改。本文中,我将详细介绍Spark的本地模式、Standalone模式(伪分布)、Standalone模式(全分布)、Yarn集群模式的搭建。
搭建环境:CentOS7+jdk8+spark2.3.2+hadoop2.7
Local本地模式
- 上传并解压spark2.3.2到指定目录
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 添加软链接
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改环境变量
vi ~/.bashrc
添加
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。
4. 测试是否安装成功
测试运行样例
run-example SparkPi 10
测试shell
spark-shell
测试spark-submit命令
spark-submit --class org.apache.spark.examples.SparkPi /home/hadoop/apps/spark/examples/jars/spark-examples_2.11-2.3.2.jar 100
Standalone模式(伪分布)
- 上传并解压spark2.3.2到指定目录
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 添加软链接
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改环境变量
vi ~/.bashrc
添加
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。
4. 修改配置文件spark-env.sh
cd /home/hadoop/apps/spark/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在最下面添加
# hadoop1是主节点,即本机的主机名
export SPARK_MASTER_HOST=hadoop1
# 默认端口号为7077
export SPARK_MASTER_PORT=7077
- 启动集群
进入sbin目录
cd /home/hadoop/apps/spark/sbin
启动master
./start-master.sh
启动slave
./start-slave.sh spark://hadoop1:7077 - 查看是否启动成功
jps - 查看集群资源页面
打开网页hadoop1:8080 - 进入集群的shell
spark-shell --master spark://hadoop1:7077
Standalone模式(全分布)
- 上传并解压spark2.3.2到指定目录
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 添加软链接
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改环境变量
vi ~/.bashrc
添加
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。
4. 修改配置文件spark-env.sh
cd /home/hadoop/apps/spark/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在最下面添加
# hadoop1是主节点,即本机的主机名
export SPARK_MASTER_HOST=hadoop1
# 默认端口号为7077
export SPARK_MASTER_PORT=7077
- 修改配置文件slaves
cd /home/hadoop/apps/spark/conf
cp slaves.template slaves
vi slaves
删除原有节点,添加从节点主机名
hadoop2
hadoop3
hadoop4
- 将整个spark文件发送到各个从节点
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop2:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop3:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop4:/home/hadoop/apps/ - 在各个从节点重复2、3步操作
- 启动集群
进入sbin目录
cd /home/hadoop/apps/spark/sbin
启动master
./start-master.sh
启动slave
./start-slaves.sh spark://hadoop1:7077 - 查看是否启动成功
jps - 查看集群资源页面
打开网页hadoop1:8080 - 进入集群的shell
spark-shell --master spark://hadoop1:7077
Yarn集群模式
- 上传并解压spark2.3.2到指定目录
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 添加软链接
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改环境变量
vi ~/.bashrc
添加
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此处必须要添加JAVA_HOME的路径,虽然你可能已经在/etc/profile例配置了JAVA_HOME,但是Spark识别不到,后面启动会报找不到JAVA_HOME的错误,所以这里必须再次添加一下JAVA_HOME的路径。
4. 修改配置文件spark-env.sh
cd /home/hadoop/apps/spark/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在最下面添加
# hadoop1是主节点,即本机的主机名
export SPARK_MASTER_HOST=hadoop1
# 默认端口号为7077
export SPARK_MASTER_PORT=7077
# 添加hadoop的配置目录
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.1/etc/hadoop
- 优化配置-修改spark-defaults.conf
cd /home/hadoop/apps/spark/conf
cp spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf
添加
# 将spark的类库 jar包上传到hdfs上,省的每次都上传
spark.yarn.jars hdfs://hadoop1:9000/sparklib/jars/*
- 修改配置文件slaves
cd /home/hadoop/apps/spark/conf
cp slaves.template slaves
vi slaves
删除原有节点,添加从节点主机名
hadoop2
hadoop3
hadoop4
- 将整个spark文件发送到各个从节点
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop2:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop3:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop4:/home/hadoop/apps/ - 在各个从节点重复2.3步操作
- 启动hadoop的yarn集群
start-yarn.sh - 启动spark集群
进入sbin目录
cd /home/hadoop/apps/spark/sbin
启动master
./start-master.sh
启动slave
./start-slaves.sh spark://hadoop1:7077 - 查看是否启动成功
jps - 查看集群资源页面
打开网页hadoop1:8080 - 进入集群的shell
spark-shell --master yarn