一、前期准备工作
下载并安装VMware Workstation。
下载CentOS 7的ISO镜像文件。
下载jdk安装包
下载scala安装包
下载Spark安装包。
下载并安装Xshell
下载地址
CentOS阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)SparkApache Spark™ - Unified Engine for large-scale data analyticsjdkJDK下载 - 编程宝库 (codebaoku.com)scalaThe Scala Programming Language (scala-lang.org)XshellXshell 下载 - NetSarang Website
二、开始搭建虚拟机
1.准备三台虚拟机
这里位置尽量换成其他盘!!。
启动,选择第二个。
设置时间,设置好点完成
接受许可,完成
之后,中文,汉语,位置关闭,时区上海,名称和密码自己设一个,最后开始使用
然后关机,准备进行克隆,克隆出另外两台。
克隆前需要关机,不是挂起,是关机。
右键点击您要克隆的虚拟机,选择“管理” > “克隆”。
在弹出的“克隆虚拟机向导”中,选择“创建完整克隆”或“创建链接克隆”。完整克隆将创建一个独立于原始虚拟机的新虚拟机,而链接克隆将共享原始虚拟机的磁盘文件,以节省磁盘空间。这里选择“创建完整虚拟机”
确认无误后点击“完成”。
三、完成以上,前期准备完成,得到三台虚拟机
下面内容,用我之前搭建好的node1,node2,node3的进行参考
一、准备
1、分别对三台虚拟机进行开机,右键,打开终端。(三台一台台开会快些,一起开可能会卡)
ip addr
查看ip,得到三台虚拟机的ip,打开记事本,记录下这三台ip后续会用到。
2、打开Xshell,与这三台进行连接(之后操作在Xshell中进行,会方便快捷一些。)
连接方法:略
3.分别对三台虚拟机的主机名进行修改,node1,node2,node3
#查询主机名称
hostname
#修改主机名 hostnamectl set-hostname +主机名hostnamectl set-hostname node2
4.配置静态IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
ifcfg-什么根据自己电脑来,有些不是ens33,i编辑模式,编辑完esc退出编辑,:wq保存并退出
改错了就不保存退出。粘贴到终端。三个都要这么来一遍。
5.配置主机映射
三个都要这么做,保存退出
vi /etc/hosts
#以下内容复制到末尾192.168.117.132 node1
192.168.117.133 node2
192.168.117.135 node3
6.关闭防火墙,三台都关
#查看防火墙状态
sudo systemctl status firewalld
#暂时关闭防火墙
sudo systemctl stop firewalld
#永久关闭防火墙
sudo systemctl disable firewalld
7.重启三台虚拟机
reboot
重启完ping百度试一下,看看网络是否配置成功。三台都要检查。(插一句,每进行完一个操作就检查一下,看是否是有问题,有问题赶紧解决。解决完在进行下一步)
ping www.baidu.com
停不下来的话,ctrl+c停止ping操作
8.配置各节点SSH免密码登录:
分别在3个节点执行以下命令,生成密钥文件。三次回车
ssh-keygen
9.分别在3个节点执行以下命令,将自身的公钥信息复制并追加到全部节点的授权文件authorized_keys中
ssh-copy-id node01
ssh-copy-id node02
ssh-copy-id node03
执行过程需要输入密码
报错,就su root加权限
完成之后reboot重启
10.检查!!在各节点用以下命令测试SSH免密登录,三台都要检查
ssh node01
ssh node02
ssh node03
二、spark集群的部署
1.创建三个文件夹
mkdir -p /export/servers
data放置相关数据文件
servers软件安装目录
software放置软件包
2.以下命令是下载一个rz 的插件,下载好后在命令行里输入rz 便会跳出一个界面框,可以选择你要从windows传入虚拟机的文件。三台都要装
yum install lrzszcd -y
3.卸载自带jdk
#先查看是否有
java -version
#之后看都有哪些
rpm -qa | grep java
#一条条卸载(卸载带有openjdk的)
rpm -e --nodeps+
#验证
java -version
4.上传安装包,解压,改名称
切换目录到software下,cd /export/software
#上传(出现闪退乱码是不对的,重新上传即可)
rz
#切换到解压安装后的路径
cd /export/servers/
#解压安装包到/export/servers/ 路径下(版本名字改成自己的)
tar -zxvf spark-3.5.2-bin-hadoop3.tgz -C /export/servers/
tar -zxvf scala-2.13.11.tgz -C /export/servers/
tar -zxvf jdk-8u241-linux-x64.tar.gz -C /export/servers/#包名过长,修改为简短名称,方便后续使用
格式:mv 旧名称 新名称
mv jdk1.8.0_181 jdk
5.配置环境变量
因为是新手,所以一个个配。先在node1上配jdk,打开,编辑,保存,重新加载使生效,检查是否生效,node1完成。之后分发给node2,node3,分发操作在node1上完成,之后在2,3上分别用source /etc/profile重新加载环境变量,检查2,3上配置是否生效。scala和spark重复上述操作。每配一个都检查一下,确定无误后再进行下一步。
#打开配置文件
vi /etc/profile
#重新加载配置文件,使环境变量生效
source /etc/profile
先配置node1,配置完成后验证环境变量是否配置成功,之后分发配置文件给另外两台虚拟机。
#配置jdk的
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#配置SCALA_HOME
export SCALA_HOME=/export/servers/scala
#添加bin路径到Path
export PATH=$PATH:$SCALA_HOME/bin
#配置SPARK_HOME
export SPARK_HOME=/export/servers/spark
#添加bin路径到Path
export PATH=$PATH:/export/servers/spark/bin
验证环境变量是否生效,可用命令echo+$变量名的方式输出:
echo $JAVA_HOME
echo $SCALA_HOME
echo $SPARK_HOME
也可以用java -version,scala -version命令来检查。
spark,spark -version不行的话,可以试试spark-submit --version
分发配置。先切入jdk目录,在输入pwd显示当前目录路径,进入显示的目录,分别输入这两条命令(分发是1发给2,3,所以在1里面操作就行了。相当于输入六次,jdk分给2,3。scala分给2,3,spark分给2,3。)
分发不好怎么办,也有办法,给1的三个都配好之后,直接给后面加的一堆都在分别给2,3加进去,相当于1的三个环境变量是一个个配的,23是1检查无误后,直接复制粘贴。记得重新加载生效。
先输入命令:
ll
输入cd jdk切入jdk目录
在输入pwd显示当前目录路径并复制
输入cd /export/servers进入目录
分别输入这两条命令:
scp -r /export/servers/spark node2:$PWD
scp -r /export/servers/spark node3:$PWD
以spark举例,jdk,scala的给换换就行
6.修改spark配置文件:
进入到conf目录,复制文件spark-env.sh.template并重命名为spark-env.sh
cd /export/servers/spark/conf
重命名spark-env.sh.template:
mv spark-env.sh.template spark-env.sh
并修改该文件配置:
vi spark-env.sh
#配置内容放在尾部,内容如下:
#配置JAVA_HOME
export JAVA_HOME=/export/servers/jdk
#配置SCALA_HOME
export SCALA_HOME=/export/servers/scala
#设置主节点
export SPARK_MASTER_HOST=node1
export SPARK_MASTER_PORT=7077
#复制并重命名workers.template文件:
cp workers.template workers
vi workers
#添加spark集群的workers节点的主机名
node1
node2
node3
#赋予Spark目录更高的操作文件的权限
sudo chmod -R 777 /export/servers/spark
#将配置好的Spark/scala/jdk文件发送到node2、node3节点上(这一步同上面分发配置一个道理)
scp -r /export/servers/spark node02:/export/servers/
scp -r /export/servers/jdk node2:/export/servers/
scp -r /export/servers/scala node2:/export/servers/
scp -r /export/servers/spark node3:/export/servers/
scp -r /export/servers/jdk node3:/export/servers/
scp -r /export/servers/scala node3:/export/servers/
三、启动与关闭集群
Spark 提供了一些单点、集群的启动与停止脚本,可以在 Spark 目录下的 sbin 中查看启动与停止 Spark 的操作脚本。
进入 Spark的sbin 目录,并查看该目录下的脚本。具体命令如下。cd /export/servers/spark/sbin
#进入sbin目录下:
#启动集群:
./start-all.sh
运行启动脚本后,查看返回信息,并使用jps命令查看进程启动情况
启动成功后打开浏览器,输入地址 node1:8080 即可査看集群的UI,在 Spark Ul的页面可以看到集群的节点数、总核心数、内存、存活的 Worker 的信息以及集群状态信息等
#关闭集群:
./stop-all.sh
版权归原作者 C·Tracer 所有, 如有侵权,请联系我们删除。