Samza文档翻译 : Concepts
此页介绍啊Samza的一些高层级概念。
Streams
Samza处理Streams(流)。流由同一类型的不可变的消息组成。例如,一个流可以是对一个网站的所有点击,或者对一个数据库表的所有更新,或者一个服务产生的所有日志,或者其它类型的消息数据。消息可以被追加到一个流上或者从一个流读出来。一个流可以有任意数量的消费者,并且从一个流读消息并不会把消息从其中删除(所有每息都可以有效地广播到其它消费者)。消息可以有选择地拥有一个相关连的key用做分区partitioning,分区的问题接下来会提到。
Samza支持实现了流这种抽象的pluggable系统:对Kafka,一个流就是一个topic,对于数据库,我们可以消费对一个数据表的更新从而得到一个流,对Hadoop我们可以tail HDFS中的一个目录下的文件。

Jobs
一个Samza job是一些代码,它们用来对一些输入流做逻辑转换,然后把输出的消息追加到一些输出流里。
如果我们不关心可扩展性,我们就只需要streams和jobs。但是,为了扩展流处理器stream processor的吞吐量,我们把streams和jobs切成更小的并行工作的单元:partitions和tasks.
Partitions
每个流被分成一个或更多分区。流中的每个分区都是一个有序的消息序列。
序列中的每条消息都有一个叫做offset的标识,offset在每个partition中是唯一的。offset可以是连续的整数,字节偏移量,或者依赖于底层系统的字符串。
当一个消息被附加到一个流上,它被附加到这个流的一个分区里。从消息到分区的分配由消息生成者提供的一个key来完成。例如,如果用户ID被用来做key,那么就可以使得一个用户相关的所有消息都被送到同一个分区里。

Tasks
一个job通过分成多个task来扩展。task是job并行执行的单元,就像partition是stream的并行单元。每个task消费这个job的一系列输入流中每一个流的一个分区。
一个task从它的每一个输入分区中顺序处理消息,按照message的offset的顺序。在partition之间没有确定的顺序。这使得每个task可以独立操作。YARN调度器把每个task分配到机器,所以每个job做为一个整体被分布到多台机器上。
job里边task的数量由输入的parition的数量决定(不能有比输入的partition更多的task, 否则会有一些task没有输入)。你可以调整分配给一个job的计算资源(内存大小 、 CPU的核数,等)来满足job的需要。详见下边对container的描述。
task和partition之间的分配永远不会改变:如果某个机器上的task失败了,这个task会在别的地方重启,它还会继续消费同样的流的分区。

Dataflow Graphs
我们可以把多个job组在一起来创建一个dataflow graph。这个数据流图中,节点是包含了数据的stream,边是进行转换的jobs。这种组合完全通过job的输入输出流来实现。这些job的其它方面是完全解耦合的:它们不需要由同样的代码基础实现,并且对下游job的增加、移除、重启都不会影响上游的job。
这些graph通常都是无环的——数据通常不是从一个job出来,经过其它的job,回到它自己。但是,如果你需要,也可以创建有环图。

