打赏

linux-zookeeper-kafka入门

公告:版权所有,违者必究 ###1.zookeeper安装 **前提:**先安装jdk,zookeeper运行依赖于java环境。 (1.)下载安装包 ``` http://mirror.bit.edu.cn/apache/zookeeper https://zookeeper.aphache.org ``` (2.)解压文件 ``` tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/ mv /usr/local/zookeeper-3.4.13.tar.gz /usr/local/zookeeper //便于记忆,重命名 ``` (3.)编辑配置文件 ``` cd zookeeper-3.4.13/conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg dataDir=/tmp/zookeeper/data //修改为自己创建的目录,临时目录存放数据不安全 dataLogDir=/tmp/zookeeper/log ``` **集群场景配置** >如果想配置集群的话,请zoo.cfg文件的clientPort下面添加服务器的ip。如 server.1=192.168.180.132:2888:3888 //这里是1,2,3 就是myid的对应的服务器编号,前面的2888端口用于和leader交换数据的,用于同步副本通信的端口 server.2=192.168.180.133:2888:3888 // 后面这个3888端口用于选举的,在选主的时候用这个端口进行通信 server.3=192.168.180.134:2888:3888 如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。

如果是配置集群,还需要在前面配置过的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,需指定配置文件

----------------------------------【喜欢打赏】-------------------------------------------

小主,辛苦啦!文章棒棒哒,赏杯咖啡吧...
打赏

----------------------------------【喜欢打赏】-------------------------------------------

posted @ 2019-11-01 16:10  苍山落暮  阅读(288)  评论(0编辑  收藏  举报