zookeeper 和 kafka 的安装使用
admin
2023-03-24 20:41:28
0

前提都安装JDK 6版本以上

java -version

java version "1.7.0_79"



测试环境集群结构(三台集群的hosts一定要互相解析 不然会很坑)


server1: 192.168.100.10

server1: 192.168.100.13

server1: 192.168.100.20


安装包:

zookeeper-3.4.9.tar.gz 

kafka_2.11-0.10.1.0.tgz 


背景:

为了获得可靠的 ZooKeeper 服务,用户应该在一个集群上部署 ZooKeeper 。只要集群上大多数的 ZooKeeper 服务启动了,那么总的 ZooKeeper 服务将是可用的。另外,最好使用奇数台机器。 如果 zookeeper 拥有 5 台机器,那么它就能处理 2 台机器的故障了。




### zookeeper的集群安装##################


1、安装包下载到/usr/local/src

2、解压至安装路径/usr/localcd 

cd /usr/local/src/

tar -xvf zookeeper-3.4.9.tar.gz   -C /usr/local/

cd /usr/local

ln -s zookeeper-3.4.9/ zookeeper



3、修改配置文件

cd  cd /usr/local/zookeeper/conf/

cp zoo_sample.cfg zoo.cfg


配置文件(每台zookeeper的配置文件都一样)

[root@master conf]# cat zoo.cfg 

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just 

# example sakes.

dataDir=/usr/local/zookeeper/data

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the 

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1


#第一个端口( port )是从( follower )机器连接到主( leader )机器的端口

#第二个端口是用来进行 leader 选举的端口

server.1=192.168.100.10:2888:3888

server.2=192.168.100.13:2888:3888

server.3=192.168.100.20:2888:3888





### 注释:

在这个文件中,我们需要指定 dataDir 的值,它指向了一个目录,这个目录在开始的时候需要为空。下面是每个参数的含义:

tickTime :基本事件单元,以毫秒为单位。它用来指示心跳,最小的 session 过期时间为两倍的 tickTime. 。

dataDir :存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。

clientPort :监听客户端连接的端口

#server.A=B:C:D  其中A是一个数字,代表这是第几号服务器;B是服务器的IP地址;C表示服务器与群集中的“领导者”交换信息的端口;当领导者失效后,D表示用来执行选举时服务器相互通信的端口。





4、创建数据目录和创建myid文件

mkdir /usr/local/zookeeper/data

echo "1" > /usr/local/zookeeper/data/myid






### 配置其他节点

myid要不一样



5、启动集群

按照上述进行配置即可。

第五步:启动ZooKeeper集群

在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:

cd /usr/local/zookeeper/

bin/zkServer.sh start  

bin/zkServer.sh start  

bin/zkServer.sh start  



查看日志:(日志生成在执行启动的目录下)

tail -f zookeeper.out



查看监听的端口:(Leader端 才监听2888 端口,follower是不监听的,只监听3888端口)

[root@agent zookeeper]# netstat -tulnp |grep 88

tcp        0      0 ::ffff:192.168.100.13:3888  :::*                        LISTEN      18526/java          

tcp        0      0 ::ffff:192.168.100.13:2888  :::*                        LISTEN      18526/java          

[root@agent zookeeper]# netstat -tulnp |grep 2181

tcp        0      0 :::2181                     :::*                        LISTEN      18526/java          

[root@agent zookeeper]# 




6 验证


./bin/zkServer.sh  status



注释: 因为启动顺序是从第一台开始的 所以看日志第一台会有日志因为第二台第三台还未启动,一会就正常了忽略



看到各个角色(leader选举出来表示集群正常) 通过上面状态查询结果可见,第二台是集群的Leader,其余的两个结点是Follower。

[root@agent zookeeper]# ./bin/zkServer.sh  status

ZooKeeper JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Mode: leader



7、测试客户端命令连接

./bin/zkCli.sh -server 192.168.100.10:2181


连接上去之后:

执行命令

[zk: 192.168.100.10:2181(CONNECTED) 4] ls /

[zookeeper]




注: 当前根路径为/zookeeper。








################# 安装kafka

下载包

[root@master src]# ll kafka_2.11-0.10.1.0.tgz 

-rw-r--r-- 1 root root 34373824 Oct 20  2016 kafka_2.11-0.10.1.0.tgz


1、解压至安装目录

tar -xvf kafka_2.11-0.10.1.0.tgz -C /usr/local/

cd /usr/local/

ln -s kafka_2.11-0.10.1.0/ kafka





2、修改配置文件

cd /usr/local/kafka/config

vim server.properties 


需要修改的项目:

# The id of the broker. This must be set to a unique integer for each broker

broker.id=1





# A comma seperated list of directories under which to store log files

log.dirs=/usr/local/kafka/logs


# Zookeeper connection string (see zookeeper docs for details).

# This is a comma separated host:port pairs, each corresponding to a zk

zookeeper.connect=192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181



注意:每台kafka的broer.id 是不一样的

3、创建日志目录

mkdir /usr/local/kafka/logs





4、### 配置其他节点



5、启动

从后台启动Kafka集群(3台都需要启动)

cd /usr/local/kafka/bin/
./kafka-server-start.sh -daemon  ../config/server.properties


[root@master bin]# jps

7449 Jps

7427 Kafka             #kafka进程

31341 QuorumPeerMain   #zk进程



如果(3个kafka进程都在表示正常,配置文件错误是服务起不了)


查看启动日志:

tail -f  /usr/local/kafka/logs/server.log 



6、测试kafka集群


1-进入kafka根目录,创建topic   test

./bin/kafka-topics.sh --create --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --replication-factor 1 --partitions 1 --topic test

结果:

Created topic "test".



2-列出已创建的topic列表

./bin/kafka-topics.sh --list --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181

结果:

test


或者使用zookeeper命令去查看

./bin/zkCli.sh -server 192.168.100.10:2181

[zk: 192.168.100.10:2181(CONNECTED) 3] ls /brokers/topics

[test]




3-模拟客户端去发送消息


./bin/kafka-console-producer.sh --broker-list 192.168.100.10:9092,192.168.100.13:9092,192.168.100.20:9092 --topic test


4-模拟客户端去接受消息(虽然看到的是消费 但是因为消费么有删除每次 执行之前的模拟信息还会看到)

./bin/kafka-console-consumer.sh --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --from-beginning --topic test





5、停止 在启动(重启)


集群依次kafka都需要停止

./bin/kafka-server-stop.sh


集群依次kafka都需要启动

cd /usr/local/kafka/bin/
./kafka-server-start.sh -daemon  ../config/server.properties




6、 删除测试的test 的那个topic

./bin/kafka-topics.sh --delete --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --topic test


结果                             

Topic test is marked for deletion.

Note: This will have no impact if delete.topic.enable is not set to true.


因为:

如果kafaka启动时加载的配置文件中server.properties没有配置(默认没有配置 默认值为false)delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion



彻底删除进入zk

./bin/zkCli.sh -server 192.168.100.10:2181

rmr /brokers/topics/test


相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...