kafka2.0.0集群搭建

kafka2.0.0集群搭建

  • kafka(2)集群搭建
    • kafka集群搭建
      • zookeeper集群搭建
        • jdk环境变量(三台机器一致)
        • zookeeper环境变量(三台一致)
        • zookeeper集群配置(三台的配置相同,只有myid中的数字要对应ip)
      • kafka集群搭建(三台机器同样)
      • 测试
    • 微信号:1936661913

kafka(2)集群搭建

kafka集群搭建

准备: kafka_2.11-2.0.0.tgz
zookeeper-3.4.6.tar.gz
jdk-8u171-linux-x64.tar.gz
3台Linux系统 Centos 6.5 64
ip:192.168.***.1(ip写自己的)
ip:192.168.***.2(ip写自己的)
ip:192.168.***.3(ip写自己的)
安装包及学习文档连接:
链接: https://pan.baidu.com/s/1ivwLKgwqq_2fXm6oOOrvKA 提取码: xtyu

zookeeper集群搭建

kafka运行是需要zookeeper进行调度的,还需要jdk运行环境,安装包都准备好,我这统一都上传到/usr/local目录下

jdk环境变量(三台机器一致)

mkdir /usr/local/java
mv jdk-8u171-linux-x64.tar.gz /usr/local/java
tar -zxvf /usr/local/java/jdk-8u171-linux-x64.tar.gz
vim /etc/profile

在最后添加
在这里插入图片描述
JAVA_HOME=/usr/local/java/jdk1.8.0_171
PATH= P A T H : PATH: PATH:JAVA_HOME/bin:
CLASSPATH=.:$JAVA_HOME/lib
export JAVA_HOME PATH CLASSPATH
保存并重新加载

source /etc/profile
测试:
java -version

在这里插入图片描述
jdk配置完成

zookeeper环境变量(三台一致)

在/usr/local下

tar -zxvf zookeeper-3.4.6.tar.gz
#修改名称
mv zookeeper-3.4.6 /usr/local/zookeeper
vim /etc/profile

kafka2.0.0集群搭建_第1张图片
直接加在jdk的后面
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH= P A T H : PATH: PATH:ZOOKEEPER_HOME/bin
保存并重新加载

source /etc/profile

zookeeper集群配置(三台的配置相同,只有myid中的数字要对应ip)

#编辑配置文件
cd /usr/local/zookeeper/conf
kafka2.0.0集群搭建_第2张图片
#复制一份zoo_sample.cfg
cp zoo_sample.cfg zoo.cfg
#编辑zoo.cfg
vim zoo.cfg
kafka2.0.0集群搭建_第3张图片
dataDir和dataLogDir这两个目录是要手动创建的,创建后在/usr/local/zookeeper/data目录下创建myid文件,每台服务器都要执行,最后的那个红框框里的蓝框框就是对应ip的/usr/local/zookeeper/data目录下myid的内容,
192.168.***.1中的 myid 内容只有一个数字 1
192.168.***.2中的 myid 内容只有一个数字 2
192.168.***.3中的 myid 内容只有一个数字 3
重要配置说明
1、myid文件和server.myid 在快照目录下存放的标识本台服务器的文件,他是整个zk集群用来发现彼此的一个重要标识。
2、zoo.cfg文件是zookeeper配置文件在conf目录里。
3、log4j.properties文件是zk的日志输出文件在conf目录里用java写的程序基本上有个共同点日志都用log4j,来进行管理。
启动
zkServer.sh start
查看状态
zkServer.sh status
可以通过jps命令查看zk进程
在这里插入图片描述

三台机器搭建后zkServer.sh status 命令返回的是

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

zookeeper搭建完毕

kafka集群搭建(三台机器同样)

解压:
tar -zxvf kafka_2.11-2.0.0.tgz
改名
mv kafka_2.11-2.0.0 kafka
cd kafka
mkdir kafkalogs#创建kafka消息目录,主要存放kafka消息
#进入config
#主要关注:server.properties 这个文件即可,我们可以发现在目录下:
#有很多文件,这里可以发现有Zookeeper文件,我们可以根据Kafka内带的zk
#集群来启动,但是建议使用独立的zk集群
kafka2.0.0集群搭建_第4张图片

broker.id=0 #当前机器在集群中的唯一标识,和zookeeper的myid性质一样
port=9092 #当前kafka对外提供服务的端口默认是9092
host.name=192.168.***.1 #这个参数默认是关闭的,在0.8.1有个bug,DNS解析问题,失败率的问题。
num.network.threads=3 #这个是borker进行网络处理的线程数
num.io.threads=8 #这个是borker进行I/O处理的线程数
log.dirs=/opt/kafka/kafkalogs/ #消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个
socket.send.buffer.bytes=102400 #发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.receive.buffer.bytes=102400 #kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.request.max.bytes=104857600 #这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
num.partitions=1 #默认的分区数,一个topic默认1个分区数
log.retention.hours=168 #默认消息的最大持久化时间,168小时,7天
message.max.byte=5242880 #消息保存的最大值5M
default.replication.factor=2 #kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务
replica.fetch.max.bytes=5242880 #取消息的最大直接数
log.segment.bytes=1073741824 #这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.retention.check.interval.ms=300000 #每隔300000毫秒去检查上面配置的log失效时间(log.retention.hours=168 ),到目录查看是否有过期的消息如果有,删除
log.cleaner.enable=false #是否启用log压缩,一般不用启用,启用的话可以提高性能
zookeeper.connect=192.168.***1.165:2181,192.168.***.2:2181,192.168.***.3:2181 #设置zookeeper的连接端口

上面是参数的解释,实际的修改项为:(192.168.***.1)
broker.id=0 #每台服务器的broker.id都不能相同
#hostname
host.name=192.168.***.1
#在log.retention.hours=168 下面新增下面三项
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#设置zookeeper的连接端口
zookeeper.connect=192.168.***1.165:2181,192.168.***.2:2181,192.168.***.3:2181

启动测试

cd /usr/local/kafka/bin
./kafka-server-start.sh -daemon …/config/server.properties
#解释-daemon 这是指定kafka后台运行
#使用jps查看状态
在这里插入图片描述

搭建完成

测试

可以通过命令进行创建topic然后生产和消费:

#创建Topic
./kafka-topics.sh --create --zookeeper 192.168.***.1:2181,
192.168.12.165:2181 --replication-factor 2 --partitions 1 --topic test
#解释
–replication-factor 2 #复制两份
–partitions 1 #创建1个分区
–topic #主题为test
#在一台服务器上创建一个订阅者
./kafka-console-producer.sh --broker-list 192.168.7.100:9092 --topic test
#在一台服务器上创建一个订阅者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test–from-beginning
server.properties,profile配置文件示例在安装文档文件夹中

kafka2.0.0集群搭建_第5张图片
下一篇学习怎样使用java代码操作kafka生产消息和消费消息,谢谢支持,有错之处还望指出
搭建成功赶快耍起来吧!有问题也可以直接加我微信互相交流互相学习

微信号:1936661913

你可能感兴趣的:(kafka,java)