kafka安装
1 kafka概念
1.1 kafka介绍
kafka是最初有Linkedin公司开发的,是一个分布式,分区,多副本,多生产者,多订阅者,基于zookeeper协调的分布式日志系统。具有高吞吐量,可扩展性和可容错性等特点,广泛用于大数据、实时分析、日志收集等
kafak的核心概念
- 主题(Topic):消息的分类,生产者将消息发送到特定的主体,消费者则从主体中读取消息,一个主体可以有多个分区,以实现水平扩展
- 分区(Partition):为了实现高吞吐量和容错性,kafka将主体分为多个分区,每个分区都存储一部分消息,独立进行读写操作
- 生产者(Producer):负责将消息放松到kafka集群的主题。生产者可以选择同步或者异步发送消息
- 消费者(Consumer):从Kafka集群的主体中读取消息并进行处理 。消费者可以选择同步或者异步的方式消费消息
- 代理(Broker):一个独立的Kafka服务器称为Broker,Broker为消费者提供服务,对读取的分区的请求作出相应,返回已经提交到磁盘上的消息。Broker可以是淡季模式或者多机模式
- Zookeeper:Kafka使用zookeeper来管理集群的元数据信息,如主体、分区、消费者等
2 Kafka安装与配置
2.1 java环境配置
1、上传jdk-8u261-linux-x64.rpm到服务器并安装:
rpm -ivh jdk-8u261-linux-x64.rpm
2、配置环境变量
export JAVA_HOME=/java/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
# 使配置的文件生效
source /etc/profile
# 验证
java -version
2.2 Zookeeper的安装配置
1、上传zookeeper-3.4.14.tar.gz到服务器
2、解压到/opt:
tar -zxf zookeeper-3.4.14.tar.gz -C /opt
cd /opt/zookeeper-3.4.14/conf
#复制zoo_sample.cfg命名为z00.cfg
cp zoo_sample.cfg zoo.cfg
#编辑zoo.cfg文件
vim zoo.cfg
3、修改Zookeeper保存数据的⽬录,dataDir:
dataDir=/var/lagou/zookeeper/data
4、编辑/etc/profile:
- 设置环境变量ZOO_LOG_DIR,指定Zookeeper保存⽇志的位置;
- ZOOKEEPER_PREFIX指向Zookeeper的解压⽬录;
- 将Zookeeper的bin⽬录添加到PATH中:
export ZOOKEEPER_PREFIX=/opt/zookeeper-3.4.14
export PATH-SPATH:$ZOOKEEPER_PREFIX/bin
export Z00_LOG_DIR=/var/lagou/zookeeper/log
5、使配置⽣效:
source /etc/profile
6、验证
2.3 kafka安装
1、上传kafka_2.12-1.0.2.tgz到服务器并解压:
tar -zxf kafka_2.12-1.0.2.tgz -C /opt
2、配置环境变量并⽣效:
export KAFKA_HOME=/opt/kafka_2.12-1.0.2
export PATH=$PATH:$KAFKA_HOME/bin
3、配置/opt/kafka_2.12-1.0.2/config中的server.properties⽂件:
Kafka连接Zookeeper的地址,此处使⽤本地启动的Zookeeper实例,连接地址是localhost:2181,后⾯的
myKafka 是Kafka在Zookeeper中的根节点路径:
然后配置kafka存储持久化数据的⽬录
log.dir=/opt/data/kafka-logs
4、启动Zookeeper
zkServer.sh start
5、查看Zookeeper状态
zkServer.sh status
6、启动kafka(前台启动)
进入kafka目录,通过配置文件启动
cd /opt/kafka_2.12-1.0.2
# 此为前台启动
kafka-server-start.sh config/server.properties
这是前台启动,crtl+c就停止进程了
# 后台启动
kafka-server-start.sh -daemon config/server.properties
# 查看进程
ps aux | grep kafka
# kafka 停止
kafka-server-stop.sh