linux-zookeeper-kafka入门
如果是配置集群,还需要在前面配置过的dataDir路径下新增myid文件,在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。
cd /tmp/zookeeper/data
touch myid
vim myid
(4.)设置环境变量
vi /etc/profiel
ZOOKEEPER_HOME=/usr/local/zookeeper/
PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
(5.)zookeeper启动
zkServer.sh start //单机模式
zkServer.sh start zoo1.cfg //伪集群分布式模式
zkServer.sh status //查看状态
【问题记录】:
集群场景下,有一个节点启动正常,但是查询状态有问题:
./zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
【解决办法】:
(a.)关闭防火墙,centos7:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
(b.)查看zoo.cfg中这两个文件夹是否已经创建,目录是否正确
dataDir=/opt/zookeeper/zkdata
dataLogDir=/opt/zookeeper/zkdatalog
(c.)myid文件是否存在,是否在dataDir目录下,是否编号为1,2,3...内容是否有空格回车符,认真检查!!!
(d.) 用以下命令启动,查看启动日志:
zkServer.sh start-foreground //linux
./zkServer.sh print-cmd //windows
(6.)进程查看
jps
(7.)客户端的启动
zkcli.sh //启动客户端
ls /path //查看当前节点中所包含的内容
ls2 / //查看详情
create /path "xxx" //创建普通节点
create -e /path1/path2/xxx "xxx" //创建临时节点
create -s /path1/path2 "xxx" //创建带序列号的节点,即自增节点
get /path //获取数据
set /path1/path2 "yyy" //修改数据
get /path1/path2 watch //节点值变化监听
ls /path1 watch //路径变化监听,注册时执行一次,即只执行一次
quit //退出
2. zookeeper的选举机制
(1.) 半数机制:半数以上工作正常,适合奇数安装。初始化时的选举,就采用该种方式。
(2.) 选举时先投自己,不能成为master后,再投给节点数比自己大的节点。
3.节点类型
(1.)持久型:client与server断开连接后,创建的节点不删除,序列号顺序编号,单调递增。
(2.)临时型:clent与Server断开连接后,创建的节点自己删除,节点顺序编号。
4.内容同步到其他节点
xsync zookeeper/xxx //同步后,其他节点也有该文件夹
5.zookeeper应用场景
(1.)统一配置管理:
分布式环境下,配置文件同步:
a. 集群中所有节点的配置信息一致,如kafka集群
b. 对配置文件修改后,可以快速的同步到其他各个节点上。
配置管理可交给zookeeper实现:
c. 可将配置信息写入zookeeper的一个节点上。
d. 各个客户端监听这个节点,一旦节点中的数据被修改,zookeeper将通知各个客户端,同步数据
(2.) 统一命名服务:
域名 --> 多个IP
(3.)统一集群管理
a.分布式环境中,实现掌握各个节点的状态,可根据节点的实施状态,做出一些调整
b.zookeeper 可以实现实时监控节点状态变化,可将节点信息写入zookeeper的一个节点,监听这个节点可获取它的实时状态变化。
(4.)服务器动态上下线
客户端实时洞察服务器上下线变化,如果该节点挂掉则访问其他节点
(5.)软负载均衡
在zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。
6.zookeeper数据结构
(1.)树状存储
(2.)默认每个节点只能存储1M数据
(3.)按路径访问
7.zookeeper特性
(1.)zookeeper = 文件系统 + 通知机制
(2.)zookeeper 一个leader,N个follower
(3.)集群中只要有半数 以上节点存活,则zookeeper集群可以正常服务
(4.)全局数据一致:每个server保存一份相同的数据的副本,客户端无论连到哪个服务端,数据都是一致的。
(5.)数据更新的原子性,一次数据更新要么成功,要么失败
(6.)实时性,在一定时间内可以获取最新的数据
(7.)zookeeper监听服务端下线原理:
服务端启动时,去注册信息到zookeeper,客户端获取在线服务列表,并注册监听。当服务器节点下线时,zookeeper推送服务端下线的事件给客户端,客户端接收到通知后,重新获取服务器列表,并注册监听。
———————————————————————————————————————————————————————————
———————————————————————————————————————————————————————————
kafka入门
1.下载安装包
http://kafka.apache.org/downloads.html
2.解压文件
tar -zxvf kafka_2.11-2.0.0.tgz -C /usr/local/
3.进入bin目录启动
./kafka-server-start.sh …/config/server.properties //启动Kafka,需指定配置文件
----------------------------------【喜欢打赏】-------------------------------------------
小主,辛苦啦!文章棒棒哒,赏杯咖啡吧...