Apache Samza流处理框架介绍——kafka+LevelDB的Key/Value数据库来存储历史消息+?
转自:http://www.infoq.com/cn/news/2015/02/apache-samza-top-project
Apache Samza是一个开源、分布式的流处理框架,它使用开源分布式消息处理系统Apache Kafka来实现消息服务,并使用资源管理器Apache Hadoop YARN实现容错处理、处理器隔离、安全性和资源管理。近日,从Apache官方博客中得知,开源的分布式流处理框架Samza历经18个月的孵化期后终于升级成为Apache的顶级项目。Samza由LinkedIn于2013年9月开源并作为孵化项目贡献给Apache。
LinkedIn的工程部和运营部的高级副总裁Kevin Scott在公布消息的博文中说到:
Samza能够被广泛的使用并成为Apache的顶级项目真是令人兴奋,开发Samza是为了帮助解决LinkedIn流数据处理高性能的挑战,Samza已经成为LinkedIn业务架构的核心部分。
Improve Digital的CTO Garry Turkington在博文中说到:
Improve Digital已经积累了丰富的Samza经验,这使得Improve
Digital使用Samza能够构建出功能强大的流数据处理平台。此外,Samza能够升级成为Apache顶级项目真是太棒了。
Samza非常适用于实时流数据处理的业务(如同Apache Storm),如数据跟踪、日志服务、实时服务等应用,它能够帮助开发者进行高速消息处理,同时还具有良好的容错能力。在Samza流数据处理过程中,每个Kafka集群都与一个能运行Yarn的集群相连并处理Samza作业。Samza的一个简单处理过程如下图所示:

Samza的主要特征如下:
- 简单的API:Samza提供了一个简单基于回调且兼容MapReduce的消息处理API。
- 状态管理:Samza提供了一个基于LevelDB的Key/Value数据库来存储历史数据,从而实现了有状态的消息管理。
- 容错处理:每当集群中的一台机器发生故障时,YARN将会透明地将相关任务迁移到其他机器上。
- 持久性:Samza使用Kafka保证消息的有序处理,并能够持久化到分区,不存在发生消息的丢失的可能。
- 可扩展性:Samza在每个层结构都是可分区和分布式的,Kafka提供了有序、可分区、可追加、容错的流;YARN提供了一个分布式、供Samza运行的容器环境。
- 可插拔/开箱即用:Samza提供了一个可插拔特性的API,该API使得Samza不仅能够使用Kafka和YARN,还能够使用其他的消息系统和执行环境。
- 资源隔离:通过使用YARN实现了对Hadoop安全模型和资源隔离的支持。
LinkedIn、Microsoft、Confluent、Oracle、Hortonworks、Uber和Improve Digital等众多著名公司都在为Samza贡献代码。Samza已在商务智能(BI)、金融服务、医疗保健、安全服务、移动应用、软件开发等行业得到了广泛应用,其用户包括企业移动应用提供商DoubleDutch、欧洲领先的实时广告技术提供商Improve Digital、金融服务公司Jack Henry & Associates、移动商务解决方案提供商MobileAware、基于云的微服务提供商Quantiply、社交媒体商务智能解决方案提供商VinTank等。
此外,实时/流计算框架除了Samza外,还包括Google Dremel、Apache Drill、Apache Storm以及Apache S4等。有兴趣的读者可以通过官方提供的Hello Samza工程尝试下Samza,或者参见Background页面以获得更多关于Samza的信息。读者还可以阅读LinkedIn资深SRE Jon Bringhurst发表的一篇博文,该篇博文主要阐述了LinkedIn是如何利用Samza与Yarn、Kafka进行扩展的,它能够帮助大家深一步地了解Samza。
Apache Samza流处理框架介绍——kafka+LevelDB的Key/Value数据库来存储历史消息+?的更多相关文章
- Spark Streaming,Flink,Storm,Kafka Streams,Samza:如何选择流处理框架
根据最新的统计显示,仅在过去的两年中,当今世界上90%的数据都是在新产生的,每天创建2.5万亿字节的数据,并且随着新设备,传感器和技术的出现,数据增长速度可能会进一步加快. 从技术上讲,这意味着我们的 ...
- Apache流处理框架对比
分布式流处理,类似于MapReduce这样的通用计算模型,但是却要求它能够在毫秒级别或者秒级别完成响应.这些系统可以用DAG表示流处理的拓扑. Points of Interest 在比较不同系统是, ...
- 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 ...
- 在Linux上怎么安装和配置Apache Samza
samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...
- Storm和JStorm(阿里的流处理框架)
本文导读: 1.What——JStorm是什么? 1.1 概述 .2优点 .3应用场景 .4JStorm架构 2.Why——为什么启动JStorm项目?(与storm的区别) .1storm的现状.缺 ...
- 流式计算新贵Kafka Stream设计详解--转
原文地址:https://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653162822&idx=1&sn=8c4611436 ...
- IOS-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 时间:2015-05-06 16:43:34 阅读:533 评论:0 收藏:0 [点我收藏+] ...
- iOS开发-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...
- 流行的9个Java框架介绍: 优点、缺点等等
流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是 ...
随机推荐
- pytho创建二维码简单版
pytho创建二维码简单版 import qrcode aa = qrcode.make("https://github.com/phygerr/") aa.save('C:\Us ...
- 《深入理解Linux网络技术内幕》阅读笔记 --- 路由表
路由表基本概念 1.路由是由多个不同的数据结构的组合来描述的,每个数据结构代表路由信息的不同部分.例如,一个fib_node对应一个单独的子网,一个fib_alias对应一条路由.这样做的原因是只需通 ...
- 【我的Android进阶之旅】推荐一款能提升数十倍效率的Android应用开发助手
一功能介绍 a调试相关 1布局边界 2布局更新 3强制GPU渲染 4GPU渲染 5指针位置 6严格模式 7不保留应用 8不锁定屏幕 9开发者选项 10系统设置 11语言设置 12USB调试 b UI相 ...
- Vue(2)- v-model、局部组件和全局组件、父子组件传值、平行组件传值
一.表单输入绑定(v-model 指令) 可以用 v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定. ...
- Leetcode 之 Combination Sum系列
39. Combination Sum 1.Problem Find all possible combinations of k numbers that add up to a number n, ...
- day9 文件的读取
文件操作 一.打开文件 f = open('歌词.txt','w',encoding='utf-8') # f:文件操作符 文件句柄 文件操作对象 open打开文件是依赖了操作系统提供的途径 操作系统 ...
- 双camera景深计算
https://sanwen8.cn/p/2e41VC5.html 本文系微信公众号<大话成像>,知乎专栏< all in camera>原创文章,转载请注明出处. 接着上一篇 ...
- 解决You have new mail in /var/spool/mail/root提示
终端远程登陆后经常提示You have new mail in /var/spool/mail/root 这个提示是LINUX会定时查看LINUX各种状态做汇总,每经过一段时间会把汇总的信息发送的ro ...
- java/kotlin 读取文件、写入文件
package dh.btb.backend.utils import java.io.*object FileUtil { /** * 创建文件 * @param filePath 文件路径(不要以 ...
- VC++6.0调试简单快捷键
编译——F7 重新编译——Ctrl+F7 设置断点 ——F9 取消断点——F9 删除所有断点——Ctrl+Shift+F9 开始调试——F5 进行下一次调试——F5 停止调试——Shift+F5 逐过 ...