官网:http://kafka.apache.org
下载地址:http://kafka.apache.org/downloads
选择自己想要的版本:
安装kafka之前的准备:Java 8 Zookeeper
- 解压安装包
tar -zxvf kafka_2.12-3.1.0.tgz -C /home/app/
- 添加KAFKA_HOME到环境变量(~/.bash_profile)
export KAFKA_HOME=/home/app/kafka_2.12-3.1.0 export PATH=$KAFKA_HOME/bin:$PATH //使配置生效: source ~/.bash_profile
- 修改配置文件
先在 /home/app/kafka_2.12-3.1.0 目录下创建 kafka-logs 文件夹
cd $KAFKA_HOME/config vi server.properties
以下是 server.properties 文件内容,有的需要自己改
//broker 的全局唯一编号,不能重复 broker.id=0 //删除 topic 功能使能 delete.topic.enable=true //处理网络请求的线程数量 num.network.threads=3 //用来处理磁盘 IO 的现成数量 num.io.threads=8 //发送套接字的缓冲区大小 socket.send.buffer.bytes=102400 //接收套接字的缓冲区大小 socket.receive.buffer.bytes=102400 //请求套接字的缓冲区大小 socket.request.max.bytes=104857600 //kafka 运行日志存放的路径 log.dirs=/home/app/kafka_2.12-3.1.0/kafka-logs //topic 在当前 broker 上的分区个数 num.partitions=1 //用来恢复和清理 data 下数据的线程数量 num.recovery.threads.per.data.dir=1 //segment 文件保留的最长时间,超时将被删除 log.retention.hours=168 //配置连接 Zookeeper 集群地址 zookeeper.connect=hadoop101:2181,hadoop102:2181,hadoop103:2181 //这里可以看我的Zookeeper集群配置 https://blog.csdn.net/weixin_43330944/article/details/122928816
分别在 hadoop102 和 hadoop103 上修改配置文件/home/app/kafka_2.12-3.1.0/config/server.properties
中的 broker.id=1、broker.id=2
注:broker.id 不得重复
- 开启/停止kafka
需要一台台服务器输入以下命令:
//启动Kafka: kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties //关闭kafka kafka-server-stop.sh stop
- Kafka命令行操作命令
//查看当前服务器中的所有 topic kafka-topics.sh --zookeeper hadoop102:2181 --list //创建Topic: kafka-topics.sh --create --zookeeper hadoop101:2181 --replication-factor 1 --partitions 1 --topic student //选项说明: --topic 定义 topic 名 --replication-factor 定义副本数 --partitions 定义分区数 //删除Topic 需要 server.properties中设置 delete.topic.enable=true 否则只是标记删除。 kafka-topics.sh --delete --zookeeper hadoop102:2181 --topic student //创建生产者(发送消息): kafka-console-producer.sh --broker-list hadoop101:9092 --topic student //创建消费者: //使用bootstrap-server,则consumer的信息将会存放在kafka之中,而kafka的端口号为9092 kafka-console-consumer.sh --bootstrap-server hadoop101:9092 --topic student //使用zookeeper,则consumer的信息将会存放在zookeeper之中,而zookeper的端口号为2181 kafka-console-consumer.sh --zookeeper hadoop101:2181 --topic student //--from-beginning:会把主题中以往所有的数据都读取出来。 kafka-console-consumer.sh --bootstrap-server hadoop101:9092 --from-beginning --topic student //查看某个Topic的详情 kafka-topics.sh --zookeeper hadoop101:2181 --describe --topic student //修改分区数 kafka-topics.sh --zookeeper hadoop101:2181 --alter --topic student --partitions 6



