准备工作
- 安装spark 运行环境 jdk
- 如果使用python API,安装运行环境 python2或python3
- 如果使用scala语言,安装运行环境(官网链接)
- 安装spark服务器,配置免密登陆
Spark下载和安装
- 官网下载spark文件(搭建spark不需要hadoop,如果已经有Hadoop集群,可下载相应的版本)
- 解压到指定目录
tar zxvf spark-2.3.1-bin-hadoop2.7.tgz -C /usr/local/
配置spark环境变量
vi /etc/profile
# 定义spark_home并把路径加到path参数中
SPARK_HOME=/usr/local/spark-2.3.1-bin-hadoop2.7
PATH=$PATH:$SPARK_HOME/bon:$SPARK_HOME/sbin
# 定义Scala_home目录,不使用scala语言时无需进行配置
export SCALA_HOME=/usr/local/scala-2.10
export PATH=$PATH:$SCALA_HOME/bin
Spark配置文件
#--------切换到spark配置目录-------
cd /usr/local/spark-2.3.1-bin-hadoop2.7/conf/
#--------配置文件spark-enc.sh--------
mv spark-env.sh.template spark-env.sh #重命名文件
vi spark-env.sh
# 在文件末尾添加环境,保存并退出
export JAVA_HOME=/usr/local/jdk1.8.0_171 #指定jdk位置
export SPARK_MASTER_IP=master #master主机IP(单机为localhost,ifconfig命令查看本机IP)
export SPARK_MASTER_PORT=7077 #master主机端口
# 使用Scala语言时配置
export SCALA_HOME=/usr/local/scala-2.10
# 已有Hadoop集群时配置
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=/usr/hadoop/hadoop-2.7.3/etc/hadoop
#--------配置文件slaves--------
mv slaves.template slaves #重命名文件
vi slaves
#在该文件中添加子节点的IP或主机名(worker节点),保存并退出
node01
node02
#------将配置好的spark拷贝到其他节点上------
scp -r spark-2.3.1-bin-hadoop2.7/ node01:/usr/
scp -r spark-2.3.1-bin-hadoop2.7/ node02:/usr/
启动Spark集群
spark集群配置完毕,目前是1个master,2个worker
#----------在master上启动集群------------
cd /usr/local/spark-2.3.1-bin-hadoop2.7/sbin/
bash start-all.sh #或者bash start-master.sh + bash start-slaves.sh
#----------查看进程-----------------
jps
#----------查看集群状态----------
master任意浏览器登陆:http://master:8080/
启动Shell界面
cd /usr/local/spark-2.3.1-bin-hadoop2.7/bin/
#-------------选择一种编程环境启动-----------------
bash spark-shell # 启动Scala shell
bash pyspark # 启动python shell
bash sparkR # 启动R shell
#启动时若Java版本报错,安装需要的版本即可
sudo apt-get install openjdk-8-jdk