Containers
partition和task都是并行的逻辑单元,它们并不和任何对计算资源(CPU、内存、磁盘空间等)的特定分配有关。Container是物理并行的单元,一个container本质上是一个Unix进程(或Linux cgroup)。每个container运行一个或多个tasks。task的数目由输入的partition 的数目自动决定,并且是固定的。但是container的数量(以及与其相关联的CPU和存储资源)由用户在运行时指定的,并且任何时候都可以改变。
下一节 Architecture
Samza文档翻译 : Concepts的更多相关文章
- Samza文档翻译 : Comparison Introduction
http://samza.incubator.apache.org/learn/documentation/0.7.0/comparisons/introduction.html 这里有一些使得Sam ...
- Samza文档翻译 : Architecture
http://samza.incubator.apache.org/learn/documentation/0.7.0/introduction/architecture.html Samza由三层组 ...
- Samza文档翻译 : Backgroud
这一页提供了关于流处理的背景知识,描述什么是Samza,以及它为何而生. what is messaging?什么叫消息? 消息系统是用来实现近实时异步计算的一种流行方式.当事件发生时,消息可以被放在 ...
- Flink官网文档翻译
http://ifeve.com/flink-quick-start/ http://vinoyang.com/2016/05/02/flink-concepts/ http://wuchong.me ...
- Apache Samza - Reliable Stream Processing atop Apache Kafka and Hadoop YARN
http://engineering.linkedin.com/data-streams/apache-samza-linkedins-real-time-stream-processing-fram ...
- 我是如何进行Spring MVC文档翻译项目的环境搭建、项目管理及自动化构建工作的
感兴趣的同学可以关注这个翻译项目 . 我的博客原文 和 我的Github 前段时间翻译的Spring MVC官方文档完成了第一稿,相关的文章和仓库可以点击以下链接.这篇文章,主要是总结一下这个翻译项目 ...
- 新书到手 TRANSACTION PROCESSING:CONCEPTS AND TECHNIQUES
新书到手 TRANSACTION PROCESSING:CONCEPTS AND TECHNIQUES Jim Gray大神的著作 本文版权归作者所有,未经作者同意不得转载.
- Hibernate 3.3.2 文档翻译 Day01
Hibernate 3.3.2 文档翻译 翻译人:微冷的雨 第一次书写:2015年11月29日 本人呕心沥血之作,请细心阅读领悟! Day01-1.1 项目描述 微冷的雨翻译:例如,我们将要建立一个可 ...
- Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点
Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...
随机推荐
- jQuery之锚点带动画跳转特效
背景图片为金木研,这是我最爱的一张图. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- C# DateTime格式化
DateTime. ToString() -- :: ToBinary() - ToFileTime() ToFileTimeUtc() ToLocalTime() -- :: ToLongDateS ...
- IOS 图片全屏预览
如果你感觉累,那就对了那是因为你在走上坡路..这句话似乎有点道理的样子,时常提醒自己无论走到哪都不要忘记自己当初为什么出发.有时想想感觉有的东西可以记录一下,就把它记录下来吧,这次想写一下关于单张图片 ...
- C#对象XML序列化
1.Xml序列化操作类 .Net Framework提供了对应的System.Xml.Seriazliation.XmlSerializer负责把对象序列化到XML,和从XML中反序列化为对象. 以下 ...
- [译]JavaScript检测浏览器前缀
原文地址: Detect Vendor Prefix with JavaScript 不管浏览器私有前缀的现状如何,我们还是要与之为伴,并且有时候还需要利用它来做一些事情.这些前缀可以用于CSS(比如 ...
- TransparentBlt函数的使用注意事项
今天客户需要在软件上需要添加一个自己公司的Logo,要求使用镂空透明的形式展现,本来以为很简单的工作没想到在MFC下这么复杂.Logo为BMP格式,白色背景. 以为和在按钮上显示控件差不多,先导入BI ...
- C++ sizeof操作符的用法和strlen函数的区别
摘要:本人首先介绍了C++中sizeof操作符的用法和注意事项,其次对比了和strlen的区别和使用,方便大家在写代码的时候查阅,和面试.笔试的时候复习. 目录: sizeof的用法: sizeof和 ...
- JAVA_SE复习(OOP1)
面向对象编程(一) 一.继承 1. 在类图表示中,使用一个分为三块的矩形表示一个类.矩形的第一块表示类名,第二块描述这个类的属性及属性的数据类型,第三块描述这个类的操作,也就是方法以及返回类型. ...
- Windows远程centos6.5
linux系统:Centos6.5 1.首先确定是不是图形化界面: yum -y groupinstall Desktop "X Window System" chinese-su ...
- httpd配置Gzip压缩
以下设置在 /etc/httpd/conf/httpd.conf 文件末尾加入即可.(不同方式安装的httpd可能主配置文件位置不同,请自行查找) 一.mod_deflate模块:文件压缩 官方文档: ...