Apache Tajo - 架构

下图描述了 Apache Tajo 的架构。

架构

下表详细描述了每个组件。

S.No. 组件及描述
1

Client

Client将SQL语句提交给Tajo Master以获取结果。

2

Master

Master 是主要守护进程。 它负责查询规划,并且是工作人员的协调员。

3

Catalog server

维护表和索引描述。 它嵌入在主守护进程中。 目录服务器使用 Apache Derby 作为存储层并通过 JDBC 客户端进行连接。

4

Worker

主节点将任务分配给工作节点。 TajoWorker 处理数据。 随着TajoWorkers数量的增加,处理能力也线性增加。

5

Query Master

Tajo master 将查询分配给 Query Master。 查询主机负责控制分布式执行计划。 它启动 TaskRunner 并将任务安排到 TaskRunner。 Query Master的主要作用是监控正在运行的任务并将其报告给Master节点。

6

Node Managers

管理工作节点的资源。 它决定将请求分配给节点。

7

TaskRunner

充当本地查询执行引擎。 它用于运行和监视查询过程。 TaskRunner 一次处理一个任务。

它有以下三个主要属性 −

  • Logical plan − 创建任务的执行块。
  • A fragment − 输入路径、偏移范围和架构。
  • Fetches URIs − 获取 URI
8

Query Executor

它用于执行查询。

9

Storage service

将底层数据存储连接到Tajo。

工作流程

Tajo使用Hadoop分布式文件系统(HDFS)作为存储层,并拥有自己的查询执行引擎而不是MapReduce框架。 一个Tajo集群由一个master节点和跨集群节点的多个worker组成。

master主要负责查询规划,worker的协调者。 master将查询分成小任务并分配给worker。 每个工作线程都有一个本地查询引擎,用于执行物理运算符的有向无环图。

此外,Tajo可以比MapReduce更灵活地控制分布式数据流,并支持索引技术。

Tajo 基于 Web 的界面具有以下功能 −

  • 用于了解如何计划提交的查询的选项
  • 用于查找查询如何跨节点分布的选项
  • 检查集群和节点状态的选项