Kafka 安装部署
Kafka介绍(摘自百度百科)
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
kafka配置
环境准备
虚拟机版本: centos 7
jdk版本:1.8
kafka版本:1.0
解压kafka并配置
$ | tar -zxvf kafka-2.12-2.3.0.tgz -C /usr/local/src
$ | cd /usr/local/src
$ | mv kafka-2.12-2.3.0 /kafka
核心概念
下面介绍Kafka相关概念,以便运行下面实例的同时,更好地理解Kafka.
- Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker- Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)- Partition
Partition是物理上的概念,每个Topic包含一个或多个Partition.- Producer
负责发布消息到Kafka broker- Consumer
消息消费者,向Kafka broker读取消息的客户端。- Consumer Group
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
修改kafka的配置文件
$ | vim /src/local/src/kafka/confing/server.properties
$ | log.dirs = /usr/local/src/kafka/kafka-logs #修改日志文件路径
$ | listeners = PLAINTEXT://ip:9092
$ | zookeeper.commect = 用户名:2181 #zk连接地址
$ | bin/zookeeper-server-start.sh config/zookeeper.properties & #启动命令
配置环境变量
$ | vim /etc/profile
$ | export KAFKA_HOME=/usr/local/src/kafka
$ | export PATH=$KAFKA_HOME/bin:$PATH
保存退出vim编译器,并生效环境变量
$ | source /etc/profile
测试简单实例
$ | # 进入kafka所在的目录
$ | cd /usr/local/src/kafka
$ | bin /zookeeper-server-start.sh congfig/zookeeper/properties
命令执行后不会返回Shell命令输入状态,zookeeper就会按照默认的配置文件启动服务,不要关闭当前终端,启动新的终端,输入如下:
$ | cd /usr/local/src/kafka
$ | bin/kafka-topics.sh --create --zookeeper localhost:2181
-- replication-factor 1 --partitions 1 --topic dblab
topic 是发布消息发布的category,以单节点的配置创建了一个叫dblab的topic.可以用list列出所有创建topics,来查看刚才创建的主题是否存在。
$ | bin/kafka-topics.sh --list --zookeeper 主机名:2181
可以在结果查看到dblab这个topic存在。