做有温度的教育!
全国统一咨询热线:400-803-9399
北京
校区
新闻资讯> 技术分享> 【大数据干货】Kafka作为大数据的核心技术,你了解多少?

【大数据干货】Kafka作为大数据的核心技术,你了解多少?

时间:2019-05-06
浏览:420
发布:甲骨文华育兴业
赞:23

Kafka作为大数据最核心的技术,作为一名技术开发人员,如果你不懂,那么就真的“out”了。DT时代的快速发展离不开kafka,所以了解kafka,应用kafka就成为一种必须。

什么是kafka?Kafka是一个分布式流平台,用于发布和订阅记录流。Kafka可以用于容错存储。Kafka将主题日志分区复制到多个服务器。Kafka的设计目的是为了让你的应用能在记录生成后立即就能处理。Kafka的处理速度很快,通过批处理和压缩记录有效地使用IO。Kafka会对数据流进行解耦。Kafka用于将数据流到数据湖、应用和实时流分析系统中。Kafka主要应用于实时信息流的大数据收集或者实时分析(或者两者兼有)。Kafka既可以为内存微服务提供持久性服务,也可以用于向复杂事件流系统和IoT/IFTTT式自动化系统反馈事件。

目前,世界500强企业有三分之一都在使用kafka,而使其如此流行的原因有以下几点:

其一、kafka速度快。

Kafka基于zero copy原则,深度依靠操作系统内核实现快速移动数据,能将数据记录分批处理。这些批次数据可以通过端到端的方式从生产者到文件系统(Kafka主题日志)再到消费者。批处理能实现更高效的数据压缩并减少I / O延迟。Kafka将不可变的提交日志写入连续磁盘,从而避免了随机磁盘访问和磁盘寻道速度慢的问题。Kafka支持增加分区进行横向扩展。它将主题日志分成几百个(可能有数千个)分区分布到数千个服务器。这种方式可以让Kafka承载海量负载。

其二、Kafka支持多语言

客户端和服务器之间的Kafka通信使用基于TCP的线路协议,该协议是版本化和文档化的。Kafka承诺保持对老客户端的向后兼容性,并支持多种语言,包括C#,Java,C,Python,Ruby等多种语言。Kafka生态系统还提供REST代理,可通过HTTP和JSON轻松集成。Kafka还通过Kafka的融合模式注册(ConfluentSchema Registry)支持Avro模式。Avro和模式注册允许客户以多种编程语言制作和读取复杂的记录,并允许记录的变化。

其三、kafka应用广泛

Kafka支持构建实时流数据管道,支持内存微服务(比如actors,Akka,Baratine.io,QBit,reactors,reactive,,Vert.x,RxJava,SpringReactor),支持构建实时流应用程序,进行实时数据分析,转换,响应,聚合、加入实时数据流以及执行CEP。

其四、Kafka可扩展的消息存储

Kafka是一个很好的记录或信息存储系统。Kafka就像一个提交日志存储和复制的高速文件系统。这些特点使Kafka适用于各种应用场合。写入Kafka主题的记录会持久保存到磁盘并复制到其他服务器以实现容错。由于现在磁盘速度快而且相当大,所以这种方式非常有用。Kafka生产者可以等待确认,所以消息是持久的,因为生产者在复制完成之前不会完成写入操作。Kafka磁盘结构可以很好地扩展。磁盘在大批量流式传输时具有非常高的吞吐量。此外,Kafka客户端和消费者可以控制读取位置(偏移量),这允许在出现重要错误(即修复错误和重放)时重播日志等用例。而且,由于偏移量是按照每个消费者群体进行跟踪的,所以消费者可以非常灵活地重播日志。

Kafka可以让合适的数据以合适的形式出现在合适的地方。Kafka的做法是提供消息队列,让生产者单往队列的末尾添加数据,让多个消费者从队列里面依次读取数据然后自行处理。如此便捷的模式,必然使得kafka在各个领域的应用不断的加强。

DT时代,对于kafka的应用将不断的深入,未来不仅仅是世界500强企业会用到kafka,任何一个企业都将使用这一便捷的工具来实现大数据的布局。技术总是在不断的更新和发展,kafka也在不断的更细迭代,相信,未来企业的大数据布局,必将因kafka而更加便捷。

了解更多大数据核心技术记得持续关注小骨头哦!

【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息联系我们,我们将及时沟通与处理。本站内容除非来源注明甲骨文华育兴业,否则均为网友转载,涉及言论、版权与本站无关。

相关推荐

大数据开发

如何设置Spark资源

Spark和YARN管理的两个主要资源是CPU和内存。磁盘和网络I / O也会影响Spark性能,但Spark和YARN都不会主动管理它们。 应用程序中的每个Spark executor都具有相同的固定数量的核心和相同的固定堆大小。使用--executor-cores命令行参数或通过设置spark.executor.cores属性指定核心数。同样,使用--executor-memory参数或spark.executor.memory属性配置堆大小。 cores属性控制执行程序可以运行的并发任务数。例如,为每个执行程序设置--executor-cores 5,同时运行最多五个任务。 memory属性控制Spark可以缓存的数据量,以及用于分组,聚合和join的shuffle数据结构的内存的最大大小。

大数据开发

大数据——分布式文件系统

当数据集的大小超过一台独立的物理计算机的存储能力时,就需要对他进行分区并存储在若干单独的计算机上,管理网络中的跨多台计算机存储的文件系统称为分布式文件系统。当然因为架构与网络之上,所以保证他的正确性也是一项比较大的挑战。

甲骨文华育兴业

缓存击穿、缓存并发和缓存雪崩

缓存击穿、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题。 缓存击穿通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪崩是由缓存同时失效造成的,三种问题都比较典型,也是难以防范和解决的。

大数据开发

MapReduce 数据倾斜原因和解决方案(一)

MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义: 1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。 2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。 3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理。

【AI大数据】2019年AI数据5大趋势 ps使用 大数据 冲刺Java架构师年薪50W

友情链接: 甲骨文华育兴业济南校区 甲骨文华育兴业北京校区 甲骨文华育兴业哈尔滨校区 甲骨文华育兴业长春校区 魔据教育

Copyright ©2016-2019. All Rights Reserved. 京ICP备17018991号-4

网站地图