一、实时OLAP
### --- 实时OLAP
~~~ Kylin V3.0.0发布了全新的实时OLAP功能,借助新添加的流接收器群集的功能,
~~~ Kylin可以以亚秒级的延迟查询流数据。
~~~ 如果希望以微批量方式(大约10分钟的延迟)接收kafka事件,则可以考虑使用流式构建。
~~~ 这两个功能全部用于 Kafka 数据源,勿混合使用。
### --- 基本概念:Kylin实时OLAP的组件
Kafka Cluster [data source]
Kylin Process [job server/query server/coordinator]
Kylin streaming receiver Cluster [real-time part computation and storage]
HBase Cluster [historical part storage]
Zookeeper Cluster [receiver metadata storage]
MapReduce [distributed computation]
HDFS [distributed storage]
二、实时OLAP架构说明:实时OLAP架构
![](https://i-blog.csdnimg.cn/blog_migrate/027b10db5051ecb3df65837e92c644fb.png)
### --- OLAP组件说明
~~~ # Streaming Coordinator
~~~ Streaming coordinator充当streaming receiver cluster的master node。
~~~ 其主要职责包括:分配/取消分配特定的topic partition给特定的副本集,
~~~ 暂停或继续使用,收集消费速率(每秒消息)等详细信息。
~~~ # Coordinator Cluster
~~~ 为了消除单点故障,我们可以启动多个coordinator程序。
~~~ 当集群具有多个coordinator程序时,zookeeper将选择一个leader。
~~~ 只有leader将回答coordinator客户端的请求,其他进程将成为备用/候选者,因此将消除单点故障。
~~~ # Streaming Receiver
~~~ Streaming Receiver是工作节点。它由Streaming Coordinator管理,其职责如下:
~~~ 摄取(ingest)实时事件
~~~ 在本地构建基本cuboid(如果配置正确,则可以构建更多cuboid)
~~~ 回答查询请求以获取分配给自身的部分数据
~~~ 将本地segment缓存上传到HDFS或在segment状态更改为不可变时将其删除
~~~ # Receiver Cluster
~~~ 所有streaming receiver的集合称为receiver cluster。
~~~ # Replica Set
~~~ Replica Set是一组streaming receivers。
~~~ Replica Set是任务分配的最小单位,
~~~ 这意味着一个Replica Set中的所有receivers都将执行相同的任务(包含相同的主题分区)。
~~~ 当某些receiver意外关闭但所有replica set都具有至少一个可访问的receiver时,
~~~ receiver cluster仍可查询,并且数据不会丢失。