Kafka安装和简单使用

Kafka是一个比RabbitMQ更加强大的消息中间件,处理消息的能力为80-100M/s,下面安装记录一下,Linux版本为Centos6。

解压压缩包

直接解压即可。

[[email protected] /home/software]# tar -zxvf kafka_2.11-1.0.0.tgz

修改server.properties

(1)指定broker编号,需独一无二的整数,broker就是经纪人,一个broker代表一个kafka节点。

(2)指定kafka数据本地化的位置

(3)kafka注册节点在zookeeper上,需配置zookeeper节点

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0

# A comma seperated list of directories under which to store log files
log.dirs=/home/software/kafka-2/kafka-logs

# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181

分发到其他节点

将刚配置好的kafka分发到其他两台节点,并修改server.properties文件,将broker分别修改为1和2。

# 分发到节点2
[[email protected] /home/software]# scp -r kafka-2/ [email protected]:$PWD

# 分发到节点3
[[email protected] /home/software]# scp -r kafka-2/ [email protected]:$PWD

kafka使用初体验

分发完成后,就可以启动一下kafka,下面操作一下。

(1)节点1上启动一个broker,需加载刚才修改的配置文件。

[[email protected] /home/software/kafka-2/bin]# sh kafka-server-start.sh ../config/server.properties

启动成功。

(2)重开一个远程连接窗口,创建主题topic,并在kafka-logs下查看目录情况。

[[email protected] /home/software/kafka-2/bin]# sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 1 --partitions 1 --topic football
Created topic "football".
[[email protected] /home/software/kafka-2/bin]# sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 1 --partitions 2 --topic music
Created topic "music".

创建topic成功后目录中多了football和music的topic文件夹,其中music设置了2个分区就有两个文件夹。

(3) 节点2上也启动一个broker,并在节点1上再次创建一个topic。

节点2启动一个broker。

[[email protected] /home/software/kafka-2/bin]# sh kafka-server-start.sh ../config/server.properties

节点1上再次创建一个topic,指定分区为2。

[[email protected] /home/software/kafka-2/bin]# sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 1 --partitions 2 --topic book
Created topic "book".

创建成功后,发现两个分区分布在两个broker对应的kafka-logs目录中。

book-0分区在节点1中。

book-1分区在节点2中。

如果topic指定了多个partition,则这个topic的partition会均匀的分布在多个节点上,partition就是为了让数据均匀分布,存储在节点。

(4)可以使用如下命令查看刚才创建的topic,需连接zookeeper获取信息。

# 列出刚创建的3个topic[[email protected] /home/software/kafka-2/bin]# sh kafka-topics.sh --list --zookeeper hadoop01:2181
book
football
music

(5)使用如下命令删除topic,也需连接zookeeper。

[[email protected] /home/software/kafka-2/bin]# sh kafka-topics.sh --delete --zookeeper hadoop01:2181 --topic music
Topic music is marked for deletion.# 设置delete.topic.enable为true,则为立即删除
Note: This will have no impact if delete.topic.enable is not set to true.

删除完后,不会立即删除topic,只是先标记为删除,默认1分钟后会删除,想修改为立即删除需在server.properties中配置delete.topic.enable为true。

(6) 副本数目不能超过节点数目,上面开启了2个broker,如果设置副本数为3会提示报错。另外副本是以topic为单位来复制的。

[[email protected] /home/software/kafka-2/bin]# sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 3 --partitions 2 --topic replication
# 报错提示不能超过节点数Error while executing topic command : Replication factor: 3 larger than available brokers: 2.
[2019-12-30 21:11:05,625] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: Replication factor: 3 larger than available brokers: 2.
 (kafka.admin.TopicCommand$)
You have new mail in /var/spool/mail/root# 修改副本数为2后ok
[[email protected] /home/software/kafka-2/bin]# sh kafka-topics.sh --create --zookeeper hadoop01:2181 --replication-factor 2 --partitions 2 --topic replication
Created topic "replication".

节点1和节点2上均有topic目录,并有2个分区。

节点1

节点2

(7)消息的生产端和消费端

生产端,--broker-list为获取节点的信息,后面配置的9092为kafka端口号,发送消息最后还需要指定主题。

[[email protected] /home/software/kafka-2/bin]# sh kafka-console-producer.sh --broker-list hadoop01:9092 --topic football
>hello buddy , i am football king messi

消费端,直接连接zookeeper,指定好主题就可以接收消息了。

[[email protected] /home/software/kafka-2/bin]# sh kafka-console-consumer.sh --zookeeper hadoop01:2181 --topic football
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
hello buddy , i am football king messi

