Apache Tajo - Architettura
La figura seguente mostra l'architettura di Apache Tajo.
La tabella seguente descrive in dettaglio ciascuno dei componenti.
S.No. | Componente e descrizione |
---|---|
1 | Client Client invia le istruzioni SQL al Tajo Master per ottenere il risultato. |
2 | Master Master è il demone principale. È responsabile della pianificazione delle query ed è il coordinatore dei lavoratori. |
3 | Catalog server Mantiene la tabella e le descrizioni dell'indice. È incorporato nel daemon Master. Il server di catalogo utilizza Apache Derby come livello di archiviazione e si connette tramite il client JDBC. |
4 | Worker Il nodo principale assegna l'attività ai nodi di lavoro. TajoWorker elabora i dati. Con l'aumentare del numero di TajoWorker, anche la capacità di elaborazione aumenta linearmente. |
5 | Query Master Il master Tajo assegna la query al master delle query. Query Master è responsabile del controllo di un piano di esecuzione distribuito. Avvia TaskRunner e pianifica le attività su TaskRunner. Il ruolo principale del Query Master è monitorare le attività in esecuzione e segnalarle al nodo Master. |
6 | Node Managers Gestisce la risorsa del nodo di lavoro. Decide di allocare le richieste al nodo. |
7 | TaskRunner Agisce come un motore di esecuzione di query locale. Viene utilizzato per eseguire e monitorare il processo di query. Il TaskRunner elabora un'attività alla volta. Ha i seguenti tre attributi principali:
|
8 | Query Executor Viene utilizzato per eseguire una query. |
9 | Storage service Collega l'archivio dati sottostante a Tajo. |
Flusso di lavoro
Tajo utilizza Hadoop Distributed File System (HDFS) come livello di archiviazione e ha il proprio motore di esecuzione delle query invece del framework MapReduce. Un cluster Tajo è costituito da un nodo master e un numero di worker sui nodi del cluster.
Il master è principalmente responsabile della pianificazione delle query e il coordinatore dei lavoratori. Il master divide una query in piccole attività e assegna ai lavoratori. Ogni worker ha un motore di query locale che esegue un grafico aciclico diretto di operatori fisici.
Inoltre, Tajo può controllare il flusso di dati distribuito in modo più flessibile di quello di MapReduce e supporta le tecniche di indicizzazione.
L'interfaccia basata sul web di Tajo ha le seguenti capacità:
- Opzione per scoprire come sono pianificate le query inviate
- Opzione per trovare la modalità di distribuzione delle query tra i nodi
- Possibilità di controllare lo stato del cluster e dei nodi