Impala - Arquitetura

Impala é um mecanismo de execução de consulta MPP (Massive Parallel Processing) que é executado em vários sistemas no cluster Hadoop. Ao contrário dos sistemas de armazenamento tradicionais, o impala é desacoplado de seu mecanismo de armazenamento. Ele tem três componentes principais, a saber, Impala daemon (Impalad) , Impala Statestore e metadados ou metastore do Impala.

Impala daemon ( Impalad )

Daemon Impala (também conhecido como impalad) é executado em cada nó onde o Impala está instalado. Ele aceita as consultas de várias interfaces, como impala shell, hue browser, etc. ... e as processa.

Sempre que uma consulta é submetida a um impalad em um nó específico, esse nó serve como um “coordinator node”Para essa consulta. Várias consultas são atendidas pelo Impalad em execução em outros nós também. Depois de aceitar a consulta, o Impalad lê e grava em arquivos de dados e paraleliza as consultas distribuindo o trabalho para os outros nós do Impala no cluster Impala. Quando as consultas estão sendo processadas em várias instâncias do Impalad , todas elas retornam o resultado para o nó de coordenação central.

Dependendo do requisito, as consultas podem ser enviadas para um Impalad dedicado ou de maneira balanceada para outro Impalad em seu cluster.

Impala State Store

O Impala tem outro componente importante chamado armazenamento de estado do Impala, que é responsável por verificar a integridade de cada Impalad e, em seguida, retransmitir a integridade de cada daemon do Impala para os outros daemons com frequência. Isso pode ser executado no mesmo nó onde o servidor Impala ou outro nó dentro do cluster está sendo executado.

O nome do processo daemon de armazenamento do Impala State é State stored . O Impalad relata seu status de integridade ao daemon de armazenamento de estado do Impala, ou seja, estado armazenado .

No caso de uma falha de nó devido a qualquer motivo, o Statestore atualiza todos os outros nós sobre essa falha e, uma vez que tal notificação esteja disponível para o outro impalad , nenhum outro daemon Impala atribui qualquer outra consulta ao nó afetado.

Metadados da Impala e Meta Store

Os metadados e meta store do Impala são outro componente importante. O Impala usa bancos de dados MySQL ou PostgreSQL tradicionais para armazenar definições de tabela. Os detalhes importantes, como tabela e informações de coluna e definições de tabela, são armazenados em um banco de dados centralizado conhecido como meta store.

Cada nó do Impala armazena em cache todos os metadados localmente. Ao lidar com uma quantidade extremamente grande de dados e / ou muitas partições, obter metadados específicos da tabela pode levar um tempo significativo. Portanto, um cache de metadados armazenado localmente ajuda a fornecer essas informações instantaneamente.

Quando uma definição de tabela ou os dados da tabela são atualizados, outros daemons do Impala devem atualizar seu cache de metadados, recuperando os metadados mais recentes antes de emitir uma nova consulta na tabela em questão.

Interfaces de processamento de consulta

Para processar consultas, o Impala fornece três interfaces conforme listado abaixo.

  • Impala-shell - Depois de configurar o Impala usando o Cloudera VM, você pode iniciar o shell do Impala digitando o comando impala-shellno editor. Discutiremos mais sobre o shell Impala nos próximos capítulos.

  • Hue interface- Você pode processar consultas do Impala usando o navegador Hue. No navegador Hue, você tem o editor de consulta Impala, onde pode digitar e executar as consultas impala. Para acessar este editor, em primeiro lugar, você precisa fazer o login no navegador Hue.

  • ODBC/JDBC drivers- Assim como outros bancos de dados, o Impala fornece drivers ODBC / JDBC. Usando esses drivers, você pode se conectar ao impala por meio de linguagens de programação que suportam esses drivers e criar aplicativos que processam consultas no impala usando essas linguagens de programação.

Procedimento de execução de consulta

Sempre que os usuários passam uma consulta usando qualquer uma das interfaces fornecidas, isso é aceito por um dos Impalads no cluster. Este Impalad é tratado como um coordenador dessa consulta específica.

Após receber a consulta, o coordenador da consulta verifica se a consulta é adequada, usando o Table Schemada meta store do Hive. Posteriormente, ele coleta as informações sobre a localização dos dados que são necessários para executar a consulta, do nó do nome HDFS e envia essas informações para outros impalads a fim de executar a consulta.

Todos os outros daemons do Impala leem o bloco de dados especificado e processam a consulta. Assim que todos os daemons concluem suas tarefas, o coordenador de consulta coleta o resultado de volta e o entrega ao usuário.