实时流处理学习(三)-Kafka

kafka网站: kafka.apache.org

kafka特性: 发布与订阅   +   数据流高效处理   +   多副本方式存储

kafka架构

  1. producer:生产者
  2. consumer:消费者
  3. broker:篮子
  4. topic:主题(标签),给馒头打标签,A馒头给你吃的,B馒头是给弟弟吃的

kafka中的每一条记录都有:key + value + timestamp

Kafka部署及使用:

  1. 1.单节点单Broker及使用
  2. 2.单节点多Broker及使用
  3. 3.多节点多Broker及使用

安装步骤:

(1)zookeeper,配置系统环境变量 (默认端口2181)

wget archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.7.0.tar.gz

~/.bash_profile

export ZK_HOME=

export PATH=$ZK_HOME/bin:$PATH

(2)cp zoo_sample.cfg zoo.cfg,并在zoo.fg中修改dataDir(数据路径)

(3)启动zookeeper 

zookeeper服务端 ./zkServer.sh start

zookeeper客户端 ./zkCli.sh   可以ls查看(ls /zookeeper/quota)

(4)kafka0.9.0.0 下载解压,并配置/.bash_profile

wget http://mirrors.shu.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz

export KAFKA_HOME=

export PATH=$KAFKA_HOME/bin:$PATH

( 5 ) 配置文件server.properties

  1. broker.id=0//篮子编号
  2. listeners=PLAINTEXT://:9092
  3. host.name=localhost
  4. log.dirs=/tmp/kafka-logs
  5. zookeeper.connect=localhost:2181

(6)启动kafka

sh kafka-server-start.sh $KAFKA_HOME/config/server.properties

(jps -m 查看)

(7)创建topic(与zookeeper打交道)

sh kafka-topics.sh  --create  --zookeeper  localhost:2181  --replication-factor 1 --partitions 1 --topic hellotopic

(8)查看所有topic

sh kafka-topics.sh --list --zookeeper localhost:2181

可用--describe 查看topic的详细信息,指定topic的详细信息

(9)发送消息(与broker打交道)

kafka-console-producer.sh --broker-list  localhost:9092  --topic hellotopic

(10)消费消息(与zookeeper打交道)

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic hellotopic --from-beginning(从头开始消费)

单节点,多broker的创建:

不同配置文件对应不同kafka,就相当于多broke,注意改掉broker.id、端口值、日志位置

-daemon(后台启动)

kafka-topics.sh  --descibe --bootstrap-server localhost:9092

Kafka容错性:

kafka中存在leader、replicas副本以及ISR 活节点的概念。ReplicationFactor为副本系数

kafka  producer

                      request.required.acks  0,1,-1

0:这意味着生产者producer不等待来自broker同步完成的确认继续发送下一条(批)消息。此选项提供最低的延迟但最弱的耐久性保证(当服务器发生故障时某些数据会丢失,如leader已死,但producer并不知情,发出去的信息broker就收不到)。

1:这意味着producer在leader已成功收到的数据并得到确认后发送下一条message。此选项提供了更好的耐久性为客户等待服务器确认请求成功(被写入死亡leader但尚未复制将失去了唯一的消息)。

-1:这意味着producer在follower副本确认接收到数据后才算一次发送完成。

此选项提供最好的耐久性,我们保证没有信息将丢失,只要至少一个同步副本保持存活。

三种机制,性能依次递减 (producer吞吐量降低),数据健壮性则依次递增。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值