kafka笔记(一)安装zoo和kafka

kafka笔记

安装jdk

关闭防火墙和selinux

开放2181端口:

查看防火墙状态:`systemctl status firewalld 或 firewall-cmd --state`
关闭防火墙:`systemctl stop firewalld`
禁用防火墙:`systemctl disable firewalld`
查看已开放的端口:`firewall-cmd --zone=public --list-ports`
添加端口:`firewall-cmd --zone=public --add-port=2181/tcp --permanent`
重启:`firewall-cmd --reload`
查看端口:`firewall-cmd --zone=public --query-port=2181/tcp`
关闭selinux并重启系统`
      vi /etc/sysconfig/selinux
      ...
      SELINUX=disabled
      ...
      reboot
      getenforce   查看是否被禁用`

安装lrzsz

yum -y install lrzsz

zookeeper下载及安装:

https://blog.csdn.net/weixin_43626465/article/details/126179883

使用命令下载
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.5.10/apache-zookeeper-3.5.10-bin.tar.gz
直接修改版本号

ZooKeeper安装及简单操作:

https://www.cnblogs.com/h–d/p/10269869.html

解压:tar -zxvf zookeeper-3.4.6 -C /usr/zookeeper/
更改配置文件:/usr/zookeeper/zookeeper-3.4.6/conf

# The number of milliseconds of each tick
# Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000


# The number of ticks that the initial 
# synchronization phase can take
# initLimit:LF初始通信时限
# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=10


# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
# syncLimit:LF同步通信时限
# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5


# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
# dataDir:数据文件目录
# Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里
dataDir=/tmp/zookeeper/data


# dataLogDir:日志文件目录
# Zookeeper保存日志文件的目录。
dataLogDir=/tmp/zookeeper/logs

# the port at which the clients will connect
# clientPort:客户端连接端口
# 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
clientPort=2181


# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#

# The number of snapshots to retain in dataDir保留数量3
#autopurge.snapRetainCount=3

# Purge task interval in hours
# Set to "0" to disable auto purge feature清理时间间隔1小时
#autopurge.purgeInterval=1

# 服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
# 这个配置项的书写格式比较特殊,规则如下:
# server.N=YYY:A:B  
# 其中N表示服务器编号,YYY表示服务器的IP地址,ALF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)。一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时A端口和B端口不一样。 

可以不修改zoo.cfg,默认配置就行,进去zookeeper安装目录,启动ZooKeeper

启动命令:./bin/zkServer.sh start

停止命令:./bin/zkServer.sh stop

重启命令:./bin/zkServer.sh restart

状态查看命令:./bin/zkServer.sh status

zookeeper启动失败的可能情况:

https://blog.csdn.net/weixin_37550903/article/details/78091670

下载kafka

wget https://downloads.apache.org/kafka/3.3.1/kafka_2.12-3.3.1.tgz

安装过程:

https://www.cnblogs.com/xyst/p/15660786.html

解压:tar -zxvf kafka_2.12-3.3.1.tgz -C /usr/kafka/

#目录文件:
bin/  config/  libs/  LICENSE  licenses/  NOTICE  site-docs/

修改配置文件:

