随笔分类 -  BI—Kafka

摘要:kafka的log内容格式还不没怎么了解,想快速浏览消息内容的话,除了使用它自带的kafka-console-consumer.sh脚本,还可以直接去看log文件本身,不过内容里有部分二进制字符,通过命令看的话会有乱码。strings 命令可以过滤掉二进制编码,但默认它也会过滤掉中文字符,只留有英文... 阅读全文
posted @ 2015-07-08 10:23 TonyChai 阅读(543) 评论(0) 推荐(0)
摘要:1.topic注册信息/brokers/topics/[topic] :存储某个topic的partitions所有分配信息Schema:{ "version": "版本编号目前固定为数字1", "partitions": { "partitionId编号": [ 同步副本组br... 阅读全文
posted @ 2015-07-07 12:04 TonyChai 阅读(288) 评论(0) 推荐(0)
摘要:为了便于使用,kafka提供了比较强大的Tools,把经常需要使用的整理一下开关kafka Serverbin/kafka-server-start.sh config/server.propertiesbin/kafka-server-stop.shJMX_PORT=9999 nohup bin/... 阅读全文
posted @ 2015-07-07 11:59 TonyChai 阅读(1362) 评论(0) 推荐(0)
摘要:使用Kafka的同学都知道,我们每次创建Kafka主题(Topic)的时候可以指定分区数和副本数等信息,如果将这些属性配置到server.properties文件中,以后调用Java API生成的主题将使用默认值,先改变需要使用命令bin/kafka-topics.sh --zookeeper lo... 阅读全文
posted @ 2015-05-28 16:58 TonyChai 阅读(601) 评论(0) 推荐(0)
摘要:摘要 Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系... 阅读全文
posted @ 2015-05-27 14:46 TonyChai 阅读(481) 评论(0) 推荐(0)
摘要:摘要 Kafka是由LinkedIn开发并开源的分布式消息系统,因其分布式及高吞吐率而被广泛使用,现已与Cloudera Hadoop,Apache Storm,Apache Spark集成。本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比。并介绍了Kafka... 阅读全文
posted @ 2015-05-27 14:43 TonyChai 阅读(309) 评论(0) 推荐(0)
摘要:参考官网site:http://kafka.apache.org/documentation.html#basic_ops_cluster_expansionhttps://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Rep... 阅读全文
posted @ 2015-05-25 17:39 TonyChai 阅读(1210) 评论(0) 推荐(0)
摘要:学习Kafka的读书笔记,暂未把文章设为翻译类型,因为并非直译文档。水平有限,还请路过高手指正。 “最多(发送)一次”(At most once):消息可以丢失但绝不会重新发送; “至少(发送)一次”(At least once):消息绝不会丢失但是可能会被重新发送; “仅(发送)一次”(Exact... 阅读全文
posted @ 2015-05-25 16:39 TonyChai 阅读(850) 评论(0) 推荐(0)
摘要:总结下自己在尝试Kafka分区迁移过程中对这部分知识的理解,请路过高手指正。关于Kafka数据迁移的具体步骤指导,请参考如下链接:http://www.cnblogs.com/dycg/p/3922352.html原文作者写的非常清晰。本文主要侧重自己对相关Kafka源代码的理解:generateA... 阅读全文
posted @ 2015-05-25 16:37 TonyChai 阅读(746) 评论(0) 推荐(0)
摘要:先解释下两个概念:high watermark (HW) 它表示已经被commited的最后一个message offset(所谓commited, 应该是ISR中所有replica都已写入),HW以下的消息都已被ISR中各个replica同步,从而保持一致。HW以上的消息可能是脏数据:部分repl... 阅读全文
posted @ 2015-05-25 16:31 TonyChai 阅读(1226) 评论(0) 推荐(0)
摘要:1.ProducerRecord 含义:发送给Kafka Broker的key/value值对2.内部数据结构:-- Topic(名字)-- PartitionID (可选)-- Key[(可选)-- Value3.生产者记录(简称PR)的发送逻辑: 若指定Partition ID,则PR被发送至指... 阅读全文
posted @ 2015-05-25 16:24 TonyChai 阅读(2343) 评论(0) 推荐(0)
摘要:消息格式消息由一个固定长度的头部和可变长度的字节数组组成。头部包含了一个版本号和CRC32校验码。[plain]view plaincopy/***具有N个字节的消息的格式如下**如果版本号是0**1.1个字节的"magic"标记**2.4个字节的CRC32校验码**3.N-5个字节的具体信息**如... 阅读全文
posted @ 2015-01-18 11:11 TonyChai 阅读(465) 评论(0) 推荐(0)
摘要:Kafka Producer APIs旧版的Procuder API有两种:kafka.producer.SyncProducer和kafka.producer.async.AsyncProducer.它们都实现了同一个接口:[java]view plaincopyclassProducer{/*将... 阅读全文
posted @ 2015-01-18 11:10 TonyChai 阅读(636) 评论(0) 推荐(0)
摘要:Kafka允许topic的分区拥有若干副本,这个数量是可以配置的,你可以为每个topci配置副本的数量。Kafka会自动在每个个副本上备份数据,所以当一个节点down掉时数据依然是可用的。Kafka的副本功能不是必须的,你可以配置只有一个副本,这样其实就相当于只有一份数据。创建副本的单位是topic... 阅读全文
posted @ 2015-01-18 11:09 TonyChai 阅读(3414) 评论(0) 推荐(0)
摘要:Kafka Producer消息发送producer直接将数据发送到broker的leader(主节点),不需要在多个节点进行分发。为了帮助producer做到这点,所有的Kafka节点都可以及时的告知:哪些节点是活动的,目标topic目标分区的leader在哪。这样producer就可以直接将消息... 阅读全文
posted @ 2015-01-18 11:08 TonyChai 阅读(813) 评论(0) 推荐(0)
摘要:Kafka在提高效率方面做了很大努力。Kafka的一个主要使用场景是处理网站活动日志,吞吐量是非常大的,每个页面都会产生好多次写操作。读方面,假设每个消息只被消费一次,读的量的也是很大的,Kafka也尽量使读的操作更轻量化。我们之前讨论了磁盘的性能问题,线性读写的情况下影响磁盘性能问题大约有两个方面... 阅读全文
posted @ 2015-01-16 11:07 TonyChai 阅读(370) 评论(0) 推荐(0)
摘要:之前讨论了consumer和producer是怎么工作的,现在来讨论一下数据传输方面。数据传输的事务定义通常有以下三种级别:最多一次:消息不会被重复发送,最多被传输一次,但也有可能一次不传输。最少一次:消息不会被漏发送,最少被传输一次,但也有可能被重复传输.精确的一次(Exactly once):不... 阅读全文
posted @ 2015-01-16 11:06 TonyChai 阅读(1141) 评论(0) 推荐(0)
摘要:Kafka大量依赖文件系统去存储和缓存消息。对于硬盘有个传统的观念是硬盘总是很慢,这使很多人怀疑基于文件系统的架构能否提供优异的性能。实际上硬盘的快慢完全取决于使用它的方式。设计良好的硬盘架构可以和内存一样快。在6块7200转的SATA RAID-5磁盘阵列的线性写速度差不多是600MB/s,但是随... 阅读全文
posted @ 2015-01-16 11:05 TonyChai 阅读(334) 评论(0) 推荐(0)
摘要:上篇文章中我们搭建了kafka的服务器,并可以使用Kafka的命令行工具创建topic,发送和接收消息。下面我们来搭建kafka的开发环境。添加依赖搭建开发环境需要引入kafka的jar包,一种方式是将Kafka安装包中lib下的jar包加入到项目的classpath中,这种比较简单了。不过我们使用... 阅读全文
posted @ 2015-01-15 11:04 TonyChai 阅读(451) 评论(0) 推荐(0)
摘要:接下来一步一步搭建Kafka运行环境。Step 1: 下载Kafka点击下载最新的版本并解压.> tar -xzf kafka_2.9.2-0.8.1.1.tgz> cd kafka_2.9.2-0.8.1.1Step 2: 启动服务Kafka用到了Zookeeper,所有首先启动Zookper,下... 阅读全文
posted @ 2015-01-15 11:03 TonyChai 阅读(256) 评论(0) 推荐(0)