一、zookeeper
1. 下载
2. 安装
(1)简单单机安装脚本
拿着压缩包一次安装成功,没什么意外,贴上安装指令。
#!/bin/bash
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
mv apache-zookeeper-3.7.0-bin /usr/local/zookeeper
rm -rf apache-zookeeper-3.7.0-bin.tar.gz
mkdir -p /var/lib/zoopkeeper
cat > /usr/local/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
EOF
启动:/usr/local/zookeeper/bin/zkServer.sh start
状态:/usr/local/zookeeper/bin/zkServer.sh status
停止:/usr/local/zookeeper/bin/zkServer.sh stop
(2)集群配置
vim /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=20
syncLimit=5
server.1=0.0.0.0:2888:3888
server.2=192.168.10.152:2888:3888
server.3=192.168.10.153:2888:3888
参数解释:
- tickTime:CS通信心跳时间。
- initLimit:集群中的follower服务器(F)与leader服务器(L)之间初连接时能容忍的最多心跳数(tickTime的数量)。
- syncLimit:集群中flower服务器(F)跟leader(L)服务器之间的请求和答应最多能容忍的心跳数。
- dataDir:该属性对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息等。
- clientPort:客户端连接的接口,客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接收客户端的请求访问!这个端口默认是2181。
- service.N:service.N =A:B:C。
- N:服务器编号,即后面会配置的一个myid文件内的值。
- A:集群内其他机器可ping通的一个本机地址。
- B:Flower 跟 Leader的通信端口,简称服务端内部通信的端口(默认2888)。
- C:选举端口(默认是3888)。
单机改为集群有两个注意点,
- zoo.cfg中本机的地址(A部分)更改为0.0.0.0。
- 在dataDir目录下创建myid的文件,里面填入本机地址对应的服务器编号(N部分)。
所有集群机器配置修改完毕后,正常启动即可。
所有机器启动zookeeper完毕后,使用查看状态命令:
Leader状态
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
follower状态
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
二、kafka
1. 下载
2. 安装
为了在server.properties
中的listeners
项与zookeeper.connect
项填入主机名能找到对应的机器。在所有集群机器增加hosts表。以下使用我集群主机名来进行配置示例。
以你的主机名和ip地址来替换,追加到hosts下。vim /etc/hosts
,追加
192.168.10.151 centos7-1
192.168.10.152 centos7-2
192.168.10.153 centos7-3
快速安装
tar -zxvf kafka_2.13-3.0.0.tgz
mv kafka_2.13-3.0.0 /usr/local/kafka
mkdir /tmp/kafka-logs
rm -rf kafka_2.13-3.0.0.tgz
vim /usr/local/kafka/config/server.properties
需要修改的参数解释:
- broker.id:每个broker的唯一标识符,不可重复,默认为0。
- listeners:套接字服务器侦听的地址,修改为PLAINTEXT://centos7-1:9092。
- zookeeper.connect:zookeeper地址,使用主机名:端口配置,集群用逗号分隔。
所以在centos7-N
机器中,可以应用以下配置(N为数字,自增变化)
broker.id=1
listeners=PLAINTEXT://centos7-N:9092
zookeeper.connect=centos7-1:2181,centos7-2:2181,centos7-3:2181
启动/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.propertie
创建topic测试/usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server centos7-1:9092 --replication-factor 1 --partitions 1 --topic test
查看所有topic/usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server centos7-1:9092