Apache Tajo - Architecture
The following illustration depicts the architecture of Apache Tajo.
The following table describes each of the components in detail.
|S.No.||Component & Description|
Client submits the SQL statements to the Tajo Master to get the result.
Master is the main daemon. It is responsible for query planning and is the coordinator for workers.
Maintains 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.
Master node assigns task to worker nodes. TajoWorker processes data. As the number of TajoWorkers increases, the processing capacity also increases linearly.
Tajo 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.
Manages the resource of the worker node. It decides on allocating requests to the node.
Acts 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 −
It is used to execute a query.
Connects the underlying data storage to Tajo.
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