kafka部署

kafka简介

​ Kafka是一种高吞吐量的分布式发布/订阅消息系统,是Apache组织下的一个开源系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop平台的数据分析、低时延的实时系统、storm/spark流式处理引擎等。

kafka术语

  • Broker:Kafka集群包含一个或多个服务器,每个服务器被称为broker。

  • Topic:每条发布到Kafka集群的消息都有一个分类,这个类别被称为Topic(主题)。

  • Producer:指消息的生产者,负责发布消息到Kafka broker。

  • Consumer:指消息的消费者,从Kafka broker拉取数据,并消费这些已发布的消息。

  • Partition:是物理上的概念,每个Topic包含一个或多个Partition,每个partition都是一个有序

    的队列。partition 中的每条消息都会被分配一个有序的id(称为offset)。

  • Consumer Group:消费者组,可以给每个Consumer指定消费者组,若不指定消费者组,则属于默认的group。

  • Message:消息,通信的基本单位,每个producer可以向一个topic发布一些消息。

下载与安装Kafka

集群部署需每个节点都操作。

kafka官网:https://kafka.apache.org/downloads

# 将安装包直接解压到一个路径下即可完成kafka的安装
[root@localhost ~]# tar -zxvf kafka_2.10-0.10.0.1.tgz -C /usr/local
[root@localhost ~]# mv /usr/local/kafka_2.10-0.10.0.1  /usr/local/kafka

配置kafka集群

vi /usr/local/kafka/config/server.properties

broker.id=1
listeners=PLAINTEXT://192.168.127.10:9092
log.dirs=/data/kafka/logs
num.partitions=6
log.retention.hours=60
log.segment.bytes=1073741824
zookeeper.connect=192.168.127.10:2181,192.168.127.11:2181,192.168.127.12:2181
auto.create.topics.enable=true
delete.topic.enable=true
  • broker.id:每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况。
  • listeners:设置kafka的监听地址与端口,可以将监听地址设置为主机名或IP地址。
  • log.dirs:这个参数用于配置kafka保存数据的位置,kafka中所有的消息都会存在这个目录下。可以通过逗号来指定多个路径, kafka会根据最少被使用的原则选择目录分配新的parition。需要注意的是,kafka在分配parition的时候选择的规则不是按照磁盘的空间大小来定的,而是根据分配的 parition的个数多小而定。
  • num.partitions:这个参数用于设置新创建的topic有多少个分区,可以根据消费者实际情况配置,配置过小会影响消费性能。这里配置6个。
  • log.retention.hours:这个参数用于配置kafka中消息保存的时间,还支持log.retention.minutes和 log.retention.ms配置项。这三个参数都会控制删除过期数据的时间,推荐使用log.retention.ms。如果多个同时设置,那么会选择最小的那个。
  • log.segment.bytes:配置partition中每个segment数据文件的大小,默认是1GB,超过这个大小会自动创建一个新的segment file。
  • zookeeper.connect:这个参数用于指定zookeeper所在的地址,它存储了broker的元信息。 这个值可以通过逗号设置多个值,每个值的格式均为:hostname:port/path,每个部分的含义如下:
    hostname:表示zookeeper服务器的主机名或者IP地址,这里设置为IP地址。
     port: 表示是zookeeper服务器监听连接的端口号。
     /path:表示kafka在zookeeper上的根目录。如果不设置,会使用根目录。
  • auto.create.topics.enable:这个参数用于设置是否自动创建topic,如果请求一个topic时发现还没有创建, kafka会在broker上自动创建一个topic,如果需要严格的控制topic的创建,那么可以设置auto.create.topics.enable为false,禁止自动创建topic。
  • delete.topic.enable:在0.8.2版本之后,Kafka提供了删除topic的功能,但是默认并不会直接将topic数据物理删除。如果要从物理上删除(即删除topic后,数据文件也会一同删除),就需要设置此配置项为true。

启动kafka集群

​ 在启动kafka集群前,需要确保ZooKeeper集群已经正常启动。接着,依次在kafka各个节点上执行如下命令即可:

[root@localhost ~]# cd /usr/local/kafka
[root@localhost kafka]# nohup bin/kafka-server-start.sh config/server.properties &
[root@localhost kafka]# jps
21840 Kafka
15593 Jps
15789 QuorumPeerMain

kafka集群基本命令操作

kafka提供了多个命令用于查看、创建、修改、删除topic信息,也可以通过命令测试如何生产消息、消费消息等,这些命令位于kafka安装目录的bin目录下,这里是/usr/local/kafka/bin。登录任意一台kafka集群节点,切换到此目录下,即可进行命令操作。下面列举kafka的一些常用命令的使用方法。

# 创建一个topic,并指定topic属性(副本数、分区数等)
sh bin/kafka-topics.sh --bootstrap-server kafkahost:9092 --create --topic talking --partitions 1

# 显示topic列表
sh bin/kafka-topics.sh --list --bootstrap-server kafkahost:9092

# 监控topic输入
sh bin/kafka-console-consumer.sh --bootstrap-server ...:9092 --topic talking --from-beginning
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值