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#静态IPIPADDR=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 #停止firewallsystemctl 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 spark0ssh-copy-id spark1ssh-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_HOMEexport JAVA_HOME=/opt/software/jdk1.8.0_301export 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_HOMEexport 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 #修改节点文件写入以下三行spark0spark1spark2cd /opt/software/hadoop-3.2.2/etc/hadoop/ #进入hadoop配置文件存放的目录vi core-site.xml #configuration 中添加以下内容<property><name>fs.defaultFS</name><value>hdfs://spark0:9000</value></property><!-- hadoop运行时产生的文件的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/software/hadoop-3.2.2/tmp</value></property>
vi hdfs-site.xml #configuration 标签中添加以下内容<property><name>dfs.namenode.secondary.http-address</name><value>spark0:50090</value></property><property><name>dfs.namenode.http-address</name><value>spark0:50070</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.name.dir</name><value>file:///data/hadoop/hdfs/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>file:///data/hadoop/hdfs/datanode</value></property>
vi yarn-site.xml #configuration 中添加以下内容<property><name>yarn.resourcemanager.hostname</name><value>spark0</value></property><!-- reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.local-dirs</name><value>file:///data/hadoop/yarn/namenode</value></property>
vi maped-site.xml #configuration 中添加以下内容<property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>spark0:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>spark0:19888</value></property>vi hadoop-env.sh
vi hadoop-env.sh #添加以下内容export JAVA_HOME=/opt/software/jdk1.8.0_301
为运行文件增加管理员运行条件
cd /opt/software/hadoop-3.2.2/sbinvi start-dfs.shHDFS_DATANODE_USER=rootHDFS_DATANODE_SECURE_USER=hdfsHDFS_NAMENODE_USER=rootHDFS_SECONDARYNAMENODE_USER=root
vi stop-dfs.shHDFS_DATANODE_USER=rootHDFS_DATANODE_SECURE_USER=hdfsHDFS_NAMENODE_USER=rootHDFS_SECONDARYNAMENODE_USER=root
vi start-yarn.shYARN_RESOURCEMANAGER_USER=rootHDFS_DATANODE_SECURE_USER=yarnYARN_NODEMANAGER_USER=root
vi stop-yarn.shYARN_RESOURCEMANAGER_USER=rootHDFS_DATANODE_SECURE_USER=yarnYARN_NODEMANAGER_USER=root
mkdir命令创建所需要的文件夹
mkdir -p /data/hadoop/yarn/namenodemkdir -p /data/hadoop/hdfs/namenodemkdir -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/profilesscp /etc/profile spark1:/etc/profilesource /etc/profile #在每个节点上更新配置在spark0 上:hdfs namenode -format #格式化namenodestart-all.shjps#使用该命令查看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.tgztar -zxvf scala-2.12.0.tgz
配置spark配置文件
cd confcp 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 #写入节点内容spark0spark1spark2
vi /etc/profile #底部写入以下内容##SCALA_HOMEexport HADOOP_HOME=/opt/software/scala-2.12.0/export PATH==$PATH:$SCALA_HOME/binsource /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 命令正常启动