- 1 下载kafka的安装包
使用下面的命令:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.0/kafka_2.11-2.3.0.tgz
- 2 解压Kafka并重命名
使用下面的命令:
tar -zxvf kafka_2.11-2.3.0.tgz
mv kafka_2.11-2.3.0 kafka
- 3 配置环境变量
在/etc/profile中设置环境变量,具体操作内容如下:
export KAFKA_HOME=/usr/local/share/kafka
保存并退出,然后使用source使配置的环境变量立即生效。
- 4 配置kafka系统配置文件 /config
vim server.properties
(1)加上启用删除topic功能的代码
delete.topic.enable=true
(2)把第二句设置服务器端口的代码的yourhostname改为dn1
g改完的代码如下:
listeners = PLAINTEXT://dn1:9092
(3)改变数据存储路径
log.dirs=/usr/local/share/kafka/data
(4)改变topic的分区数
原来是1,现在改为6
num.partitions=6
(5)改变zookeeper的客户端链接地址
代码如下:
zookeeper.connect=dn1:2181,dn2:2181,dn3:2181
(6)改变客户端超时时间
原来是6000,现在改为60000
zookeeper.connection.timeout.ms=60000
- 5 配置zookeeper/conf系统文件
在 /usr/local/share/zookeeper/conf/zoo.cfg
第一行代码,心跳间隔加了个0
tickTime=20000
- 6 同步信息
用scp命令将配置好的文件夹拷贝到dn2,dn3 节点上
使用下面的命令:
scp -r kafka root@dn2:/usr/local/share
scp -r kafka root@dn3:/usr/local/share
- 7 改broker的id
broker 的id 唯一,在/config目录下server.properties文件里,第一行代码
dn1
broker.id=1
dn2
broker.id=2
- 8 把 zookeep的2000变成20000都改掉
在 /usr/local/share/zookeeper/conf/zoo.cfg
第一行代码,心跳间隔加了个0
tickTime=20000
- 9 启动kafka
进入kafka的bin文件夹,执行下面的命令
./kafka-server-start.sh
在bin里执行
./kafka-topics.sh --list --zookeeper dn1:2181 dn2:2181 dn3:2181
- 10 写kafka启动脚本
在bin下新建kafka-daemons.sh
新加内容为:
#! /bin/bash
#配置所有的broker信息
hosts=(dn1 dn2 dn3)
for i in ${host[@]}
do
#启动Kafka集群
ssh hadoop@$i "source /etc/profile;kafka-server-start.sh\
$KAFKA_HOME/config/server.properties" &
done
执行之后显示 找不到该命令
经查询,发现权限不够,给其加权限
chmod +x kafka-daemons.sh
- 11 打开kafka集群出错 找不到Socket server failed to bind to dn1:9092
修改/usr/local/share/kafka/kafka/config文件
执行下面的命令:
vim server.properties
把监听的端口改完自身对应的那个
dn1 监听dn1
dn2 监听dn2
dn3 监听dn3
- 12 开启kafka集群
使用下面的命令
bin/kafka-server-start.sh config/server.properties
!!这个地方是可以启动成功的 但是不能自己正常退出 ,牵扯到进程保护出现下面的情况:
jps 之后kafka进程是有的
- 13 创建新的topic
使用下面的命令
bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic test --partitions 1 --replication-factor 1
Created topic "test".
- 14 查看现有kafka集群
./kafka-topics.sh --list --zookeeper dn1:2181 dn2:2181 dn3:2181
测试结果如下:
kafka集群检测成功,正常使用