您的位置:首页 > 大数据

Kafka技术带你玩转大数据!

2016-09-19 18:03 232 查看
与大数据相关的工具与技术,除了常听到的Hadoop、Spark、R之外,还有一个比较陌生的——Kafka。今天,大圣众包威客平台(www.dashengzb.cn)便来披露Kafka的逆天技术,看看它是怎样玩转大数据的。



一、Kafka在大数据的生态系统中别具价值

作为一种高吞吐量的分布式发布订阅消息系统——ApacheKafka(下称Kafka),它可以处理消费者规模的网站中的所有动作流数据。这些数据,通常是在吞吐量的要求下,通过处理日志和日志聚合等方式来解决的。Kafka补全了像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制;另外,它还可以通过Hadoop的并行加载机制来统一线上和离线的消息处理,实现通过集群机来提供实时的消费。正是这种补全Hadoop“缺陷”的特性,使得Kafka在大数据的生态系统中别具价值。



二、Kafka的应用,增长明显

近几年来,随着大数据产业的蓬勃发展,Kafka的应用也有了明显的增长。包括Uber、Twitter、Netflix、LinkedIn、Yahoo、Cisco、GoldmanSachs等,都逐渐成为了它最新的客户。

以前,以上大部分被提及的公司在最初阶段,总是集成多个专用系统。现在,它们利用Kafka作为数据中转枢纽来实时消费所有类型的数据,使得同份Kafka数据可以被导入到不同的专用系统中。正如下图所示的构架作为流式数据平台,让新系统能通过订阅Kafka,轻易地获取它想要的数据,所以我们可以轻松地引入额外的专用系统,进入到这系统构架中。这正是Kafka的专用系统数据导入特性。

三、Kafka有卓越的特性

Kafka是个高可扩展的生产消费者系统,利用这个系统,用户可以发布大量的消息,同时也能实时订阅消费消息,这也是当前大数据时代企业信息发展的一种特征。



作为一款能在商业硬件上存储高容量的数据而设计的分布式系统,Kafka被设计成能支持多订阅的系统,它的同份发布的数据集能被消费多次。值得一提的是,它有一个很大的优势——天生保存数据到磁盘,在没有性能损耗的条件下,能同时传送消息到实时和批处理消费者手中。另外,Kafka内置的数据冗余,因而可以保障高可用性,以用于关键任务的数据发布消费。Kafka带有卓越的特性。

四、Kafka能实现高吞吐率

正如上文所说,Kafka是需要处理海量消息的分布式消息系统,它的设计初衷就是把所有的消息都写入速度低容量大的硬盘中,以此来换取更强的存储能力。那么,Kafka是怎样实现超高的吞吐率的呢?

1.顺序读写

根据Kafka官方给出的测试数据(Raid-5,7200rpm):顺序I/O:600MB/s,随机I/O:100KB/s,我们可以知道,Kafka顺序读写时不需要硬盘磁头的寻道时间,只需很少的扇区旋转时间,所以速度远快于随机读写。另外,Kafka的消息是不断追加到文件中的,这个特性使Kafka可以充分利用磁盘的顺序读写性能。

2.零拷贝

先让大家看一个简单的文件系统的操作流程。这个程序是工作在用户空间的,而文件和网络socket则属于硬件资源,两者之间有一个内核空间。在操作系统内部,整个过程为:

在Linuxkernel2.2之后出现了一种叫做"零拷贝(zero-copy)"系统调用机制,就是跳过“用户缓冲区”的拷贝,建立一个磁盘空间和内存的直接映射,数据不再复制到“用户态缓冲区”。这样,系统上下文切换减少为2次,提升了一倍的性能。



3.文件分段

Kafka的队列topic被分为了多个区(partition),每个partition又分为多个段(segment),所以一个队列中的消息实际上是保存在N多个片段文件中的。通过这个巧妙的分段方式,使得每次文件操作都是对一个小文件进行操作,所以非常轻便,而且也增加了并行处理的能力。

?4.批量发送

允许进行批量发送消息是Kafka的一大特点——Kafka先将消息缓存在内存中,然后一次请求批量发送出去。比如可以指定缓存的消息达到某个量的时候就发出去,或者缓存了固定的时间后发送出去。这种策略大大减少了服务端的I/O次数。

5.数据压缩

Kafka还支持对消息集合进行压缩——Producer可以通过GZIP或Snappy格式对消息集合进行压缩。压缩的好处就是减少传输的数据量,减轻对网络传输的压力。Producer压缩之后,在Consumer需进行解压。这样做,虽然增加了CPU的工作,但在对大数据处理上,瓶颈便落在了网络上而不是CPU上,总体而言,这是个非常值得的成本。

拥有高吞吐量这种特性,使Kafka在大数据生态系统中扮演着越来越重要的角色。而工具与技术的进步,有反过来促使大数据产业的进步。一个全新的高速发展的未来,正离我们越来越近。

(更多大数据与商业智能领域干货、兼职机会及行业资源分享等请关注大圣众包平台,或添加大圣花花个人微信号(dashenghuaer),拉你入bigdata&BI交流群330648564。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息