`
terry0501
  • 浏览: 313655 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Kafka 入门-环境搭建

 
阅读更多

接下来一步一步搭建Kafka运行环境。

Step 1: 下载Kafka

点击下载最新的版本并解压.

> tar -xzf kafka_2.9.2-0.8.1.1.tgz
> cd kafka_2.9.2-0.8.1.1

Step 2: 启动服务

Kafka用到了Zookeeper,所有首先启动Zookper,下面简单的启用一个单实例的Zookkeeper服务。可以在命令的结尾加个&符号,这样就可以启动后离开控制台。
> bin/zookeeper-server-start.sh config/zookeeper.properties &
[2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
...
现在启动Kafka:
> bin/kafka-server-start.sh config/server.properties
[2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
[2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
...

Step 3: 创建 topic

创建一个叫做“test”的topic,它只有一个分区,一个副本。
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
可以通过list命令查看创建的topic:
> bin/kafka-topics.sh --list --zookeeper localhost:2181
test
除了手动创建topic,还可以配置broker让它自动创建topic.

Step 4:发送消息.

Kafka 使用一个简单的命令行producer,从文件中或者从标准输入中读取消息并发送到服务端。默认的每条命令将发送一条消息。

运行producer并在控制台中输一些消息,这些消息将被发送到服务端:
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
This is a messageThis is another message
ctrl+c可以退出发送。

Step 5: 启动consumer

Kafka also has a command line consumer that will dump out messages to standard output.
Kafka也有一个命令行consumer可以读取消息并输出到标准输出:
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
This is a message
This is another message
你在一个终端中运行consumer命令行,另一个终端中运行producer命令行,就可以在一个终端输入消息,另一个终端读取消息。
这两个命令都有自己的可选参数,可以在运行的时候不加任何参数可以看到帮助信息。
 

Step 6: 搭建一个多个broker的集群

刚才只是启动了单个broker,现在启动有3个broker组成的集群,这些broker节点也都是在本机上的:
首先为每个节点编写配置文件:
 
> cp config/server.properties config/server-1.properties
> cp config/server.properties config/server-2.properties
在拷贝出的新文件中添加以下参数:
config/server-1.properties:
    broker.id=1
    port=9093
    log.dir=/tmp/kafka-logs-1
 
config/server-2.properties:
    broker.id=2
    port=9094
    log.dir=/tmp/kafka-logs-2
broker.id在集群中唯一的标注一个节点,因为在同一个机器上,所以必须制定不同的端口和日志文件,避免数据被覆盖。
 
We already have Zookeeper and our single node started, so we just need to start the two new nodes:
刚才已经启动可Zookeeper和一个节点,现在启动另外两个节点:
> bin/kafka-server-start.sh config/server-1.properties &
...
> bin/kafka-server-start.sh config/server-2.properties &
...
创建一个拥有3个副本的topic:
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
现在我们搭建了一个集群,怎么知道每个节点的信息呢?运行“"describe topics”命令就可以了:
> bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:my-replicated-topic       PartitionCount:1        ReplicationFactor:3     Configs:
        Topic: my-replicated-topic      Partition: 0    Leader: 1       Replicas: 1,2,0 Isr: 1,2,0
下面解释一下这些输出。第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只加了一行。
  • leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
  • replicas:列出了所有的副本节点,不管节点是否在服务中.
  • isr:是正在服务中的节点.
在我们的例子中,节点1是作为leader运行。

向topic发送消息:

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
...
my test message 1my test message 2^C 
消费这些消息:
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
...
my test message 1
my test message 2
^C
测试一下容错能力.Broker 1作为leader运行,现在我们kill掉它:
> ps | grep server-1.properties7564 ttys002    0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java...
> kill -9 7564
另外一个节点被选做了leader,node 1 不再出现在 in-sync 副本列表中:
> bin/kafka-topics.sh --describe --zookeeper localhost:218192 --topic my-replicated-topic
Topic:my-replicated-topic       PartitionCount:1        ReplicationFactor:3     Configs:
        Topic: my-replicated-topic      Partition: 0    Leader: 2       Replicas: 1,2,0 Isr: 2,0
虽然最初负责续写消息的leader down掉了,但之前的消息还是可以消费的:
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
...
my test message 1
my test message 2
^C
看来Kafka的容错机制还是不错的。
分享到:
评论

相关推荐

    kafka入门资料

    ### Kafka入门知识点详解 #### 一、概述与系统环境 Kafka是一款强大的分布式消息系统,主要应用于实时数据处理场景。其高效的数据传输能力和高吞吐量特性使其在大数据领域受到广泛青睐。 - **系统环境**:本文档...

    21.消息中间件之Kafka入门讲解(更新)

    **Kafka入门详解** Kafka是一款高性能的消息中间件,由LinkedIn开发并开源,现在是Apache软件基金会的顶级项目。它最初设计的目标是处理实时的...了解其基本概念、快速搭建及消费者组的使用,是掌握Kafka入门的关键。

    kafka入门必备手册

    下面将详细介绍Kafka入门的相关知识点。 **Kafka简介** Kafka是一个分布式流处理平台,它的核心功能是消息队列系统,用于处理大量实时数据的发布和订阅。它被设计为在分布式环境中运行,可以处理高并发的读写请求,...

    Kafka学习笔记.doc

    - 基于Docker的Kafka集群配置:更适用于测试和生产环境,能够快速搭建和扩展集群。 学习Kafka时,应重点掌握其核心概念、消息机制、部署方式以及如何在实际项目中应用。通过实践操作,如创建主题、编写生产者和消费...

    21.消息中间件之Kafka入门讲解

    **Kafka入门详解** Kafka是一款高性能、分布式的消息中间件,最初由LinkedIn开发,后成为Apache顶级项目。它主要用于处理实时数据流,提供高吞吐量的发布订阅服务,同时也支持离线数据处理。在本篇文章中,我们将...

    Kafka入门.pdf

    搭建单节点的Kafka环境涉及几个步骤,首先需要搭建单节点的ZooKeeper,因为Kafka的运行依赖于ZooKeeper的协调功能。搭建ZooKeeper后,需要下载并解压Apache Kafka的二进制包。Kafka的配置和启动步骤会在相关文档中...

    Kafka自学文档 - 带书签

    Kafka集群的搭建分为单机环境和集群环境的部署。单机环境的搭建比较简单,主要用于开发和测试环境。集群环境则需要多个broker协同工作,实现高可用和负载均衡。 文档中还提到了Kafka的主要配置选项。这些配置包括...

    linux kafka+elk7.9.1搭建所需要的的包.rar

    Linux环境下,ELK(Elastic...总结来说,这个压缩包提供了一站式的ELK和Kafka环境搭建方案,适合初学者快速入门或开发者快速部署测试环境。只需按照上述步骤进行操作,就能构建一个功能强大的日志管理和分析平台。

    Kafka从入门到源码分析原理课-视频教程网盘链接提取码下载 .txt

    - **环境搭建**:指导如何安装配置Kafka集群。 - **基本操作**:包括创建topic、发布消息、消费消息等基本命令的使用。 - **故障排查**:常见问题及解决方法汇总。 - **高级特性**:如事务支持、流处理等高级特性的...

    专栏大数据中windows下搭建kafka集群中需要用到的安装包

    在Windows环境下搭建Kafka集群可以帮助开发者在本地环境中快速测试和开发相关的流处理应用。以下是一份详细的步骤指南,帮助你了解如何在Windows上安装并运行Kafka集群。 1. **获取和解压Kafka** 首先,你需要从...

    cp-all-in-one:docker-compose.yml文件,用于cp-all-in-one,cp-all-in-one-community,cp-all-one-cloud

    标签中提到的"quickstart"意味着这可能是针对初学者的一个快速入门教程,帮助用户快速理解和部署Apache Kafka环境。"apache-kafka"明确了这个项目与Apache Kafka,一个分布式流处理平台,密切相关。"Shell"可能是指...

    Kafka急速入门与实战.doc

    - 优秀kafka入门博客:https://blog.csdn.net/hmsiwtv/article/details/46960053 - 博文推荐:《Zookeeper集群搭建》:https://www.cnblogs.com/ysocean/p/9860529.html 此外,实践是检验理论的最好方式,可以通过...

    kafka+spark streaming开发文档

    kafka+Spark Streaming开发文档 ...涵盖了Kafka集群搭建、Spark Streaming配置、Kafka和Spark Streaming的集成、主题创建和消息发送、查看主题状态等内容,旨在帮助开发者快速入门Kafka和Spark Streaming的开发。

    Spring for Apache Kafka.pdf

    通过本篇文档的介绍,我们了解了如何快速搭建环境、发送和接收消息以及如何进行有效的测试。此外,还探讨了Spring Integration Kafka提供的额外集成能力。这些知识点为开发者提供了全面的指导,帮助他们更好地利用...

    Kafka多维度系统精讲,从入门到熟练掌握

    Kafka多维度系统精讲,从入门到熟练掌握视频教程,完整版13章,2020新课。本课从搭建开始,全面剖析Kafka,解读和使用核心API,将底层实现和设计原理融合贯穿,同时结合案例,把原理落地。更有凝结老师心血的Kafka...

    kafka入门介绍

    在安装和使用卡夫卡集群方面,通常需要安装Docker来创建容器环境,配置JDK环境,以及安装Zookeeper作为协调服务。之后通过启动卡夫卡代理(Broker)完成集群的搭建,并进行相关的集群操作。 对于卡夫卡的对比,与...

    Storm流计算项目:1号店电商实时数据分析系统-05.Kafka基础知识和集群搭建.pptx

    01.Storm项目实战课程大纲02.CDH5搭建之CM5安装部署03.CDH5搭建和CM界面化集群管理04.Hadoop、HBase、Zookeeper集群管理和角色分配05.Kafka基础知识和集群搭建06.Kafka基本操作和最优设置07.Kafka Java API 简单开发...

    kafka使用手册

    #### 三、Kafka的分布式环境搭建 **搭建步骤**: 1. **安装JDK**: Kafka 基于 Java 开发,因此首先需要安装 JDK。 2. **下载Kafka**: 可以从 Apache Kafka 官网下载最新版本的 Kafka。 3. **配置环境变量**: 将 ...

    Kafka技术参考手册.docx

    开发Kafka应用需要配置开发环境,包括安装Java、Scala SDK以及Kafka本身。完成环境搭建后,可以按照官方提供的示例代码编写生产者和消费者程序,理解其工作原理。 **日志目录结构** Kafka的数据存储在日志目录下,...

    kafka学习详细文档笔记

    - **配置环境变量**:将Kafka的bin目录添加到PATH环境变量中。 **2、集群环境的搭建部署** - **多台服务器准备**:确保所有参与集群的服务器都已准备好,包括安装好JDK、下载Kafka等。 - **配置Broker**:为每个...

Global site tag (gtag.js) - Google Analytics