Spark环境配置及搭建standalone集群
一、搭建Linux虚拟机
1. 配置:2核、2G内存、20G硬盘、CentOS7系统(CentOS-7-x86_64-DVD-1511.iso,最小化安装)
2. 网络:
二、对虚拟主机进行基本设置
1. 网络配置
ip addr 查看网卡信息
更改网络配置(设置静态ip)
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
配置dns
vi /etc/resolv.conf
重启网络服务
service network restart
配置虚拟机网络适配器
2. 配置网络yum源(这里为阿里云CentOS7 yum源)【可选,针对系统自带的yum源不可用时】
进入yum源文件目录
cd /etc/yum.repos.d
查看相关yum源文件
ls
删除不可用的无效yum源
rm -r CentOS-Base.repo
rm -r CentOS-Debuginfo.repo
下载网络yum源(这里为阿里云yum源)
curl -O http://mirrors.aliyun.com/repo/Centos-7.repo
返回用户目录
cd
安装网络管理工具
yum install net-tools
三、下载和配置Spark环境
1. 安装JDK
yum install java-1.8.0-openjdk* -y
检查JDK是否安装成功
java -version
2. 安装openssh-client 和 openssh-server
yum install openssh-clients
yum install openssh-server
3. 下载并解压spark二进制包
进入/etc目录
cd /etc
下载spark压缩包
curl -O http://mirrors.hust.edu.cn/apache/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.7.tgz
解压缩下载的spark包
tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz
4. 测试
进入解压缩得到的spark-2.3.0-bin-hadoop2.7目录
cd spark-2.3.0-bin-hadoop2.7
执行 ./bin/spark-shell
5. 设置环境变量
编辑文件/etc/profile
vi /etc/profile
在文件末尾加入
export SPARK_HOME="/etc/spark-2.3.0-bin-hadoop2.7"
export PATH="$SPARK_HOME/bin:$PATH"
回到用户目录
cd
执行spark-shell测试环境变量是否设置成功
spark-shell
四、搭建standalone集群
1. 按步骤一、二新建centOS虚拟机,并进行相应的环境配置,以下将本子节点的ip设为192.168.80.3
2. 更改虚拟主机名称和hosts文件
将主节点的主机名称改为master
vi etc/hostname
以同样的方式将子节点主机名称改为slave1
更改master节点的host文件,让两台主机可以通过主机名称互访
vi /etc/hosts
更改slave1节点的host文件(此处master节点ip为192.168.80.2)
3. ssh配置
生成ssh私钥
ssh-****** -t dsa 如有需要输入直接回车即可
将私钥加入到所有节点,包括master节点本身
ssh-copy-id [email protected]
ssh-copy-id [email protected]
4. spark配置文件
进入spark安装目录的配置文件目录
cd /etc/spark-2.3.0-bin-hadoop2.7/conf
按照模板创建slaves和spark-env.sh文件
cp slaves.template slaves
cp spark-env.sh.template spark-env.sh
编辑salves文件,添加spark节点列表
vi slaves
编辑spark-env.sh,在文件末写入java运行目录的位置
最好也在该文件末尾加入一下语句手动指定主节点ip和端口,确保master节点能准确的从自己的配置文件读取到正确的
地址供子节点salve1连接
SPARK_MASTER_HOST=192.168.80.2
SPARK_MASTER_PORT=7077
否则当master节点的host文件为如下时,会由于spark的默认读取机制,读取回环地址127.0.0.1而
非内网地址192.168.80.2,导致子节点slave1的连接被拒绝,出现问题。
5. 复制spark安装目录至节点主机
scp -r /etc/spark-2.3.0-bin-hadoop2.7 [email protected]:/etc
6. 防火墙设置
关闭防火墙
service firewalld stop
或开启所需端口
master节点所需端口 8080 7077 8081,如需其它端口自行按如下规则打开即可
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=7077/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
重新载入防火墙配置,使所开端口生效
firewall-cmd --reload
按上述方法将子节点slave1的端口8081打开,如果报错显示需要其它端口,自行打开即可
7. 运行与关闭standalone集群
进入spark安装目录
cd /etc/spark-2.3.0-bin-hadoop2.7
执行sbin/start-all.sh 开启集群
如有错误请按提示查看运行日志
在浏览器输入master节点地址http://192.168.80.2:8080查看web控制端显示