kafka集群搭建

一、安装前的准备
1 ip分配
192.168.19.101 jdk zk kafka
192.168.19.102 jdk zk kafka
192.168.19.103 jdk zk kafka

2 修改hosts文件

# cat /etc/hosts |tail -3
192.168.19.101 server1
192.168.19.102 server2
192.168.19.103 server3

二、jdk安装
安装链接:https://blog.csdn.net/sun_xuegang/article/details/86539449

三、zk安装
1.软件下载 解压

# mkdir -p /data/utils; cd /data/utils
# wget https://apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
# tar zxvf zookeeper-3.4.14.tar.gz

2.配置文件(当前机器为192.168.19.101)

# cd /data/utils/zookeeper-3.4.14
# cp conf/zoo_sample.cfg conf/zoo.cfg
# cat conf/zoo.cfg |grep -v ^#
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/utils/zkdata				#数据目录
dataLogDir=/data/utils/zkdatalog		#日志目录
clientPort=2181
server.1=server1:2888:3888				#server. 后面那个数字要记住 并写在myid里面去
server.2=server2:2888:3888
server.3=server3:2888:3888

# 将上面的标识 写到myid里面去,myid目录为配置文件中的dataDir, 注意 !!!!
# echo 1 > /data/utils/zkdata/myid		

3 添加环境变量

# cat /etc/profile.d/zk.sh 
#!/bin/bash
ZK_HOME=/data/utils/zookeeper-3.4.14
PATH=$PATH:$ZK_HOME/bin
export ZK_HOME PATH

# . /etc/profile.d/zk.sh  #使配置文件生效

4 启动

# ./bin/zkServer.sh start				# start
# ./bin/zkServer.sh status				#status
# ./bin/zkServer.sh start-foreground	#log

# ./bin/zkCli.sh -server 127.0.0.1:2181		#本机连接

5 官方文档:http://zookeeper.apache.org/doc/r3.4.14/zookeeperStarted.html

四、kafka安装
1 下载文件解压

# mkdir -p /data/utils; cd /data/utils
# wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.2.0/kafka_2.12-2.2.0.tgz
# tar zxvf kafka_2.12-2.2.0.tgz
# cd kafka_2.12-2.2.0

2 配置文件

# cat config/server.properties |grep -v ^#
broker.id=1
delete.topic.enable=true						#topic是否可以删除  默认为false
listeners=PLAINTEXT://192.168.19.101:9092		#对应各主机ip
num.network.threads=3							#broker 处理消息的最大线程数,一般情况下不需要去修改
num.io.threads=8								#broker处理磁盘IO 的线程数 ,数值应该大于你的硬盘数
socket.send.buffer.bytes=102400					#发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.receive.buffer.bytes=102400				#kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.request.max.bytes=104857600				#这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
log.dirs=/cust/kafka-logs						#消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个
num.partitions=2								#默认的分区数,一个topic默认1个分区数,生产环境数字大些,小于集群机器数
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168							#默认消息的最大持久化时间,168小时,7天
message.max.byte=5242880
replica.fetch.max.bytes=5242880
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
default.replication.factor=2

3 添加环境变量

# cat /etc/profile.d/kafka.sh
#!/bin/bash
KAFKA_HOME=/data/utils/kafka_2.12-2.2.0
PATH=$PATH:$KAFKA_HOME/bin
export KAFKA_HOME PATH

# . /etc/profile.d/kafka.sh		# 使环境变量生效

4 启动 以及相关命令

## 启动kafka
# ./bin/kafka-server-start.sh -daemon ./config/server.properties

## 创建topic
# ./bin/kafka-topics.sh --create --zookeeper 192.168.19.51:2181 --replication-factor 2 --partitions 1 --topic mytest
## 查看topic  在任意一台机器执行 均可以
# ./bin/kafka-topics.sh --list --zookeeper localhost:2181
## 创建消息  在19.101上创建消息   topic 会自动创建
# ./bin/kafka-console-producer.sh --broker-list 192.168.19.101:9092 --topic mytest
## 消费消息 在19.102上消费消息
# ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.19.102:9092 --topic mytest --from-beginning


## 杀死kafka进程 
# kill -9 `ps aux| grep kafka | grep -v  grep|awk '{print $2}'`

遇到的问题
1.防火墙没关
2./etc/hosts文件

五、设置为开机自启动
1.zookeeper

# cat /etc/systemd/system/zookeeper.service 
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=forking
User=wlsadmin
Group=wlsadmin
ExecStart=/cust/cig/utils/zookeeper-3.4.14/bin/zkServer.sh start
ExecStop=/cust/cig/utils/zookeeper-3.4.14/bin/zkServer.sh stop 
ExecReload=/cust/cig/utils/zookeeper-3.4.14/bin/zkServer.sh restart

[Install]
WantedBy=multi-user.target

2.kakfa

# cat /etc/systemd/system/kafka.service 
[Unit]
Description=Apache Kafka server (broker)
After=network.target  zookeeper.service

[Service]
Type=simple
User=wlsadmin
Group=wlsadmin
ExecStart=/cust/cig/utils/kafka_2.11-2.2.0/bin/kafka-server-start.sh /cust/cig/utils/kafka_2.11-2.2.0/config/server.properties
ExecStop=/cust/cig/utils/kafka_2.11-2.2.0/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

3.注意点
(1)zookeeper.service 名称 一定要和kafka.service 里面After后面的保持一致
(2)此处我们使用的用户是wlsadmin 可以改为其他用户
(3)修改zk的文件 将日志路径添加进去

# cat /cust/cig/utils/zookeeper-3.4.14/bin/zkEnv.sh
......

if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="/cust/cig/utils/zookeeper-3.4.14/logs"			
fi
......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun_xuegang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值