优秀是一种习惯
知识点01:回顾
-
Linux中如何实现文本编辑?
- 命令:vim
- 命令模式:执行一些快捷命令
- 复制:yy
- 粘贴:p
- 剪切:dd
- 跳转:G、gg
- 进入编辑:i、O、o、A
- 编辑模式:修改内容
- 末行模式:保存退出
- wq
- 应用:不适合于复杂的数据编辑,适合于轻量级的修改
- 命令模式:执行一些快捷命令
- 工具:notepad++
- 应用:适合于复杂的数据编辑
- 命令:vim
-
Linux中如何修改静态网络信息?
-
配置文件的位置
/etc/sysconfig/network-scrips/ifcfg-ens33 | ifcfg-ethN (0 ~ 7)
-
修改的内容
bootProtocol=static | none IP :用于唯一标记一台机器,所有机器间的访问与通信都是通过IP地址来实现 GATEWAY :用于让机器能够访问外部网络的地址 DNS :域名解析服务,用于将主机名或者域名解析为IP地址 ping node1 step1:本地解析,现在本地做解析/etc/hosts step2:如果本地解析失败,才走DNS NETMASKS :子网掩码,必须搭配IP使用的,解决构建子网的问题
-
-
如何在Linux中实现软件的安装?
- 方式一:RPM包
- 类似于安装可执行文件的方式
- 缺点:容易产生依赖的问题
- 方式二:YUM源
- 自动管理所有依赖
- 方式三:编译安装
- 基于源码直接进行编译进行安装
- 定制化的需求
- 方式四:免安装
- 官方编译好的,下载以后直接使用的
- 解压就代表安装
- 方式一:RPM包
-
为什么要开发Shell脚本?如何开发一个Shell脚本?
- 应用
- 批量化处理
- 自动化处理
- 规则
- 声明头部:#!/bin/bash
- 实现逻辑:命令的封装
- 添加可执行的权限
- 应用
-
Shell脚本中的变量有哪几种以及如何使用?
- 分类
- 系统:PATH、PWD、USER
- 内置:$0 $1 ~ $9 $# $? @ / @/ @/*
- 用户:var=value
- 引用
- ${var}
- 分类
-
Shell中如何实现条件判断?
-
if
-
语法
if [条件] then [elif 条件] [else] fi
-
条件表达式
- 文件
- -e
- -f
- -d
- -r
- 数值
- -eq
- -ne
- -gt
- -lt
- -ge
- -le
- 字符串
- =
- !=
- ……
- 文件
-
-
case
case var in value1) op1;; value2) opt2;; *) optN;; esac
-
-
Shell中如何实现循环以及如何控制循环?
-
实现
-
for
for var in 范围 do operation done for((i=0;i<10;i++)) do done
-
while
while [条件] do done
-
-
控制
-
死循环
for((;;)) while true while :
-
跳出整个循环:break
-
跳出当前循环:continue
-
-
-
脚本如何运行以及如何嵌套脚本?
- 方式一:. 调用的脚本
- 方式二:source 调用的脚本
知识点02:目标
- Linux Shell的基本应用案例
- 熟练基本Shell语法
- 自动化实现:Crontab
- 集群环境搭建配置
- 克隆虚拟机
- 修改配置:免秘钥登陆、时钟同步、本地域名解析
- 只要记住过程,实现即可
- 分布式基础:理论 【重要】
- 什么是分布式?
- 分布式的通用架构是什么样的?
- 分布式有什么优缺点?
- Zookeeper的基本介绍 【重要】
- Zookeeper的功能是什么?
知识点03:Linux案例:猜数游戏
-
目标:实现猜数游戏脚本开发
-
路径
- step1:需求分析
- step2:开发实现
-
实施
-
需求分析
- 需求:由脚本随机生成一个数字,用户进行猜数,猜对了就退出,猜错了返回大小
-
开发实现
#!/bin/bash #step1:先生成一个随机数 numb=$[RANDOM%100+1] #echo $numb #step2:读取用户的输入来比较是否相等,如果相等,就退出,如果不等,返回比较的结果,继续输入 while true do #读取用户的输入 read -p "请输入一个你猜的数字【1-100】:" input #判断输入的值与随机数的比较 if [ $numb -eq $input ] then echo "猜对了" break elif [ $numb -gt $input ] then echo "小了" else echo "大了" fi done
-
-
小结
- 掌握循环和判断的使用
知识点04:Linux案例:数据库备份
-
目标:实现数据库备份脚本的开发
-
路径
- step1:需求分析
- step2:环境准备
- step3:脚本开发
-
实施
-
需求分析
- 需求:每天00:00,自动将数据库中导出的SQL文件进行备份,并删除10天之前的备份文件
- 例如
- 数据库导出的SQL文件,每天单独放在一个目录中
-
环境测试
-
上传itcast_shop.sql到Linux上
cd /export/data rz
-
在MySQL中运行SQL文件
source /export/data/itcast_shop.sql;
-
-
创建数据库备份目录
mkdir /export/data/mysqlback/20210419
-
导出itcast_shop数据库的备份
mysqldump -uroot -p123456 --host=node1 itcast_shop > /export/data/mysqlback/20210419/itcast.sql
-
打包压缩备份文件
tar -zcf /export/data/mysqlback/itcast_20210419.tar.gz
-
脚本开发
#!/bin/bash #step1:先备份MySQL中的数据 #定义常用的变量 yesterday=`date -d '-1 day' +%Y%m%d` backdir=/export/data/mysqlback #先构建昨天备份的目录 if [ -d $backdir/$yesterday ] then rm -rf $backdir/$yesterday mkdir -p $backdir/$yesterday else mkdir -p $backdir/$yesterday fi #备份 read -p "请输入用户名:" username read -p "请输入密 码:" password read -p "请输入数据库:" dbname mysqldump -u$username -p$password --host=node1 $dbname > $backdir/$yesterday/$dbname.sql #构建压缩 tar -zcf $backdir/${dbname}_${yesterday}.tar.gz $backdir/$yesterday #删除备份目录 rm -rf $backdir/$yesterday #step2:删除10天之前的备份 #获取删除的日期 rmdate=`date -d '-10 day' +%Y%m%d` filename=`ls ${backdir} | grep ${rmdate}` #判断这个filename是否为空 if [ -n "${filename}" ] && [ -f $backdir/${filename} ] then echo "要删除的日期是:${rmdate}" echo "要删除的文件是:${filename}" rm -rf $backdir/${filename} else echo "要删除的日期是:${rmdate}" echo "要删除的文件不存在" fi
-
-
小结
- 掌握Shell中判断及命令的封装使用
知识点05:定时任务:Linux Crontab
-
目标:掌握Linux中Crontab的功能与使用
- 什么是Crontab?
- 如何使用Crontab?
-
路径
- step1:Crontab的功能与应用场景
- step2:Crontab的语法
- step3:Crontab的测试
-
实施
-
Crontab的功能与应用场景
- 功能:根据设定的时间规则,定时的调度执行Linux命令
- 应用:用于实现Linux脚本的自动化运行
-
Crontab的语法
-
命令
crontab [l|e|r]
-
l:列举所有定时任务
-
e:编辑定时任务
-
r:删除所有定时任务
-
格式
* * * * * Linux command | | | | | 分钟 小时 日期 月份 星期几 你要执行的命令 0 ~ 59 00 ~ 23 1 - 31 1 ~ 12 0 ~ 7
-
-
Crontab的测试
-
每天01:15执行这个脚本
15 01 * * * bash xxx.sh
-
每分钟执行一次数据的追加
*/1 * * * * date >>/export/data/cron.txt
-
每个月的1号的12:00执行命令
00 12 1 * * /usr/bin/ls /
-
一般命令建议给绝对路径,通过whereis可以查找某个命令的具体位置
[root@node1 shell]# whereis ls ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
-
每周三00:00执行命令
00 00 * * 3 /usr/bin/ls /
-
特殊的符号
-
*/1 :每一分钟
-
1,2,3 :不连续的时间点
00 1,2,3 * * * 代表1点,2点和3点
-
1-3:连续的时间点
*/1 1-3 * * * 1点到3点之间每分钟执行一次
-
-
-
-
小结
-
什么是Crontab?
- 定时调度:根据配置时间规则,定时的去执行Linux的命令
-
如何使用Crontab?
分钟 小时 几号 月份 周几 命令
-
知识点06:虚拟机克隆及网络配置
-
目标:实现虚拟机的克隆及三台机器网卡的配置
- 为什么要克隆虚拟机?
- 如何克隆虚拟机?
- 克隆后如何修改三台机器的网络?
-
路径
- step1:分布式集群构建需求
- step2:虚拟机的克隆
- step3:网络配置修改
-
实施
-
分布式集群构建需求
- 分布式本质:利用多台机器的资源一起处理来提高性能和解决问题
- 大数据学习:分布式存储和分布式计算
- 分布式的构建必须基于集群:多台机器
- 需求:需要多台Linux机器
-
虚拟机的克隆
-
基于原有的一台,克隆2台
-
step1:先将机器关机,找到克隆选项
-
step2:克隆第二台机器:node2
-
-
-
step3:克隆第三台:node3
- 参考step2
-
网络配置修改
-
由于node2与node3是克隆node1得到的,所以网卡的物理地址和IP地址都与node1是一致的
-
step1:更改node2与node3的网卡的Mac地址
-
-
step2:启动三台机器,修改第二台和第三台机器的IP
-
修改第二台
vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
-
重启网络服务
systemctl restart network.service
-
修改第三台
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network.service
-
step3:修改第二台和第三台的机器名称
-
第二台
hostnamectl set-hostname node2
- 断开重连
-
第三台
hostnamectl set-hostname node2
- 断开重连
-
-
小结
- 参考克隆过程,一步步实现即可
知识点07:集群环境配置:基本网络配置
-
目标:实现集群基础网络配置
-
路径
- step1:IP、主机名及映射
- step2:防火墙及selinux
-
实施
-
IP、主机名及映射
-
三台机器IP
192.168.88.130 192.168.88.131 192.168.88.132
-
三台机器主机名
node1 node2 node3
-
配置Linux本地映射:三台机器都要配置
vim /etc/hosts
192.168.88.130 node1 192.168.88.131 node2 192.168.88.132 node3
-
配置Windows映射
-
修改文件:C:\Windows\System32\drivers\etc\hosts
-
添加内容
192.168.88.130 node1 192.168.88.131 node2 192.168.88.132 node3
-
-
-
防火墙及selinux
-
关闭三台机器的防火墙并禁止开机自启
systemctl stop firewalld systemctl disable firewalld
- 前面已配置过不用再次配置
-
关闭三台机器的selinux
vim /etc/selinux/config
#修改第6行 SELINUX=disabled
-
-
-
小结
- 按照配置实现即可
知识点08:集群环境配置:免秘钥登陆
-
目标:实现集群免秘钥登陆配置
- 什么是免秘钥登陆?
- 如何实现免秘钥登陆?
-
路径
- step1:免秘钥登陆功能及基本原理
- step2:免秘钥登陆实现
-
实施
-
免秘钥登陆功能及基本原理
-
需求:分布式过程中,经常需要通过一台机器来管理所有机器
-
要想管理别的机器,必须要登陆到对应的机器上,再进行命令的操作管理
-
例如:当前在node1这台机器上,想通过node1登陆到node3上
ssh username@node3
- 只要运行,就会让用户输入node3上root用户的密码,才允许登陆node3
-
-
问题:工作中所有程序要自动化的运行,程序中会实现机器之间彼此自动登陆,怎么解决?
-
解决:登陆的时候不需要手动的输入密码
- 通过SSH的免秘钥协议就可以实现第一次输入密码,以后不需要了
- 假设:A和B,A想免秘钥登陆B或者B想免秘钥登录A,怎么办?
- step1:让A和B都各自生成一对公私钥
- A:公钥A,私钥A
- B:公钥B,私钥B
- step2:将A的公钥发送给B
- B会让A输入B的用户的密码,如果密码正确,保留A的公钥
- 反映了A是知道B的密码的,下一次登陆,A可以不要密码
- 问题:B如何知道这次的请求是A呢?
- A下一次登陆,发送请求給B,B用A的公钥加密一串内容,返回给A
- 如果A能用自己私钥解密内容,并且返回给B
- B确认内容一致,就确定了A的身份,允许免秘钥登陆
- B会让A输入B的用户的密码,如果密码正确,保留A的公钥
- step1:让A和B都各自生成一对公私钥
-
-
免秘钥登陆实现
-
step1:三台都要生成自己当前用户的一对公私钥
ssh-keygen -t rsa
-
-
- step2:将自己的公钥发送给三台机器
```
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
```
-
小结
- 什么是免秘钥登陆?
- 登陆时候不需要给定密码
- 如何实现免秘钥登陆?
- step1:先生成公私钥
- step2:将自己的公钥发送给谁,就能免秘钥登陆谁
- 什么是免秘钥登陆?
知识点09:集群环境配置:时钟同步
-
目标:实现集群时钟同步及软件安装
- 什么是时钟同步?
- 如何实现时钟同步?
-
路径
- step1:时钟同步需求及方案
- step2:时钟同步实现
-
实施
-
时钟同步需求及方案
- 需求:所有机器是一个集群,用于共同工作解决同一个问题,必须保证所有机器的时间是同步的,不能有毫秒以上的误差
- 三台机器:A,B,C
- 解决
- 时钟服务器:专门用于提供时钟校准的,只要请求同步即可
- 代表了标准的时区时间
- 方案一:B和C都和A同步,不需要联网,时间与实际的时间不准
- 方案二:A、B、C都跟时钟服务器同步,时间一致都是精准的时间,三台都要联网
- 方案三:A跟时钟服务器,B和C跟A进行同步,一台机器联网,其他所有机器与这台机器同步
- 大数据集群中选用方案三
- 时钟服务器:专门用于提供时钟校准的,只要请求同步即可
- 怎么同步?
- ntp时钟同步服务
- 需求:所有机器是一个集群,用于共同工作解决同一个问题,必须保证所有机器的时间是同步的,不能有毫秒以上的误差
-
时钟同步实现
-
step1:安装ntp服务
-
三台机器都要执行
yum -y install ntp
-
-
-
-
step2:配置本地时钟同步
- 三台机器都要执行
vim /etc/sysconfig/ntpd
#添加以下内容:
SYNC_HWCLOCK=yes
-
step3:第一台机器与外网同步
-
修改配置文件
vim /etc/ntp.conf #删除或者注释所有restrict以及server开头的行 #添加以下内容: #允许哪个网段的机器跟我进行同步 restrict 192.168.88.0 mask 255.255.255.0 nomodify notrap #aliyun的时钟服务器有问题,就使用第二个 server ntp4.aliyun.com server 202.112.10.36 server 127.127.1.0 # localclock fudge 127.127.1.0 stratum 10
-
systemctl start ntpd.service
systemctl enable ntpd.service
- 检查同步状态
ntpq -p:列举当前所有可用的同步服务器
ntpstat:查看当前的同步状态
-
step4:配置另外两台机器
-
修改配置文件
vim /etc/ntp.conf #删除所有restrict以及server开头的行 #添加以下内容:与第一台机器同步 server 192.168.88.130
-
启动两台机器的ntp服务
systemctl start ntpd.service systemctl enable ntpd.service
-
手动同步
ntpdate -u 192.168.88.130
-
配置定时任务
crontab -e */5 * * * * /usr/sbin/ntpdate -u 192.168.88.130 > /dev/null 2>&1
-
-
小结
- 按照步骤实现即可
知识点10:集群环境配置:MySQL及JDK安装
-
目标:实现集群中MySQL及JDK的安装
-
路径
- step1:MySQL的安装
- step2:JDK的安装
-
实施
-
MySQL的安装
-
只需要一台即可:保留第三台
-
关闭第一台和第二台,设置开机禁止启动
systemctl stop mysqld systemctl disable mysqld
-
-
JDK的安装
- 三台都已安装,不需要做任何更改
-
-
小结
- 按照步骤实现即可
知识点11:分布式基础:功能与应用场景
-
目标:掌握分布式的概念及功能和应用场景
- 什么是分布式?
- 分布式能解决什么问题?
-
路径
- step1:分布式的概念
- step2:分布式的功能
- step3:分布式的设计思想
-
实施
-
分布式的概念
- 分布式:基于多台机器的资源,从逻辑上合并为一个整体,对外提供一个统一的服务
- 分布式存储:磁盘 + 内存
- 分布式计算:CPU + 内存
- 集群:指的是构建多台机器,指代的是硬件的机器
- 分布式:基于多台机器的资源,从逻辑上合并为一个整体,对外提供一个统一的服务
-
分布式的功能
- 场景
-
- 问题
- 如果1s有100万个请求,假设服务器能支撑,但是每s只能处理5万,性能非常差,怎么解决?
- 如果1s有100万个请求,假设服务器不能支撑,直接挂掉,导致整体服务故障,怎么解决?
- 解决:构建分布式服务,通过多台机器的资源来实现整体对外提供网站的服务
-
分布式功能
-
单机资源不足以满足需求:避免应用故障
-
单机资源满足需求性能较差:实现高并发,提高性能
-
-
分布式的设计思想
- 分而治之:
- 分:将一个大的任务拆分成多个小的任务,由分布式集群中的每个节点来完成每个小的任务,每个小任务结束以后得到一个结果
- 合:将所有小任务的结果合并为最终的大的结果
- 分而治之:
-
小结
- 什么是分布式?
- 将多台机器的资源从逻辑上进行合并,作为一个整体,对外提供统一的服务
- 分布式能解决什么问题?
- 单机资源不足
- 单机性能较差
- 什么是分布式?
知识点12:分布式基础:架构设计
-
目标:掌握分布式的基本架构设计
- 分布式如何能实现分而治之?
-
路径
- 分布式主从架构
-
实施
-
分布式主从架构
- 几乎所有分布式都是分布式主从架构
- 角色
- 主节点:Master:管理节点
- 管理所有从节点:死活
- 管理所有任务的分配
- 管理元数据
- 一般情况下负责接客:接受客户端的请求
- 从节点:Worker:工作节点
- 负责利用自己所在机器的资源实现主节点分配的小任务
- 主节点:Master:管理节点
-
-
小结
- 分布式如何能实现分而治之?
- 架构:分布式主从架构
- 主:管理节点
- 管理从节点
- 管理任务分配
- 管理元数据
- 接客
- 从:工作节点
- 负责利用自己机器的资源执行任务
- 主:管理节点
知识点13:分布式基础:架构中的问题及解决
-
目标:掌握分布式架构中的问题及解决方案
- 分布式架构中存在哪些问题以及怎么解决?
-
路径
- step1:分布式主从架构中的问题
- step2:解决方案
-
实施
- 分布式主从架构中的问题
- 整个分布式集群由多台机器构成:如何解决机器故障的问题?
- 主节点
- 如果主节点故障是否影响集群的业务实现?
- 会影响
- 从节点
- 如果从节点故障是否影响集群的业务实现?
- 不影响对外提供的分布式业务
- 问题:主节点单点故障问题
- 由于主节点只有一个,一旦主节点故障,整个分布式集群将不可用
- 解决方案
- 构建多个主节点,如果一个主节点故障,还有其他的主节点
- 问题:两个主节点能不能一起工作?
- 不能一起工作
- 解决:一个工作,一个不工作
- HA架构:高可用架构
- 多个主节点
- 只有一个主节点是Active状态:处理所有的工作
- 其他的主节点都是Standby状态:如果Active故障,由Standby转换为Active状态
- 分布式主从架构中的问题
-
小结
- 分布式架构中存在哪些问题以及怎么解决?
- 问题1:主节点存在单点故障问题
- 解决:构建多个主节点
- 问题2:多个主节点能不能一起工作?
- 不能
- 解决
- Active:工作状态的
- Standby:备份状态的,如果Active故障,Standby切换为Active
- 问题1:主节点存在单点故障问题
- 分布式架构中存在哪些问题以及怎么解决?
知识点14:Zookeeper的介绍
-
目标:掌握Zookeeper的功能及应用场景
- 什么是Zookeeper?
- 大数据中什么场景中需要用到Zookeeper?
-
路径
- step1:Zookeeper的本质及功能
- step2:Zookeeper的应用场景
-
实施
-
Zookeeper的本质及功能
- 场景1:在分布式架构中,每台机器都有一个JDBC的地址,都是一样的,现在要更换,100台机器,怎么办?
-
解决:实现共享存储:将JDBC这种变化的信息,都存储在一个公共的地方
-
场景2:多个Master时候,如何决定谁是Active?
-
-
解决:需要一个共享的外部存储来解决选举的问题
-
ZK的本质:是一种特殊的外部存储系统,提供数据的读写
-
功能
- 用于存储共享数据:元数据
- 辅助选举
- 分布式锁
- 命名空间
-
Zookeeper的应用场景
- 应用:ZK不是用于解决大数据存储或者大数据计算的问题,ZK用于解决所有分布式本身所存在的问题的
- Zookeeper的定义:分布式协调服务
- 场景1:用于存储核心元数据
- 场景2:用于辅助选举Master
-
Zookeeper官网:zookeeper.apache.org
-
小结
-
什么是Zookeeper?
- 本质:一种特殊的外部存储系统
- 定义:分布式协调服务工具
- 功能:专门用于解决分布式工具存在的问题
-
大数据中什么场景中需要用到Zookeeper?
-
场景一:存储共享核心元数据
-
场景二:辅助选举Active的Master
-
-
知识点15:Zookeeper架构设计
-
目标:掌握Zookeeper的架构及其设计思想
- Zookeeper自己本身的架构是什么样的?
- Zookeeper怎么保证自己不出问题?
-
路径
- step1:ZK的架构
- step2:ZK的设计
-
实施
-
ZK的架构
- 为了保证ZK自己不会出现单台机器故障的问题
- 架构:分布式主从架构
- 主节点:Leader
- 对外提供数据的读写
- 从节点:Follower
- 对外提供读,写的请求必须转发给Leader实现
-
-
ZK的设计
- ZK如何保证自己不出问题?
- 特点:公平节点架构
- 问题1:如果Follower故障,是否有影响?
- 不影响,还有别的Follower
- 问题2:如果Leader故障,是否有影响?
- 不影响,ZK中允许从节点成为主节点,如果leader故障,剩余的Follower会选举一个新的Leader
- 问题3:如果leader故障,leader中的数据丢失,怎么能帮别人解决问题呢?
- ZK中每台节点的存储内容是一致的
- 问题4:怎么保证写入的数据在每个ZK节点中都有?
- 写入数据只能写入Leader节点,Leader会同步给所有Follower节点
- 同步超过半数,才代表写入成功
-
小结
- Zookeeper自己本身的架构是什么样的?
- 分布式主从架构
- 主:Leader:接受读写请求
- 从:Follower
- 接受读请求,转发写的请求给Leader
- 如果Leader故障,重新选举成为新的Leader
- Zookeeper怎么保证自己不出问题?
- 特点:公平节点架构
- 所有节点都能接受客户端的读写请求
- 所有节点存储的数据都是一致的
- 允许Follower成为Leader
- 特点:公平节点架构
- Zookeeper自己本身的架构是什么样的?
知识点16:Zookeeper的分布式集群部署
-
目标:实现Zookeeper分布式集群的部署
-
路径
- step1:下载解压
- step2:修改配置
- step3:启动测试
-
实施
-
下载地址:http://archive.apache.org/dist/
-
下载解压
#第一台机器 cd /export/software/ rz tar -zxvf zookeeper-3.4.6.tar.gz -C /export/server/
-
修改配置
-
修改第一台
- 切换进入ZK的HOME目录
-
-
cd /export/server/zookeeper-3.4.6/
- 生成配置文件
cp conf/zoo_sample.cfg conf/zoo.cfg
- 创建存储目录
mkdir /export/server/zookeeper-3.4.6/zkData
- 修改配置:zoo.cfg
vim conf/zoo.cfg
#修改第12行
dataDir=/export/server/zookeeper-3.4.6/zkData
#文件末尾添加集群配置
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
- 生成第一台的myid
echo "1" >/export/server/zookeeper-3.4.6/zkData/myid
- 分发
cd /export/server/
scp -r zookeeper-3.4.6 node2:$PWD
scp -r zookeeper-3.4.6 node3:$PWD
- 修改第二台的myid
echo "2" >/export/server/zookeeper-3.4.6/zkData/myid
- 修改第三台的myid
echo "3" >/export/server/zookeeper-3.4.6/zkData/myid
- 启动测试
#三台机器都执行
cd /export/server/zookeeper-3.4.6/
#启动
bin/zkServer.sh start
#状态
bin/zkServer.sh status
#关闭
bin/zkServer.sh stop
-
小结
- 按照部署配置即可