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的主要特征如下:
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。