zoukankan      html  css  js  c++  java
  • Kafka集群环境搭建

    Kafka介绍

    在流式计算中,Kafka一般用来缓存数据Storm通过消费Kafka的数据进行计算。

    KAFKA + STORM +REDIS

    1、Apache Kafka是一个开源消息系统,用Scala写成。

    2、Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。

    3、Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接收者成为Consumer,此外Kafka集群由多个Kafka实例组成,每个实例(server)称为broker。

    4、无论是kafka集群,还是Producer和Consumer都依赖于zookeeper集群保存一些meta信息,来保证系统可用性。

    Kafka 是一个基于分布式的消息发布-订阅系统,它被设计成快速、可扩展的、持久的。与其他消息发布-订阅系统类似,Kafka 在主题当中保存消息的信息。

    生产者向主题写入数据,消费者从主题读取数据。由于 Kafka 的特性是支持分布式,同时也是基于分布式的,所以主题也是可以在多个节点上被分区和覆盖的。

    Kafka 的生产者负责在消息队列中对生产出来的消息保证一定时间的占有,消费者负责追踪每一个主题 (可以理解为一个日志通道) 的消息并及时获取它们。

    Kafka核心组件

    Topic :消息根据Topic进行归类

    Producer:发送消息者,向broker发布消息

    Consumer:消息消费者,从Kafka broker中读取消息的客户端

    broker:每个kafka实例(server)。Kafka集群中包含一个或多个服务器,这个服务器称为broker

    Zookeeper:依赖集群保存meta信息。Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance

    Partition:物理上的概念,每个Topic包含一个或多个Partition

    Consumer Group:每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。

    Kafka拓扑结构:

    Kafka集群部署(前提:先部署好zookeeper集群)

    1、下载安装包

    http://kafka.apache.org/

    2、上传并解压安装包

    tar  -zxvf  /root/kafka_2.11-0.8.2.2.tgz  -C  /export/servers/

    cd  /export/servers/

    ln -s  kafka_2.11-0.8.2.2  kafka

    3、修改配置文件

    vi  /export/servers/kafka/config/server.properties

    配置一下内容:

    4、分发安装包

    scp -r /export/servers/kafka_2.11-0.8.2.2  storm2:/export/servers

    scp -r /export/servers/kafka_2.11-0.8.2.2  storm3:/export/servers

    然后分别在各机器上创建软连

    cd /export/servers/

    ln -s kafka_2.11-0.8.2.2 kafka

    5、再次修改配置文件(重要)

    依次修改各服务器上配置文件的broker.id,分别是0,1,2,不得重复!

    6、启动集群(先启动zookeeper集群)

    依次在每个节点上的/kafka/路径下启动Kafka:

    bin/kafka-server-start.sh  config/server.properties

    Kafka常用操作命令

    • 查看当前服务器中的所有topic

    bin/kafka-topics.sh --list --zookeeper  zk01:2181

    • 创建topic

    ./kafka-topics.sh --create --zookeeper mini1:2181 --replication-factor 1 --partitions 3 --topic first

    • 删除topic

    sh bin/kafka-topics.sh --delete --zookeeper zk01:2181 --topic test

    需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。

    • 通过shell命令发送消息

    kafka-console-producer.sh --broker-list kafka01:9092 --topic itheima

    • 通过shell消费消息

    sh bin/kafka-console-consumer.sh --zookeeper zk01:2181 --from-beginning --topic test1

    • 查看消费位置

    sh kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper zk01:2181 --group testGroup

    • 查看某个Topic的详情

    sh kafka-topics.sh --topic test --describe --zookeeper zk01:2181

  • 相关阅读:
    剑指offer——最小的K个数和数组中第K大的元素
    Leetcode刷题指南链接整理
    160. Intersection of Two Linked Lists
    100. Same Tree
    92. Reverse Linked List II
    94. Binary Tree Inorder Traversal
    79. Word Search
    78,90,Subsets,46,47,Permutations,39,40 DFS 大合集
    0x16 Tire之最大的异或对
    0x16 Tire
  • 原文地址:https://www.cnblogs.com/ahu-lichang/p/6906378.html
Copyright © 2011-2022 走看看