【kafka】kafka集群搭建

1. 服务器基本信息

ip地址安装服务
10.0.0.52zookeeper-3.4.10、kafka2.10、kafka-manager
10.0.0.53zookeeper-3.4.10、kafka2.10
10.0.0.54zookeeper-3.4.10、kafka2.10

2. 环境信息

  • JDK

jdk版本:jdk1.8.0_11

http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz
  • zookeeper

zookeeper版本:zookeeper-3.4.10

http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

3. 安装jdk(三台主机上执行)

cd /usr/loca/src/
tar -C /usr/local/ -xzf /usr/local/src/jdk-8u111-linux-x64.tar.gz

配置java环境变量

vim /etc/profile

添加如下信息

export JAVA_HOME=/usr/local/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新配置文件:

source /etc/profile

4. 安装zookeeper(三台主机上执行)

4.1 安装zookeeper

cd /usr/local/src/
tar -C /usr/local/ -xzf zookeeper-3.4.10.tar.gz
cd /usr/local/zookeeper-3.4.10
ln -s zookeeper-3.4.10 zookeeper

4.2 生成配置文件

cd /usr/local/zookeeper
cp conf/zoo_sample.cfg conf/zoo.cfg

4.3 修改zookeeper配置文件

vim /usr/local/zookeeper/conf/zoo.cfg

修改以下内容

maxClientCnxns=60
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/logs/zookeeper
clientPort=2181
server.1=10.0.0.52:2888:3888
server.2=10.0.0.53:2888:3888
server.3=10.0.0.54:2888:3888

2888表示zookeeper程序监听端口,3888表示zookeeper选举通信端口。

4.4 创建所需文件夹

mkdir -p /data/zookeeper/data
mkdir -p /data/logs/zookeeper

4.5 生成myid

主机(10.0.0.52)

echo "1" >/data/zookeeper/data/myid  ##生成ID,这里需要注意, myid对应的zoo.cfg的server.ID,比如第二台zookeeper主机对应的myid应该是2

主机(10.0.0.53)

echo "2" >/data/zookeeper/data/myid

主机(10.0.0.54)

echo "3" >/data/zookeeper/data/myid

4.6 启动zookeeper

cd /usr/local/zookeeper/bin
./zkServer.sh start#

4.7 关闭zookeeper

cd /usr/local/zookeeper/bin
./zkServer.sh stot

4.8 查看zk状态

cd /usr/local/zookeeper/bin
./zkServer.sh status

4.9 查看相关信息

/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

5. 安装kafka(三台主机上执行)

5.1 安装kafka

cd /usr/local/src
tar zxvf kafka_2.10-0.10.2.1.tgz
mv kafka_2.10-0.10.2.1 /usr/local/kafka

5.2 修改配置文件

vim /usr/local/kafka/config/server.properties

具体参数如下:

# 每台服务器的broker.id都不能相同
broker.id=1 

# 端口
port=19092

# 主机名
host.name=10.0.0.52

# 是否可以删除topic
delete.topic.enable=true

# 具体一些参数
log.retention.hours=168 
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880

# 设置zookeeper集群地址与端口
zookeeper.connect=10.0.0.52:2181,10.0.0.53:2181,10.0.0.54:2181

5.3 启动kafka(三台)

cd /data/kafka/kafka_2.12-0.11.0.0/bin 
./kafka-server-start.sh -daemon ../config/server.properties &

5.4 创建topic

./kafka-topics.sh --create --zookeeper 10.0.0.52:2181,10.0.0.53:2181,10.0.0.54:2181 --replication-factor 2 --partitions 1 --topic tttt

参数解释

复制两份
--replication-factor 2
创建1个分区
--partitions 1
topic 名称
--topic tttt

5.5 查看已经存在的topic

./kafka-topics.sh --list --zookeeper 10.0.0.52:2181,10.0.0.53:2181,10.0.0.54:2181