Kafka安装以及使用

一、Kafka介绍
  1. 介绍
    • Kafka是由LinkedIn开发的一个分布式消息系统,最初是用作LinkedIn的活动流(Activity Stream)和运营数据处理的基础。
    • 活动流数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。
    • 运营数据指的是服务器的性能数据(CPU、IO使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。
    • Kafka是一种分布式的,基于发布/订阅的消息系统,能够高效并实时的吞吐数据,以及通过分布式集群及数据复制冗余机制(副本冗余机制)实现数据的安全
  2. 特性
    高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。
    • 可扩展性:kafka集群支持热扩展
    持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
    容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
    • 高并发:支持数千个客户端同时读写
  3. Kafka中术语的关系及介绍
    Producer 消息生产者,就是向kafka broker发消息的客户端;
    Consumer消息消费者,向kafka broker取消息的客户端;
    Topic可以理解为一个队列;
    Consumer Group (CG)这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个topic可以有多个CG。topic的消息会复制(不是真的复制,是概念上的)到所有的CG,但每个partion只会把消息发给该CG中的一个consumer。如果需要实现广播,只要每个consumer有一个独立的CG就可以了。要实现单播只要所有的consumer在同一个CG。用CG还可以将consumer进行自由的分组而不需要多次发送消息到不同的topic;
    Broker 一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic;
    Partition为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。partition中的每条消息都会被分配一个有序的id(offset)。kafka只保证按一个partition中的顺序将消息发给consumer,不保证一个topic的整体(多个partition间)的顺序。
    Offsetkafka的存储文件都是按照offset.kafka来命名,用offset做名字的好处是方便查找。例如你想找位于2049的位置,只要找到2048.kafka的文件即可。当然the first offset就是00000000000.kafka
二、Zookeeper安装
  1. 因为 Kafka 需要 Zookeeper 和 jdk1.8 的支持才能启动,所以安装 Kafka 之前安装 Zookeeper和 jdk1.8
  2. 单机安装
    a. 关闭Linux(CentOS6.X版本)的防火墙
    永久关闭防火墙:chkconfig iptables off
    临时关闭防火墙:service iptables stop
    b. 解压Zookeeper的安装包:tar -xvf zookeeper-3.4.8
    c. 进入conf目录中:cd zookeeper-3.4.8/conf
    d. 将conf目录下的zoo_sample.cfg文件复制为zoo.cfg。
    Zookeeper在启动的时候会自动寻找zoo.cfg,根据其中的配置来启动服务
    cp zoo_sample.cfg zoo.cfg
    e. 编辑zoo.cfg文件:vim zoo.cfg
    f. 修改其中的属性dataDir,指定数据的存储目录
    dataDir=/home/software/zookeeper-3.4.8/tmp
    g. 进入bin目录中启动
    执行zkServer.sh文件,来启动Zookeeper服务器端:sh zkServer.sh start
    执行zkCli.sh文件,来启动进入Zookeeper客户端:sh zkCli.sh
    h. 查看服务器端状态:sh zkServer.sh status,如果出现了Standalone,说明启动成功
三、安装Kafka
  1. 解压 tar -xvf kafka_2.11-1.0.0.tgz

  2. 改名 mv kafka_2.11-1.0.0 kafka

  3. 进入config目录中对server.properties进行配置

    broker.id=1(集群之间编号不能重复)节点的id
    log.dirs=/home/software/kafka/kafka-logs数据的存储路径
    zookeeper.connect=192.168.40.136:2181,192.168.40.135:2181,192.168.40.138:2181三台虚拟机的名称
    delete.topic.enable=true是否能真正删除主题
  4. 在kafka目录下创建目录kafka-logs
    mkdir kafka-logs

  5. 启动
    a. 先启动Zookeepe sh zkServer.sh start
    b. 再启动Kafka
    sh kafka-server-start.sh ../config/server.properties

四、Kafka的使用
  1. 创建自定义的topic
    在bin目录下执行:
    sh kafka-topics.sh --create --zookeeper 192.168.40.136:2181 --replication-factor 1 --partitions 1 --topic enbook
    注:副本数量要小于等于节点数量
  2. 查看所有的topic
    执行:sh kafka-topics.sh --list --zookeeper 192.168.40.136:2181
  3. 启动producer生产者
    执行:sh kafka-console-producer.sh --broker-list 192.168.40.136:9092,192.168.40.136:9092,192.168.40.136:9092 --topic enbook
  4. 启动consumer消费者
    执行:sh kafka-console-consumer.sh --zookeeper 192.168.40.136:2181 --topic enbook --from-beginning
    当我用上面的命令启动消费者的时候报错,因为kafka版本比较高,所以用以下命令
    sh kafka-console-consumer.sh --bootstrap-server 192.168.40.136:2181 --topic enbook --from-beginning
  5. 删除topic指令:
    进入bin目录,执行:sh kafka-topics.sh --delete --zookeeper 192.168.40.136:2181 --topic enbook
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka安装使用可以分为以下几个步骤: 1. 下载和解压缩Kafka 首先,你需要从Kafka官方网站下载Kafka的二进制文件。解压缩下载的文件到你选择的目录。 2. 配置Kafka 进入Kafka解压缩后的目录,找到`config`文件夹。在该文件夹中,你可以找到一些配置文件,其中最重要的是`server.properties`文件。你可以使用文本编辑器打开该文件,并根据你的需求进行配置。至少需要配置以下几个参数: - `listeners`:指定Kafka监听的地址和端口号。 - `log.dirs`:指定Kafka存储日志文件的目录。 - `zookeeper.connect`:指定Zookeeper的地址和端口号。 3. 启动Zookeeper 在Kafka安装目录中,找到`bin`文件夹,然后执行以下命令启动Zookeeper: ```shell ./zookeeper-server-start.sh ../config/zookeeper.properties ``` 4. 启动Kafka 在同样的`bin`文件夹中,执行以下命令启动Kafka服务器: ```shell ./kafka-server-start.sh ../config/server.properties ``` 5. 创建Topic 在Kafka安装目录中,找到`bin`文件夹,然后执行以下命令创建一个名为`mytopic`的Topic: ```shell ./kafka-topics.sh --create --topic mytopic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 ``` 6. 发送和接收消息 使用以下命令发送消息到`mytopic` Topic: ```shell ./kafka-console-producer.sh --topic mytopic --bootstrap-server localhost:9092 ``` 使用以下命令从`mytopic` Topic接收消息: ```shell ./kafka-console-consumer.sh --topic mytopic --bootstrap-server localhost:9092 --from-beginning ``` 这样,你就完成了Kafka安装使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值