`
shifulong
  • 浏览: 59267 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

kafka quick start

阅读更多

Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写

 

kafka是基于zookeeper的,在启动kafka之前要先启动zookeeper,kafka默认自带zookeeper,不需要自带的可以自行安装。

 

1.下载安装

官网下载,解压到 /usr/local下

 

shifulong kafka_2.9.1-0.8.2.2$ pwd
/usr/local/kafka_2.9.1-0.8.2.2
 
shifulong kafka_2.9.1-0.8.2.2$ ll
total 32
drwxr-xr-x@   8 shifulong  staff    272 10 12 10:37 ./
drwxrwxr-x   23 root       admin    782 10 12 10:17 ../
-rw-r--r--@   1 shifulong  staff  11358  9  3 09:34 LICENSE
-rw-r--r--@   1 shifulong  staff    162  9  3 09:34 NOTICE
drwxr-xr-x@  21 shifulong  staff    714  9  3 09:44 bin/
drwxr-xr-x@  12 shifulong  staff    408 10 15 14:16 config/
drwxr-xr-x@  18 shifulong  staff    612  9  3 09:44 libs/
drwxr-xr-x  125 shifulong  staff   4250 10 15 14:03 logs/

 

 

2.启动zookeeper 

shifulong kafka_2.9.1-0.8.2.2$ bin/zookeeper-server-start.sh config/zookeeper.properties 

 

 

3.启动kafka

由于到单机模拟4台kafka,需要启动4个server

config/server.properties 拷贝四分,做如下修改 

broker.id全局唯一,从0开始

 

config/server.properties:  //默认配置
    broker.id=0
    port=9093
    log.dir=/tmp/kafka-logs-1
 
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
 
config/server-3.properties:
    broker.id=3
    port=9095
    log.dir=/tmp/kafka-logs-3

 

启动4个broker

shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server.properties 
shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server-1.properties 
shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server-2.properties 
shifulong kafka_2.9.1-0.8.2.2$ bin/kafka-server-start.sh config/server-3.properties 

 

 

4.创建topic

  • 1.假设实验环境中Kafka集群只有一个broker,log.dirs=/tmp/kafka-logs
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 4 --topic test_single_broker

执行完创建命令后,在/tmp/kafka-logs 目录下 会自动创建四个partition,以topic名称+编号命名(从0开始)

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:36 test_single_broker-0/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:36 test_single_broker-1/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:36 test_single_broker-2/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:36 test_single_broker-3/

 

  • 2.假设实验环境中Kafka集群只有4个broker,
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 5 --topic test_multi_broker

 

/tmp/kafka-logs 目录下

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:43 test_multi_broker-2/

 

/tmp/kafka-logs-1 目录下

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:43 test_multi_broker-3/

 

/tmp/kafka-logs-2 目录下

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:43 test_multi_broker-0/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:43 test_multi_broker-4/

 

/tmp/kafka-logs-3 目录下

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:43 test_multi_broker-1/

上面的测试证明了如下问题

在集群环境中通一个topic的多个partition的均匀的在每个broker上创建,

 

  • 3.多broker 并且 replication-factor > 1 的情况

与上面的例子不同的是,--replication-factor 2的参数是2(创建1个副本)

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 5 --topic test_multi_replication_topic

/tmp/kafka-logs

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-2/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-3/

 

/tmp/kafka-logs-1

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-0/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-3/

 

/tmp/kafka-logs-2

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-0/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-1/

 

/tmp/kafka-logs-3

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-1/

drwxr-xr-x   4 shifulong  wheel  136 10 15 14:54 test_multi_repli_topic-2/

可以看到每个partition创建了2此在不同的broker上

并且创建是有一定规律的

有一篇较为详细的博客介绍分配的规则:

Kafka集群partition replication自动分配分析   http://blog.csdn.net/lizhitao/article/details/41778193

 

5.发消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_multi_replication_topic 

 

6.消费消息

 

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test_multi_replication_topic --from-beginning
 

 

 

 

分享到:
评论

相关推荐

    Apache Kafka Quick Start Guide-Packt Publishing(2018)

    Apache Kafka Quick Start Guide-Packt Publishing(2018),epub格式,欢迎下载

    CENTOS+KAFKA+GOLANG

    - **官方文档**:[Kafka Quick Start](http://kafka.apache.org/documentation.html#quickstart) - **启动 Zookeeper 服务器**:`bin/zookeeper-server-start.sh config/zookeeper.properties` - **启动 Kafka ...

    Apache Hadoop 3 Quick Start Guide

    You will then learn about the Hadoop ecosystem, and tools such as Kafka, Sqoop, Flume, Pig, Hive, and HBase. Finally, you will look at advanced topics, including real time streaming using Apache Storm...

    kafka学习文档

    kafka 的分布式搭建,quick start:《kafka 分布式环境搭建》 关亍 kafka 的实现细节,返主要就是讲 design 的部分:《细节上》、《细节下》 关亍 kafka 开収环境,scala 环境的搭建:《开収环境搭建》 数据生产者...

    apache-kafka-documentation.pdf

    快速入门(Quick Start)部分则会提供简单的步骤来启动和运行Kafka,让使用者快速了解和使用Kafka。 软件生态(Ecosystem)部分讲述了Kafka与其它组件如ZooKeeper、Kafka Connect和Kafka Streams等的关系与功能。...

    kafka官方文档-中文

    #### 1.3 Quick Start 快速入门通常包括以下几个步骤: 1. **安装 Kafka**:下载并安装 Kafka 软件包。 2. **启动集群**:启动 ZooKeeper 和 Kafka 服务。 3. **创建主题**:使用 `kafka-topics.sh` 命令创建一个或...

    Apache Kafka 0.9.0说明文档

    3. **快速入门 (Quick Start)**:快速启动Kafka涉及下载和配置Kafka,启动Zookeeper(Kafka的依赖),然后启动Kafka服务器。接着,创建主题,编写生产者和消费者程序来发送和接收消息。在Java、Python或Scala等语言...

    go-stash是一个高效的从Kafka获取,根据配置的规则进行处理,然后发送到ElasticSearch集群的工具。-Golang开发

    Quick Start gostash -f etc/config.json config.json示例如下: { "Input": { "Kafka": { "Name": "gostash", "Brokers": [ "172.16.186.16:19092", "172.16.186.17:19092" ], "Topic": "k8slog...

    quick-guide:快速技术指南

    可用脚本在项目目录中,可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。npm test 在交互式监视模式下启动测试运行...

    flink-local-train:flink入门到项目实践

    Flink从入门到项目实践 Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,提供支持流处理和批处理两种类型应用的功能。...Quick Start 在数据处理领域,WordCount就是HelloWorld。Fl

    spring-boot-reference.pdf

    10.2.6. Quick-start Spring CLI Example 10.3. Upgrading from an Earlier Version of Spring Boot 11. Developing Your First Spring Boot Application 11.1. Creating the POM 11.2. Adding Classpath ...

Global site tag (gtag.js) - Google Analytics