Cloudera流分析(CSA)提供由Apache Flink支持的实时流处理和流分析。在CDP上的Flink提供了具有低延迟的灵活流解决方案,可以扩展到较大的吞吐量和状态。除Flink之外,CSA还包括SQL Stream Builder,可使用对数据流的SQL查询来提供数据分析经验。
Cloudera流分析的主要功能
SQL流生成器
SQL Stream Builder是一个作业管理界面,用于在流上编写和执行Streaming SQL,以及为结果创建持久的数据API。
Cloudera平台
在Cloudera Platform上实施Flink可使您轻松地与运行时组件集成,并通过Cloudera Manager拥有集群和服务管理的所有优势。
流媒体平台
对于流分析,CSA可以集成到一个完整的流平台中,该平台由Cloudera Runtime堆栈中的Apache Kafka、Schema Registry、Streams Messaging Manager增强。
支持的连接器
CSA提供了Kafka、HBase、HDFS、Kudu和Hive作为连接器,可以根据您的应用程序部署的需求进行选择。
监控解决方案
在CSA中,Kafka Metrics Reporter、Streams Messaging Manager和重新设计的Flink仪表板可帮助您监视Flink应用程序并对其进行故障排除。
其他框架
CSA中的日志聚合框架和作业测试器框架还使您能够创建更可靠的Flink应用程序进行生产。
什么是Apache Flink?
Flink是一个分布式处理引擎和一个可伸缩的数据分析框架。您可以使用Flink大规模处理数据流,并通过流式应用程序提供有关已处理数据的实时分析见解。
Flink旨在在所有常见的群集环境中运行,以内存速度和任意规模执行计算。此外,Flink为数据流上的分布式计算提供通信、容错和数据分发。由于Flink具有处理规模,有状态流处理和事件时间的功能,因此许多企业选择Flink作为流处理平台。
Flink的核心功能
架构
任务执行过程的两个主要组件是作业管理器和任务管理器。主节点上的作业管理器启动工作节点。在工作节点上,任务管理器负责运行。任务管理器还可以同时运行多个任务。任务的资源管理由Flink中的作业管理器完成。在Flink群集中,Flink作业作为YARN应用程序执行。HDFS用于存储恢复和日志数据,而ZooKeeper用于对作业进行高可用性协调。
DataStream API
DataStream API用作使用Java或Scala编程语言开发Flink流应用程序的核心API。DataStream API提供了Flink流应用程序的核心构建块:数据流及其上的转换。在Flink程序中,来自源的传入数据流通过定义的操作进行转换,从而导致到接收器的一个或多个输出流。
Operators
Operators将一个或多个DataStream转换为新的DataStream。程序可以将多种转换组合成复杂的数据流拓扑。除了诸如Map、过滤器、聚合之类的标准转换之外,您还可以在Flink运算符中创建窗口并将窗口合并。在数据流上,可以定义一个或多个操作,这些操作可以并行且彼此独立地进行处理。使用窗口功能,可以将不同的计算应用于定义的时间窗口中的不同流,以进一步维护事件的处理。下图说明了数据流的并行结构。
状态和状态后端
有状态的应用程序通过存储和访问多个事件的信息的操作来处理数据流。您可以使用Flink将应用程序的状态本地存储在状态后端中,以确保在访问已处理数据时降低延迟。您还可以创建检查点和保存点,以在持久性存储上对流式应用程序进行容错备份。
事件时间和水印
在时间敏感的情况下,应用程序使用警报或触发功能,区分事件时间和处理时间很重要。为了简化应用程序的设计,您可以基于事件的创建时间或Operator处理事件的时间来创建Flink应用程序。
仅使用事件时间,尚不清楚何时在应用程序中处理事件。要跟踪基于事件时间的应用程序的时间,可以使用水印。
检查点和保存点
可以创建检查点和保存点,以使Flink应用程序在整个管道中容错。Flink包含一个容错机制,该机制可以连续创建数据流的快照。快照不仅包括数据流,还包括附加的状态。如果发生故障,则选择最新快照,然后系统从该检查点恢复。这保证了可以始终保持计算结果的一致性。当检查点由Flink创建和管理时,保存点由用户控制。保存点可以描述为已执行过程的备份。
原文链接:https://docs.cloudera.com/csa/1.3.0/overview/topics/csa-overview.html