Cloudera 在为流处理提供综合解决方案方面有着良好的记录。Cloudera 流处理 (CSP) 由 Apache Flink 和 Apache Kafka 提供支持,提供完整的流管理和有状态处理解决方案。在 CSP 中,Kafka 作为存储流媒体底层,Flink 作为核心流处理引擎,支持 SQL 和 REST 接口。CSP 允许开发人员、数据分析师和数据科学家构建混合流数据管道,其中时间是一个关键因素,例如欺诈检测、网络威胁分析、即时贷款批准等。
我们现在推出 Cloudera 流处理社区版 (CSP-CE),它使所有这些工具和技术可供开发人员和任何想要试验它们并了解流处理、Kafka 和朋友、Flink 和 SSB 的人随时可用。
在这篇博文中,我们将介绍 CSP-CE,展示开始使用它是多么容易和快速,并列出一些有趣的示例来说明您可以使用它做什么。
有关 CSP-CE 的完整实践介绍,请查看CSP-CE 文档中的安装和入门指南,其中包含有关如何安装和使用其中包含的不同服务的分步教程。
您还可以加入Cloudera 流处理社区,您可以在其中找到文章、示例和可以提出相关问题的论坛。
1. Cloudera 流处理社区版
CSP 社区版使开发流处理器变得容易,因为它可以直接从您的桌面或任何其他开发节点完成。分析师、数据科学家和开发人员现在可以评估新功能,使用由 Flink 提供支持的 SQL Stream Builder 在本地开发基于 SQL 的流处理器,并在本地开发 Kafka 消费者/生产者和 Kafka Connect 连接器,然后再进行生产。
CSP-CE 是基于 Docker 的 CSP 部署,您可以在几分钟内安装和运行。要启动并运行它,您只需要下载一个小的 Docker-compose 配置文件并执行一个命令。如果您按照安装指南中的步骤进行操作,几分钟后您就可以在笔记本电脑上使用 CSP 堆栈。
安装和启动 CSP-CE 只需一个命令,只需几分钟即可完成。
命令完成后,您的环境中将运行以下服务:
- Apache Kafka :发布/订阅消息代理,可用于跨不同应用程序流式传输消息。
- Apache Flink :支持创建实时流处理应用程序的引擎。
- SQL Stream Builder :运行在 Flink 之上的服务,使用户能够使用 SQL 创建自己的流处理作业。
- Kafka Connect :使大型数据集进出 Kafka 变得非常容易的服务。
- Schema Registry:应用程序使用的模式的中央存储库。
- Stream Messaging Manager (SMM) :全面的 Kafka 监控工具。
在接下来的部分中,我们将更详细地探讨这些工具。
2. Apache Kafka和 SMM
Kafka 是一种分布式可扩展服务,可在应用程序之间实现高效、快速的数据流传输。它是实现事件驱动应用程序的行业标准。
CSP-CE 包括一个单节点 Kafka 服务和 SMM,这使得管理和监控您的 Kafka 服务变得非常容易。使用 SMM,您无需使用命令行来执行主题创建和重新配置等任务、检查 Kafka 服务的状态或检查主题的内容。所有这些都可以通过一个 GUI 方便地完成,该 GUI 为您提供服务的 360 度视图。
在 SMM 中创建主题
列出和过滤主题
监控主题活动、生产者和消费者
3. Flink 和 SQL 流生成器
Apache Flink 是一个强大的现代分布式处理引擎,能够以极低的延迟和高吞吐量处理流数据。它是可扩展的,并且 Flink API 非常丰富和富有表现力,原生支持许多有趣的特性,例如,exactly-once 语义、事件时间处理、复杂事件处理、有状态应用程序、窗口聚合和支持处理迟到的数据和乱序事件。
SQL Stream Builder 是建立在 Flink 之上的服务,它将 Flink 的强大功能扩展到了解 SQL 的用户。借助 SSB,您可以创建流处理作业,以使用 SQL 查询和 DML 语句分析和操作流数据和批处理数据。
它使用统一的模型来访问所有类型的数据,以便您可以将任何类型的数据连接在一起。例如,可以连续处理来自 Kafka 主题的数据,将这些数据与 Apache HBase 中的查找表连接起来,以实时丰富流数据。
SSB 支持许多不同的源和接收器,包括 Kafka、Oracle、MySQL、PostgreSQL、Kudu、HBase 以及任何可通过 JDBC 驱动程序访问的数据库。它还为 Oracle、MySQL 和 PostgreSQL 数据库提供本机源更改数据捕获 (CDC) 连接器,以便您可以在这些数据库发生事务时读取它们并实时处理它们。
SSB 控制台显示查询示例。此查询执行 Kafka 主题与其自身的自联接,以查找来自地理上相距较远的相同用户的事务。它还将这种自连接的结果与存储在 Kudu 中的查找表连接起来,以使用来自客户帐户的详细信息来丰富流数据
SSB 还允许为每个流式传输作业创建物化视图 (MV)。MV 是使用主键定义的,它们为每个键保留最新的数据状态。MV 的内容通过 REST 端点提供,这使得与其他应用程序集成非常容易。
在上一个订单汇总查询上定义一个物化视图,由 order_status 列键控。视图将为 order_status 的每个不同值保留最新的数据记录
定义 MV 时,您可以选择要添加到其中的列,还可以指定静态和动态过滤器
示例展示了从外部应用程序(以 Jupyter Notebook 为例)访问和使用 MV 的内容是多么容易
在 SSB 中创建和启动的所有作业都作为 Flink 作业执行,您可以使用 SSB 对其进行监控和管理。如果您需要获取有关作业执行的更多详细信息,SSB 有一个 Flink 仪表板的快捷方式,您可以在其中访问内部作业统计信息和计数器。
Flink Dashboard 显示 Flink 作业图和指标计数器
4. Kafka Connect
Kafka Connect 是一种分布式服务,可以非常轻松地将大型数据集移入和移出 Kafka。它带有各种连接器,使您能够将来自外部源的数据摄取到 Kafka 中,或者将来自 Kafka 主题的数据写入外部目的地。
Kafka Connect 还与 SMM 集成,因此您可以从 SMM GUI 全面操作和监控连接器部署。要运行新的连接器,您只需选择一个连接器模板、提供所需的配置并进行部署。
部署新的 JDBC Sink 连接器以将数据从 Kafka 主题写入 PostgreSQL 表
无需编码。您只需要在模板中填写所需的配置.
部署连接器后,您可以从 SMM UI 管理和监控它。
SMM 中的 Kafka Connect 监控页面显示所有正在运行的连接器的状态以及它们与 Kafka 主题的关联
您还可以使用 SMM UI 深入了解连接器执行详细信息并在必要时解决问题
5. 无状态的 NiFi 连接器
无状态的 NiFi Kafka 连接器允许您使用大量现有 NiFi 处理器创建 NiFi 流,并将其作为 Kafka 连接器运行,而无需编写任何代码。当现有连接器不能满足您的要求时,您只需在 NiFi GUI 画布中创建一个完全符合您需要的连接器。例如,也许您需要将数据放在 S3 上,但它必须是 Snappy 压缩的 SequenceFile。现有的 S3 连接器可能都不生成 SequenceFile。使用无状态 NiFi 连接器,您可以通过直观地拖放和连接两个原生的 NiFi 处理器轻松构建此流程:CreateHadoopSequenceFile 和 PutS3Object。创建流后,导出流定义,将其加载到无状态 NiFi 连接器中,然后将其部署到 Kafka Connect 中。
用于无状态 NiFi Kafka 连接器的 NiFi 流程
6. Schema Registry
Schema Registry 提供了一个集中的存储库来存储和访问模式。应用程序可以访问模式注册表并查找他们需要用来序列化或反序列化事件的特定模式。Schema 可以在 Ether Avro 或 JSON 中创建,并根据需要进行演变,同时仍为客户端提供一种获取他们需要的特定模式并忽略其余部分的方法。
模式都列在模式注册表中,为应用程序提供集中存储库
7. 结论
Cloudera 流处理是一个功能强大且全面的堆栈,可帮助您实现快速、强大的流应用程序。随着社区版的推出,现在任何人都可以非常轻松地创建 CSP 沙箱来了解 Apache Kafka、Kafka Connect、Flink 和 SQL Stream Builder,并快速开始构建应用程序。
立即下载社区版并在您的本地计算机上开始使用Cloudera 流处理!加入 CSP 社区并获取有关最新教程、CSP 功能和版本的更新,并了解有关流处理的更多信息。
原文作者: André Araújo
原文链接:https://blog.cloudera.com/getting-started-with-cloudera-stream-processing-community-edition/