目录
- 介绍并安装kafka
- 熟悉kafka启停操作
- 熟悉kafka常见控制台操作
介绍kafka
- A distributed streaming platform(分布式的流平台)
1.官方地址:http://kafka.apache.org/
2.主要用于大数据处理,对接spark、flink等实时流处理平台。
3.kafka是基于zookeeper的分布式消息系统。
4.kafka具有高性能、实时、高吞吐率及考可靠等基于流平台的特点,它并不是一个纯粹的消息系统。
安装kafka
- 依赖安装包清单
- 安装kafka
1.解压安装包至install目录下
[root@localhost ~]# tar -zxvf jdk-8u181-linux-x64.tar.gz -C ../install/
[root@localhost ~]# tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C ../install
[root@localhost ~]# tar -zxvf kafka_2.11-2.4.0.tgz -C ../install
2.安装jdk
[root@localhost ~]# vim /etc/profile
## JAVA_HOME
export JAVA_HOME=/opt/install/jdk1.8.0_181
## PATH
export PATH=$PATH:$JAVA_HOME/bin
[root@localhost software]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
3.安装zookeeper
- 修改配置文件
[root@localhost ~]# cd /opt/install/apache-zookeeper-3.5.7-bin/conf/
[root@localhost ~]# cp zoo_sample.cfg zoo.cfg
[root@localhost ~]# vim zoo.cfg
dataDir一般生产环境会设置一个磁盘空间比较大的目录,目前设置此目录学习即可。
clientPort为默认端口号。
[root@localhost ~]# cd /opt/install/apache-zookeeper-3.5.7-bin/conf/
[root@localhost ~]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/install/apache-zookeeper-3.5.7-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost ~]# ./zkCli.sh
- 查看zookeeper运行状态
[root@localhost ~]# ps -ef|grep zookeeper
- 查看zk日志
[root@localhost ~]# vim /opt/install/apache-zookeeper-3.5.7-bin/conf/zookeeper-root-server-localhost.localdomain.out
4.安装kafka
[root@localhost ~]# cd /opt/install/kafka_2.11-2.4.0/config/
[root@localhost ~]# ls
[root@localhost ~]# vim server.properties
-
kafka配置
修改ip为本地虚拟机ip,由于目前没有域名暂时使用ip即可
-
kafka配置zookeeper
5.kafka常见命令 -
启动Kafka
bin/kafka-server-start.sh config/server.properties &
- 停止Kafka
bin/kafka-server-stop.sh
- 创建Topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic kafka_study-topic
- 查看已经创建的Topic信息
bin/kafka-topics.sh --list --zookeeper localhost:2181
- 发送消息
bin/kafka-console-producer.sh --broker-list 192.163.124.3:9092 --topic kafka_study-topic
- 接收消息
bin/kafka-console-consumer.sh --bootstrap-server 192.163.124.3:9092 --topic kafka_study-topic --from-beginning
kafka基本概念
- Topic:一个虚拟概念,由一到多个Partitions组成
- Partition:实际消息存储单位
- Producer:消息生产者
- Consumer:消息消费者
- 生产环境上使用kafka
kafka创建topic,查看topic
[root@localhost kafka_2.11-2.4.0]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic kafka_study-topic
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic kafka_study-topic.
[root@localhost kafka_2.11-2.4.0]# bin/kafka-topics.sh --list --zookeeper localhost:2181
kafka_study-topic
kafka使用prouducer发送消息
[root@localhost kafka_2.11-2.4.0]# bin/kafka-console-producer.sh --broker-list 192.163.124.3:9092 --topic kafka_study-topic
kafka使用comsumer消费消息
root@localhost kafka_2.11-2.4.0]# bin/kafka-console-consumer.sh --bootstrap-server 192.163.124.3:9092 --topic kafka_study-topic --from-beginning