cd config  #进入config目录
cp server.properties server_back.properties  #做备份文件
vi server.properties #更改配置文件
	listeners=PLAINTEXT://192.168.83.130:9092  #添加主机地址
	advertised.listeners=PLAINTEXT://192.168.83.130:9092 #添加主机地址
   **Server Basics**
    	#broker的主机IP地址,一般不设置
  	    host.name=
   	    #broker服务端口,生产者和消费者再此端口建立连接
   	    port =端口
  	    #broker在集群中的唯一标识,正数
   		broker.id=1
   		#后台任务处理的线程数
   		background.threads=4
   		#请求队列最大数量
   		queued.max.requests=500
   **Socket Server Settings**
        #处理消息的最大线程数,一般情况下数量为cpu核数
   		num.network.threads=3
   		#处理磁盘IO的线程数,数值为cpu核数2倍
  		num.io.threads=8
  		#发送缓冲区
  		socket.send.buffer.bytes=1000*1024
  		#接收缓冲区
  	    socket.receive.buffer.bytes=1000*1024
  	    #请求的最大数值
   		socket.request.max.bytes=104857600
   **Log Basics**
        #kafka数据的存放位置,多个用逗号分隔;
        log.dirs=/kafka/logs
        #每个数据目录的线程数,用于启动时的日志恢复和关闭时的刷新
        num.recovery.threads.per.data.dir=1
   **Log Retention Policy**    
        #是否开启清理
        log.cleaner.enable=false
        #清理运行的线程数
        log.cleaner.threads = 2
        #清理时每秒处理的字节数
        log.cleaner.io.max.bytes.per.second=None
        #segment即使没有达到log.segment.bytes设置的大小,也会强制新建一个segment
        log.roll.hours =24*7
        #数据文件保留多长时间
        log.retention.minutes=3000
        或者
        log.retention.hours=50
        #清理策略:delete或者compact
        log.cleanup.policy = delete
        #topic每个分区的最大文件大小,-1没有大小限制
        log.retention.bytes=-1
        #消息体的最大字节,小于socket.request.max.bytes
	    message.max.bytes=5242880
	    #自动创建topic时的默认副本的个数
	    default.replication.factor=3
	    #为每个分区设置获取的消息的字节数
	    replica.fetch.max.bytes=104857600
	    #topic的分区是以segment文件存储的,这个控制每个segment的大小
	    log.segment.bytes=1073741824
	    #文件大小检查的周期时间
	    log.retention.check.interval.ms=300000
	    #清理时候用到的IO缓存大小,一般不需要修改
	    log.cleaner.io.buffer.size=512*1024
	    #清理中hash表的扩大因子,一般不需要修改
	    log.cleaner.io.buffer.load.factor =0.9
	    #检查是否触发清理
	    log.cleaner.backoff.ms =15000
	    #清理频率,越大意味着更高效的清理,但浪费空间
	    log.cleaner.min.cleanable.ratio=0.5
	    #压缩信息保留的最长时间,也是客户端消费消息的最长时间
	    log.cleaner.delete.retention.ms =24*60*60*1000
	    #segment索引文件大小
	    log.index.size.max.bytes =10*1024*1024
	    #fetch操作,需要空间来扫描offset值,值越大扫描速度越快,但浪费空间
	    log.index.interval.bytes =4096
	    #partiton缓存,每当消息记录数达到1000时flush一次数据到磁盘
	    log.flush.interval.messages=1000
	    #检查数据是否要写入到硬盘的时间间隔
	    log.flush.scheduler.interval.ms =3000
	    /*如果消息量始终没有达到阀值,但是离上一次磁盘同步的时间间隔达到阀值,也将触发
	    表示每间隔1000毫秒flush一次数据到磁盘*/
	    log.flush.interval.ms=1000
	    #文件在索引中清除后保留的时间一般不需要去修改
	    log.delete.delay.ms =60000
	    #控制上次flush到硬盘的时间点,以便于数据恢复一般不需要去修改
	    log.flush.offset.checkpoint.interval.ms =60000
   **Internal Topic Settings**
   		#是否允许自动创建topic,若是false,就需要通过命令创建topic
        auto.create.topics.enable =true
        #每个topic的分区个数
        num.partitions=3
        #topic的offset的备份数,建议34个
  		offsets.topic.replication.factor=3
  		#事物备份数,建议34个
  	    transaction.state.log.replication.factor=3
  	    #事务重写备份数,建议34个
 	    transaction.state.log.min.isr=3
   **Zookeeper**
        #zookeeper集群的地址
   		zookeeper.connect=IP1:端口,IP2:端口,IP3:端口...
   		#zookeeper的连接超时时间
   		zookeeper.connection.timeout.ms =6000
   		#zookeeper的心跳间隔,不易过大
   		zookeeper.session.timeout.ms=6000
   		#zookeeper集群中leader和follower之间的同步时间
   		zookeeper.sync.time.ms =2000
   **Group Coordinator Settings**
        /*在进行第一次重新平衡之前,group协调员将等待更多消费者加入group的时间,
        延迟时间越长意味着重新平衡的可能性越小,但是等待处理开始的时间增加*/
        group.initial.rebalance.delay.ms=3000

kafka基本操作

1、启动kafka 在kafka目录下[root@center kafka_2.12-3.3.1]#
bin/kafka-server-start.sh config/server.properties 1>/tmp/start-logs/kafkaStart.log 2>/tmp/start-logs/kafka.err &
其中‘>/tmp/start-logs/kafka.log’输出信息重定向,‘&’ 后台进程启动,‘2>/tmp/start-logs/kafka.err’错误信息重定向
启动日志在logs目录里
查看进程ps -ef|grep kafka

2、停止kafka 在bin目录下
bin/kafka-server-stop.sh 1>/tmp/start-logs/kafkaStop.log 2>/tmp/start-logs/kafka.err &

3、创建topic
bin/kafka-topics.sh --create --bootstrap-server 192.168.83.130:9092 --replication-factor 1 --partitions 1 --topic topic_222

其中 --bootstrap-server 192.168.83.130:9092在server.properties配置里的listeners选项

4、查看topic
查看所有topic:
bin/kafka-topics.sh --list --bootstrap-server 192.168.136.131:9092

查看某个topic:
bin/kafka-topics.sh --describe --topic test_111 --bootstrap-server 192.168.136.131:9092
5、生产者
bin/kafka-console-producer.sh --broker-list 192.168.136.131:9092 --topic test_111

随时停止生产者客户端Ctrl-C

--broker-list可以换成--bootstrap-server
6、消费者
bin/kafka-console-consumer.sh --bootstrap-server 192.168.136.131:9092 --topic test_111

随时停止生产者客户端Ctrl-C

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

欣子.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值