目录
- 软件部署
- 集群软件前置环境
- 网络配置
- ssh配置
- JDK环境
- 防火墙和SELinux
- 制作快照
- scp(ssh cp)
- ZooKeeper
- 介绍
- 安装
- Hadoop
- 介绍
- Hadoop集群角色
- 角色和节点分配
- 安装
- 内存调整
- Hadoop集群安装
- 报错分析
- 结果
- Spark
- 介绍
- 下载安装
软件部署
- 包含zookeeper、Hadoop、spark的安装过程
- 这个文件来及黑马B站课程的配套笔记
Linux系统软件安装.md
集群软件前置环境
网络配置
- 克隆(关掉虚拟机再克隆速度很快的)
- 主机名修改(hostnamectl set-hostname nodexxx)
- IP地址修改(vim /etc/sysconfig/network-scripts/ifcfg-ens33 进入网络配置修改)
- 修改UUID(systemctl restart network 重启网络)
- xshell连接虚拟机
- 配置主机名映射(分别在window和虚拟机中的hosts文件添加三台虚拟机的映射)
ssh配置
- ssh远程登陆:ssh username@xxx.xxx.xxx.xxx
- ssh免密登录:
- 生成ssh公钥:ssh-keygen -t rsa -b 4096(每一台机器都要执行)
- 将公钥分享给指定ip地址的机器(ssh-copy-id xxx)
JDK环境
- 下载JDK开发包(下载的速度一开始很慢,后面就飞快了)
- xftp上传JDK到虚拟机
- 创建文件夹(mkdir -p /export/server)部署JDK
- 解压缩JDK安装文件(tar -zxvf jdk-8u401-linux-x64.tar.gz -C /export/server)
- 配置JDK软链接(ln -s /export/server/jdk1.8.0_401 jdk)
- 配置JAVA_HOME环境变量,以及将$JAVA_HOME/bin文件夹加入PATH环境中
# 编辑 /etc/profile 文件
vim /etc/profile
# 配置环境变量JAVA_HOME
export JAVA_HOME=/export/server/jdk
# PATH环境变量 添加JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
- 生效环境变量(source /etc/profile)
- 删除系统自带java(which java找到java的位置;rm -f /usr/bin/java删除)
- 软链接自己的java(ln -s /export/server/jdk/bin/java /usr/bin/java)
- 添加了各种软连接,是为了切换不同版本的java的时候更加方便,核心还是全局能够方便使用java
防火墙和SELinux
- 防火墙
# 停止防火墙
systemctl stop firewalld
# 关闭防火墙自启动
systemctl disable firewalld
- SELinux:Linux的安全模块,用以限制用户和程序的相关权限
- !!!注意:是disabled,中文是残疾人;不是disable,中文是禁用
- 单词拼错了系统无法启动
# 编辑selinux的配置文件
vim /etc/sysconfig/selinux
# 将第七行,SELINUX=enforcing 修改为
SELINUX=disabled
# 保存退出重启虚拟机
制作快照
在完成上述设置后为每一台虚拟机制作快照(万一在配置过程中出了什么岔子可以快速回去)
scp(ssh cp)
- 功能:在不同的linux服务器之间通过SSH协议互相传输文件
- 语法:scp [-r] 参数1 参数2
- -r:复制文件夹必须使用-r
- 将参数1的内容传输给参数2
- 使用案例:
scp -r /export/server/jdk root@node2:/export/server/
# 将本机当前路径的jdk文件夹 复制到node2服务器的同名路径下
cd /export/server
scp -r jdk node2:`pwd`/
scp -r jdk node2:$PWD
ZooKeeper
介绍
- 分布式、开源的 分布式应用程序的协调服务
- Hadoop和Hbase的重要组件
- 提供服务:配置维护、域名服务、分布式同步、组服务
- 可以在多台服务器上部署,并协同组成分布式集群一起工作
安装
- 一下安装操作基于以上前置环境准备工作
- node1 下载Zookeeper安装包并解压
# 下载
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
# 2024.3.11 直接下载报错 需要加上 --no-check-certificate
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz --no-check-certificate
# 没有这个文件夹的可以建一个
mkdir -p /export/server
# 解压
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C export/server
- node1创建软链接
ln -s xxx /export/server/apache-zookeeper-3.5.9-bin zookeeper
- node1 修改配置文件
# 将zoo_sample改名为zoo.cfg 这是提供的一个样本文件
mv zoo_sample.cfg zoo.cfg
# 编辑zoo.cfg
vim /export/server/zookeeper/conf/zoo.cfg
# 将对应位置的项进行修改
tickTime=2000
# zookeeper数据存储目录
dataDir=/export/server/zookeeper/data
# 客户端连接端口
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
- node1 配置myid
# 创建zookeeper的数据目录
mkdir /export/server/zookeeper/data
# 创建文件记录myid
vim /export/server/zookeeper/data/myid
# 在文件内填入1
- node1 将整个zookeeper目录(不是软链接)复制给node2 node3
# 复制到node2 node3的同样路径下
cd /export/server
scp -r apache-zookeeper-3.5.9-bin node2:`pwd`/
scp -r apache-zookeeper-3.5.9-bin node3:`pwd`/
- node2修改配置
# 创建软链接
cd /export/server
ln -s apache-zookeeper-3.5.9-bin zookeeper
# 修改myid
cd zookeeper/data
vim myid
# 将1修改为2 保存退出
- node3 修改配置
# 创建软链接
cd /export/server
ln -s apache-zookeeper-3.5.9-bin zookeeper
# 修改myid
cd zookeeper/data
vim myid
# 将1修改为3 保存退出
- node1 node2 node3 启动zookeeper
# 启动命令
/export/server/zookeeper/bin/zkServer.sh start
- node1 node2 node3 检查zookeeper进程是否启动
jps
# 结果中有QuorumPeerMain 进程即可
- node1 验证zookeeper
/export/server/zookeeper/zkCli.sh
# 如果出现连接不上的情况请检查zoo.cfg跟myid是否对应一致
# 修改之后通过zkServer.sh stop停止服务再按照以上步骤重启
# 进入Zookeeper控制台中 执行
ls /
无报错即配置成功
Hadoop
介绍
- 分布式系统基础架构
- 主要解决海量数据的存储和分析计算问题
- HDFS提供分布式海量数据存储能力
- YARN提供分布式集群资源管理能力
- MapReduce提供分布式海量数据计算能力
Hadoop集群角色
- HDFS管理角色:Namenode进程(1个)
- HDFS工作角色:Datanode进程(多个,一个机器启动一个)
- YARN管理角色:ResourceManager进程(1个)
- YARN工作角色:NodeManager(多个,一个机器启动一个)
- 历史记录服务器角色:HistoryServer进程(1个)
- 代理服务器角色:WebProxyServer进程(1个)
- Zookeeper的进程:QuorumPeerMain进程(Zookeeper的工作者,越多越好)
角色和节点分配
角色分配如下:
- node1:Namenode、ResourceManager、HistoryServer、HistoryServer、WebProxyServer、Datanode、NodeManager、QuorumPeerMain
- node2:Datanode、NodeManager、QuorumPeerMain
- node3:Datanode、NodeManager、QuorumPeerMain
安装
内存调整
- node1 4GB以上内存
- node2 和 node3 2GB以上内存
Hadoop集群安装
- 安装过程看这个文件就好了
Linux系统软件安装.md
- 验证
- 9870端口是hdfs的
- 8088端口是yarn的
报错分析
在将hadoop的配置文件按照视频以及文档的修改好之后,启动hdfs没有显示node2 node3的hdfs文件夹创建警告,同时node2 node3中也确实也没有hdfs的文件夹。这种情况应该表示node1没有跟node2 node3连接上。但是这个问题应该怎么解决
启动yarn的时候也是没有一点node2 node3的文件夹创建警告
原因是我忘记了修改workers(workers默认的内容是localhost,也就是只有单机),导致hadoop根本没有去发起node2、node3的连接,因此也没有任何报错
结果
不容易,真不容易啊!!!!
放一下截图
Spark
介绍
- 分布式内存计算引擎,可以支撑海量数据的分布式计算
- 这里安装Spark的步骤基于前面构建的Hadoop集群
下载安装
- 大致的步骤可以直接参考上面的软件安装文件,流程跟Hadoop是差不多的
- 我采用先从window下载(Hadoop跟Spark的下载速度都挺慢的)再上传到虚拟机的方法;如果使用wget的方式下载可能需要在后面加上–no-check-certificate
- spark的端口是8081