以上就是kafka安装和使用初体验,记录一下后面使用。

原文地址:https://www.cnblogs.com/youngchaolin/p/12121812.html

时间: 2024-11-07 11:52:31

Kafka安装和简单使用的相关文章

【Apache Kafka】Kafka安装及简单示例

(一)Apache Kafka安装 1.安装环境与前提条件 ??安装环境:Ubuntu16.04 ??前提条件: ubuntu系统下安装好jdk 1.8以上版本,正确配置环境变量 ubuntu系统下安装好scala 2.11版本 安装ZooKeeper(注:kafka自带一个Zookeeper服务,如果不单独安装,也可以使用自带的ZK) 2.安装步骤 ??Apache基金会开源的这些软件基本上安装都比较方便,只需要下载.解压.配置环境变量三步即可完成,kafka也一样,官网选择对应版本下载后直接

KAFKA安装+配置详解+常用操作+监控

一.kafka理论 1.kafka是神马? kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务.它主要用于处理活跃的流式数据.分布式系统,易于向外扩展.所有的producer.broker和consumer都会有多个,均为分布式的.无需停机即可扩展机器. 2.kafka的设计方案 消息持久化及其缓存 磁盘性能:在传统的磁盘写入很慢,因为它使用随机写入 50k/s(6个7200转的

kafka安装和使用

kafka安装和启动 kafka的背景知识已经讲了很多了,让我们现在开始实践吧,假设你现在没有Kafka和ZooKeeper环境. Step 1: 下载代码 下载0.10.0.0版本并且解压它. > tar -xzf kafka_2.11-0.10.0.0.tgz > cd kafka_2.11-0.10.0.0 Step 2: 启动服务 运行kafka需要使用Zookeeper,所以你需要先启动Zookeeper,如果你没有Zookeeper,你可以使用kafka自带打包和配置好的Zooke

Kafka安装教程(详细过程)

安装前期准备: 1,准备三个节点(根据自己需求决定) 2,三个节点上安装好zookeeper(也可以使用kafka自带的zookeeper) 3,关闭防火墙 chkconfig  iptables off 一.下载安装包Kafka官网下载安装包 http://kafka.apache.org/downloads.html 我们下载第二种(已经被编译过的),将安装包存在在 /software/ 下 二.解压安装包我选择将kafka安装在 /usr/local/  这个目录下. tar -zxvf

python requests的安装与简单运用

requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的: python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码. 我也看了下requests的文档,确实很简单,适合我这种懒人.下面就是一些简单指南. 插播个好消息!刚看到requests有了中文翻译版,建议英文不好的看看,内容也比我的博客好多了,具体链接是:http://cn

saltstack安装和简单配置(一)

saltstack 安装和简单配置 在安装前,写了好多废话,都被我删除了,下面就开始搞吧. 环境: master:10.70.36.110 minion:10.70.36.103 一.安装: 现在centos下的yum源内有最新的salt-master源码包,安装的话,直接     yum -y install salt-master   #服务端         yum -y install salt-minion   #客户端 要使用yum安装,必须配置好epel源,可参考:        

Redis安装及简单测试

题目链接:11645 - Bits 题意:给定一个数字n,要求0-n的二进制形式下,连续11的个数. 思路:和 UVA 11038 这题类似,枚举中间,然后处理两边的情况. 不过本题最大的答案会超过longlong,要用高精度,不过借鉴http://www.cnblogs.com/TO-Asia/p/3214706.html这个人的方法,直接用两个数字来保存一个数字,这样能保存到2个longlong的长度,就足够存放这题的答案了. 代码: #include <stdio.h> #include

kafka 安装

kafka是linkedin用于日志处理的分布式消息队列, 同时支持离线和在线日志处理. kafka对消息保存时根据Topic进行归类, 发送消息者成为 Producer,消息接受者成为 Consumer,此外 kafka 集群有多个kafka实例组成, 每个实例(server)称为broker. 无论是kafka集群, 还是producer和consumer都依赖于zookeeper来保证系统可用性,为集群保存一些meta信息. 生产者生产消息.kafka集群.消费者获取消息这样一种架构 ka

memcache的windows下的安装和简单使用

原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcache缺点之一却是缺少安全性验证,所以一般而言我们都会把一些访问量大,但是不需要验证的数据放在这里,需要用的时候来这里取,就给数据库减少了很多的负担.一般而言设定个更新时间就好了,1个小时左右更新一次. windows下安装和测试memcache最为方便,Linux只是需要相应的编译包就行了,需要包括m