系统架构
PALO 拥有非常简洁优雅的系统架构。其核心组件仅包括两类有状态的组件和一个可选的无状态组件。而在使用百度智能云托管的PALO服务时,额外搭配一个前端控制台用于进行一些集群管理操作。
架构示意图
如上图所示,中间部分既是PALO的核心组件,主要包括以下几个模块:
-
Leader Node
Leader Node也被称作Frontend(FE)。在其他文档中,这些名称指代的都是同一个组件。Leader Node主要负责用户请求连接的接入、元数据的存储和管理、查询语句的解析和查询计划的生成、集群节点状态管理,以及各类用户提交的和系统内部的作业任务调度。
Leader Node内置了MySQL协议层和Http Server。用户可以根据操作的不同,选择不同的协议连接到Leader Node。同时,Leader Node还自带了一个UI界面。用户可以在前端控制台页面右上角的PALO UI按钮点击进入。
一个PALO集群内的Leader Node通常为1个或3个。当数量为3时,Leader Node会自动组成一个节点组来保证组件的高可用。
-
Compute Node
Compute Node也被称作Backend(BE)。在其他文档中,这些名称指代的都是同一个组件。Compute Node主要负责查询计划的执行,以及数据的存储和管理。Compute Node可以由1个或多个节点共同组成节点组,PALO集群的整体算力和存储容量,和Compute Node的节点数量成正比。
Leader Node和Compute Node之间通过RPC进行交互。
-
Broker
Broker 是一个无状态的进程。其主要是帮助PALO以类Unix文件系统接口的方式,访问外部数据源如百度对象存储(BOS)或HDFS上的数据。比如应用于数据导入或者数据导出操作中。
在百度智能云托管的PALO集群中,默认会安装这个组件,您可以通过使用MySQL协议连接到PALO集群后,执行
SHOW BROKER
命令查看。而在私有化部署场景下,该组件可以是一个可选的组件。