成都网站建设设计

将想法与焦点和您一起共享

zookeeper和kafka的安装使用-创新互联

前提都安装JDK 6版本以上

我们提供的服务有:成都网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、永泰ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的永泰网站制作公司

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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:zookeeper和kafka的安装使用-创新互联
分享URL:http://chengdu.cdxwcx.cn/article/dicjoi.html