大数据是收集、整理、处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称。虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近几年才经历了大规模扩展。在之前的文章中,我们曾经介绍过有关大数据系统的常规概念、处理过程,以及各种专门术语,本文将介绍大数据系统一个最基本的组件:处理框架。处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据。数据的计算则是指从大量单一数据点中提取信息和见解的过程。下文将介绍这些框架:仅批处理框架:
1
Samza是一款优秀的分布式流处理框架,非常像Twitter的流处理系统Storm(即Lambda架构Hadoop+Storm)。不同的是Samza基于Hadoop,而且使用了LinkedIn自家的Kafka分布式消息系统(即Kappa架构Kafka+Samza)。其优势在于:相对于Storm大部分是用Clojure实现的而言,Samza底层的实现语言是Scala和Java,而且代码不到万行,堪称小而美,从而可以更加低成本地去了解其实现,并作扩展和优化。因此,Samza成为越来越流行的流处理首选框架。本教程高屋建瓴,深入浅出,全面地介绍了Samza的基本概念和框架结构,系统地剖析了Samza的运行机理,并从其数据流处理逻辑的角度详解了其主要的API。本教程适合初学者快速入门,能让你在迅速掌握Samza的同时深刻理解流计算系统。
2021-12-25 22:56:05 654KB 大数据 流计算 Samza kafka
1
许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对三种Apache框架分别进行简单介绍,然后尝试快速、高度概述其异同。在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(masternode)分发代码,将任务分配给工作节点(workernode)执行。一个拓扑中包括spout和bolt两种角色,其中spout发送消息,负责将数据流以tuple元组的形式发送出去;而bolt则负责转换这些数据流,在bolt中可以完成计算、过滤等操作,bolt自身也可以随机将数据发送给其他bolt。由spout发射出的tu
1