The following illustration depicts the architecture of Apache Tajo.
The following table describes each of the components in detail.
S.No. | Component & Description |
---|---|
1 | ClientClient submits the SQL statements to the Tajo Master to get the result. |
2 | MasterMaster is the main daemon. It is responsible for query planning and is the coordinator for workers. |
3 | Catalog serverMaintains the table and index descriptions. It is embedded in the Master daemon. The catalog server uses Apache Derby as the storage layer and connects via JDBC client. |
4 | WorkerMaster node assigns task to worker nodes. TajoWorker processes data. As the number of TajoWorkers increases, the processing capacity also increases linearly. |
5 | Query MasterTajo master assigns query to the Query Master. The Query Master is responsible for controlling a distributed execution plan. It launches the TaskRunner and schedules tasks to TaskRunner. The main role of the Query Master is to monitor the running tasks and report them to the Master node. |
6 | Node ManagersManages the resource of the worker node. It decides on allocating requests to the node. |
7 | TaskRunnerActs as a local query execution engine. It is used to run and monitor query process. The TaskRunner processes one task at a time.It has the following three main attributes −Logical plan − An execution block which created the task.A fragment − an input path, an offset range, and schema.Fetches URIs |
8 | Query ExecutorIt is used to execute a query. |
9 | Storage serviceConnects the underlying data storage to Tajo. |
Workflow
Tajo uses Hadoop Distributed File System (HDFS) as the storage layer and has its own query execution engine instead of the MapReduce framework. A Tajo cluster consists of one master node and a number of workers across cluster nodes.
The master is mainly responsible for query planning and the coordinator for workers. The master divides a query into small tasks and assigns to workers. Each worker has a local query engine that executes a directed acyclic graph of physical operators.
In addition, Tajo can control distributed data flow more flexible than that of MapReduce and supports indexing techniques.
The web-based interface of Tajo has the following capabilities −
- Option to find how the submitted queries are planned
- Option to find how the queries are distributed across nodes
- Option to check the status of the cluster and nodes