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经验,这使得ImproveDigital使用Samza能够构建出功能强大的流数据处理平台。此外,Samza能够升级成为Apache顶级项目真是太棒了。
Samza非常适用于实时流数据处理的业务(如同 Apache Storm ),如数据跟踪、日志服务、实时服务等应用,它能够帮助开发者进行高速消息处理,同时还具有良好的容错能力。在Samza流数据处理过程中,每个Kafka集群都与一个能运行Yarn的集群相连并处理Samza作业。Samza的一个简单处理过程如下图所示:
Samza的主要特征如下:
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。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。