kafka的安装到简单使用
首先我们要知道:kafka依赖于zookeeper而zookeeper又依赖于jdk
1.1.jdk的安装参考这里安装:https://www.cnblogs.com/KdeS/p/11526907.html
1.2.zookeeper 的安装
1.2.1.下载 zookeeper-3.4.12.tar.gz
命令:wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
1.2.3 .解压:tar - zxvf zookeeper-3.4.12.tar.gz
命令:tar - zxvf zookeeper-3.4.12.tar.gz -C /home/zk/ zookeeper- 3.4.12
1.2.4 .加入系统环境变量
命令: vi ~/.bash_profile
命令:source ~/.bash_profile
1.2.5.把配置文件改名
命令:cp zoo_sample.cfg zoo.cfg
1.2.6.指定zookeeper的日志文件路径,指定的文件路径没有则需要自己创建
命令:vi zoo.cfg
日志路径:dataDir=/home/zk/tmp
默认端口:clientPort=2181
1.2.7.启动zookeeper,查看进程是否启动
命令:bin/zkServer.sh start
命令:jps -m
二.zookeeper安装好的基础上我们接着安装kafka
2.1.打开官方文档:kafka.apache.org
2.2.进入下载
2.3.找到需要下载的本版,这里就下载2.10-0.10.2.1
2.4.新窗口中打开得到下载地址
命令:wget https://archive.apache.org/dist/kafka/0.9.0.0/kafka_2.10-0.10.2.1.tgz
2.5 解压
命令: tar -zxvf kafka_2.10-0.10.2.1.tgz -C /app/
2.6.加入系统环境变量
命令: vi ~/.bash_profile
export KAFKA_HOME=/app/kafka_2.10-0.10.2.1 export PATH=PATH
命令:source ~/.bash_profile
2.7.进入config目录打开配置文件
命令:vi server.properties
broker.id=0 唯一的,kafka比喻成一个篮子,这个id就指篮子的id,不可重复的 advertised.listeners=PLAINTEXT://192.168.95.4:9092 表示非kafka集群内的机器访问kafka 需要配置的ip加端口 delete.topic.enable=true 是否启用主题删除,默认false log.dirs=/app/tmp/kafka-logs 以逗号分隔的存储日志文件的目录列表,需要自己指定,否则重启就清空了 num.partitions=1 分区默认是1 log.segment.bytes=1073741824 日志文件的大小达到此值时,将创建一个新的日志文件 zookeeper.connect=localhost:2181 配置zk所在的主机加端口,因为在同一台,所以就localhost
三.单节点单broker
3.1 启动kafka
命令:bin/kafka-server-start.sh config/server.properties
后台方式启动:bin/kafka-server-start.sh -daemon config/server.properties
3.2 创建 topic:指定zookeeeper ,一个分区一个副本系数
命令:bin/kafka-topics.sh --create --zookeeper 192.168.95.4:2181 --replication-factor 1 --partitions 1 --topic test
3.3查看所有主题
命令:bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181
3.4 启动生产者,发送消息:指定broker
命令:bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic hello_topic
3.5 启动消费者消费消息:指定zookeeper
命令:bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic hello_topic --from-beginning
-from-beginning :从头开始消费
或者使用:bin/kafka-console-consumer.sh --bootstrap-server hadoop103:9092 --topic car
3.6 查看所有topic的信息
命令:bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181
3.6 查看单个topic的信息(比如之前遇到过kafka重新启动之后,选举不出Leader导致生产者每次发送消息就报错,leader的值是-1)
命令:bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic hello_topic
4.1 布置3个broker,命令如下:
cp server.properties server-1.propertiesls
cp server.properties server-2.propertiesls
cp server.properties server-3.propertiesls
4.2 配置server-1.propertiesls,server-2.propertiesls,server-3.propertiesls
4.2.1 vi server-1.propertiesls
broker.id=1
advertised.listeners=PLAINTEXT://192.168.95.4:9093
log.dirs=/app/tmp/kafka-logs-1
4.2.2 vi server-1.propertiesls
broker.id=2
advertised.listeners=PLAINTEXT://192.168.95.4:9094
log.dirs=/app/tmp/kafka-logs-2
4.2.3 vi server-1.propertiesls
broker.id=3
advertised.listeners=PLAINTEXT://192.168.95.4:9095
log.dirs=/app/tmp/kafka-logs-3
4.3 启动kafka(后台启动)
bin/kafka-server-start.sh -daemon config/server-1.properties &
bin/kafka-server-start.sh -daemon config/server-2.properties &
bin/kafka-server-start.sh -daemon config/server-3.properties &
4.4 创建主题topic
kafka-topics.sh --create --zookeeper 127.0.0.1: 2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
4.5.查看主题信息
bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic my-replicated-topic
4.6 发送消息
bin/kafka-console-producer.sh --broker-list 127.0.0.1:9093,127.0.0.1:9094,127.0.0.1:9095 --topic my-replicated-topic
bin/kafka-console-producer.sh --broker-list test:9093 --topic my-replicated-topic
4.7 消费消息
bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic my-replicated-topic --from-beginning