Spark 集群环境搭建-exsi
1、虚拟机环境配置
进入管理界面
创建虚拟机
后续选择存储空间位置
3处选择存储目录中的 centos7,安装过程略
如法炮制建立三个虚拟机
ssh连接 此处使用的软件是MobaXterm
2、虚拟机基础配置
需要配置的是
1、网卡开机自动启动,与静态ip
2、修改主机名称
3、关闭centos 防火墙
4、host配置
5、时区设置
6、ssh免密码连接
2.1 网卡开机启动与静态ip
进入该目录
cd /etc/sysconfig/network-scripts/ ls
此处应该有 ifcfg-ensxxx
如 ifcfg-ens192
使用vi命令编辑对应的 ifcfg-ensxxx
vi ifcfg-ens192
对应的字段解释如下
DEVICE 接口名(设备,网卡)
USERCTL [yes|no](非root用户是否可以控制该设备)
BOOTPROTO IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
HWADDR MAC地址
onBOOT 系统启动的时候网络接口是否有效(yes/no)
TYPE 网络类型(通常是Ethemet)
NETMASK 网络掩码
IPADDR IP地址
IPV6INIT IPV6是否有效(yes/no)
GATEWAY 默认网关IP地址
BROADCAST 广播地址
NETWORK 网络地址
我们需要增加或者修改的是
onBOOT=yes #开机启动 BOOTPROTO=static#静态IP IPADDR=xxx.xxx.xxx.xxx #本机地址 NETMASK=255.255.255.0 #子网掩码 GATEWAY=xxx.xxx.xxx.xxx #默认网关
其中xxx要改成该主机的ip地址与默认网关
然后输入下面命令重启网络服务
service network restart
使用
ip addr
查询到修改后的信息
2.2 修改主机名
centos7 有一个命令 hostnamectl 可以方便的查询修改主机名称
hostnamectl #查看主机详细信息 hostnamectl set-hostname spark0 #修改主机名为spark0 hostname #查看主机名
2.3关闭centos 防火墙
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
2.4 host 设置
其他两台机器配置完成后
将每台机器的ip信息添加入 /etc/hosts 文件中
vi /etc/hosts
如图 ip地址 + 主机名称
2.5时区设置
命令
timedatectl set-timezone Asia/Shanghai (这里是设置亚洲上海上海) timedatectl # 查看系统时间方面的各种状态
2.6 ssh免密码连接
命令
ssh-keygen -t rsa #输入完成后一直按回车直到结束 #此时会在/home/usera/.ssh目录下生成密钥对 ssh-copy-id spark0 ssh-copy-id spark1 ssh-copy-id spark2
每台机器都要互相经行ssh面密登录的配置
验证ssh 免密登录
3 虚拟机基础环境搭建
需要搭建
1、java环境
2、hadoop环境
3、spark环境
3.1 java环境的搭建
mkdir -p /opt/software #创建文件夹 cd /opt/software/ #然后进入此目录
将java安装包存储到此目录
将java安装包解压到此目录
tar -zxvf xxx #xxx为jdk压缩包名称
然后设置环境变量
vi /etc/profile
拉到文件尾部 添加
##JAVA_HOME export JAVA_HOME=/opt/software/jdk1.8.0_301 export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile #使配置立即生效 java -version
检查配置成功
3.2 hadoop环境配置
在 /opt/software上传hadoop 安装包
使用tar 命令解压安装包
tar -zxvf hadoop-3.2.2.tar.gz
设置hadoop环境变量
在profile中写入
##HADOOP_HOME export HADOOP_HOME=/opt/software/hadoop-3.2.2/ export PATH==$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile #生效配置
需要配置
hadoop-env.sh
core-site.xml
hdfs-site.xml
yarn-site.xml
vi workers #修改节点文件写入以下三行 spark0 spark1 spark2 cd /opt/software/hadoop-3.2.2/etc/hadoop/ #进入hadoop配置文件存放的目录 vi core-site.xml #configuration 中添加以下内容fs.defaultFS hdfs://spark0:9000 hadoop.tmp.dir /opt/software/hadoop-3.2.2/tmp
vi hdfs-site.xml #configuration 标签中添加以下内容dfs.namenode.secondary.http-address spark0:50090 dfs.namenode.http-address spark0:50070 dfs.replication 2 dfs.namenode.name.dir file:///data/hadoop/hdfs/namenode dfs.datanode.data.dir file:///data/hadoop/hdfs/datanode
vi yarn-site.xml #configuration 中添加以下内容yarn.resourcemanager.hostname spark0 yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.local-dirs file:///data/hadoop/yarn/namenode
vi maped-site.xml #configuration 中添加以下内容mapreduce.framework.name yarn mapreduce.jobhistory.address spark0:10020 vi hadoop-env.sh mapreduce.jobhistory.webapp.address spark0:19888
vi hadoop-env.sh #添加以下内容 export JAVA_HOME=/opt/software/jdk1.8.0_301
为运行文件增加管理员运行条件
cd /opt/software/hadoop-3.2.2/sbin vi start-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
vi stop-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
vi start-yarn.sh YARN_RESOURCEMANAGER_USER=root HDFS_DATANODE_SECURE_USER=yarn YARN_NODEMANAGER_USER=root
vi stop-yarn.sh YARN_RESOURCEMANAGER_USER=root HDFS_DATANODE_SECURE_USER=yarn YARN_NODEMANAGER_USER=root
mkdir命令创建所需要的文件夹
mkdir -p /data/hadoop/yarn/namenode mkdir -p /data/hadoop/hdfs/namenode mkdir -p /data/hadoop/hdfs/datanode
使用scp 命令,将文件复制到另外两个节点中去
scp -r /opt/software/ spark2:/opt/ scp -r /opt/software/ spark1:/opt/ scp -r /data/hadoop spark1:/data/ scp -r /data/hadoop spark2:/data/ scp /etc/profile spark2:/etc/profiles scp /etc/profile spark1:/etc/profile source /etc/profile #在每个节点上更新配置 在spark0 上: hdfs namenode -format #格式化namenode start-all.sh jps#使用该命令查看hadoop是否正常启动
spark0
spark1
spark2
访问spark0:8088
访问spark0:50070
3.2 spark的分布式部署
下载spark和scala安装包
spark-3.0.0-bin-hadoop3.2.tgz
scala-2.12.0.tgz
cd /opt/software/ tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz tar -zxvf scala-2.12.0.tgz
配置spark配置文件
cd conf cp spark-env.sh.template spark-env.sh #建立配置文件 vi spark-env.sh #文件中写入下列内容 export HADOOP_CONF_DIR=/opt/software/hadoop-3.2.2/etc/hadoop/ ##hadoop 配置文件夹 export JAVA_HOME=/opt/software/jdk1.8.0_301/ export HADOOP_HOME=/opt/software/hadoop-3.2.2/ export SPARK_MASTER_HOST=spark0 ##spark主节点 export SPARK_LOCAL_DIRS=/opt/software/spark-3.0.0-bin-hadoop3.2/ export SCALA_HOME=/opt/software/scala-2.12.0/ export SPARK_DIST_CLASSPATH=$(/opt/software/hadoop-3.2.2/bin/hadoop classpath) ##hadoop文件
vi slaves #写入节点内容 spark0 spark1 spark2
vi /etc/profile #底部写入以下内容 ##SCALA_HOME export HADOOP_HOME=/opt/software/scala-2.12.0/ export PATH==$PATH:$SCALA_HOME/bin source /etc/profile #写入后立即生效
使用scp命令,分发文件
scp -r /opt/software/scala-2.12.0 spark2:/opt/software/ scp -r /opt/software/scala-2.12.0 spark1:/opt/software/ scp -r /opt/software/spark-3.0.0-bin-hadoop3.2 spark2:/opt/software/ scp -r /opt/software/spark-3.0.0-bin-hadoop3.2 spark1:/opt/software/ scp /etc/profile spark2:/etc/profile scp /etc/profile spark1:/etc/profile
再从每个机器上使用
source /etc/profile #写入后立即生效
在sprak0 中
cd /opt/software/hadoop-3.2.2/sbin/ ./start-all.sh #先启动hadoop /opt/software/spark-3.0.0-bin-hadoop3.2/sbin/ ./start-all.sh #再启动sprak
访问spark0:8088 即可看到正常启动
jps 命令正常启动



