Guia de Compilação e Dimensionamento para o Apache Doris

O Apache Doris é um sistema de análise de dados (OLAP) de alta performance baseado em uma arquitetura MPP (Massively Parallel Processing). Este guia detalha o processo de compilação utilizando ambientes isolados com Docker e as especificações de hardware recomendadas para diferentes cenários de carga.

1. Processo de Compilação com Docker

A utilização de imagens Docker para compilação é a abordagem recomendada, pois garante um ambiente com todas as dependências e toolchains necessárias pré-configuradas, evitando conflitos de bibliotecas no sistema hospedeiro.

Obtenção da Imagem de Build

Dependendo da versão do Doris que você deseja compilar, escolha a imagem apropriada no repositório oficial:

# Para versões baseadas no branch principal (master)
docker pull apache/incubator-doris:build-env-ldb-toolchain-latest

# Para uma versão específica (ex: 0.15.0)
docker pull apache/incubator-doris:build-env-for-0.15.0

Configuração do Ambiante e Execução

Para otimizar o processo e evitar downloads repetitivos de dependências do Maven, recomenda-se mapear o diretório local .m2 para dentro do container.

# Criando o diretório de trabalho
mkdir -p /opt/doris_build/maven_repo

# Iniciando o container com mapeamento de volumes
docker run -it \
  -v /opt/doris_build/maven_repo:/root/.m2 \
  -v /opt/doris_build/source_code:/root/doris_source \
  apache/incubator-doris:build-env-for-0.15.0

Download e Construção dos Binários

Dentro do ambiente do container, proceda com a obtenção do código-fonte e a execução do script de construção:

# Acesse o diretório mapeado
cd /root/doris_source

# Obtenha o código via Git ou Wget
git clone https://github.com/apache/doris.git
cd doris

# Execução do build inicial (limpeza completa e construção de todos os módulos)
sh build.sh --clean --fe --be --ui

Após a conclusão, os artefatos resultantes estarão localizados no diretório output/.

2. Requisitos de Infraestrutura

O desempenho do Apache Doris está diretamente ligado à capacidade de processamento paralelo. Abaixo estão as diretrizes para ambientes de teste e produção.

Especificações de Hardware

Cenário Módulo CPU Memória (RAM) Armazenamento Rede
Desenvolvimento / Teste Frontend (FE) 8 Cores+ 8 GB+ 10 GB+ (SSD/SATA) 1 Gbps
Backend (BE) 8 Cores+ 16 GB+ 50 GB+ (SSD/SATA) 1 Gbps
Produção Frontend (FE) 16 Cores+ 64 GB+ 100 GB+ (SSD/RAID) 10 Gbps
Backend (BE) 16 Cores+ 64 GB+ 100 GB+ (SSD/SATA) 10 Gbps

Considerações Importantes sobre os Nós

  • Frontend (FE): Responsável por armazenar metadados, processar consultas e gerenciar o cluster. Em produção, utilize no mínimo 3 instâncias do tipo Follower para garantir alta disponibilidade (HA) via protocolo de consenso.
  • Backend (BE): Responsável pelo armazenamento de dados e execução dos cálculos. O espaço em disco deve ser calculado como: (Volume de Dados Total * 3 réplicas) / 0.6, garantindo margem para compactação e arquivos temporários.
  • Sincronização: É crítico que os relógios de todos os servidores estejam sincronizados (máximo de 5 segundos de desvio).
  • Swap: Desative o Swap em todos os nós para evitar degradação de performance em operações de memória intensiva.

3. Topologia de Alta Disponibilidade

Para ambientes críticos, a configuração de FE segue regras específicas de consenso:

  • O número de nós Follower deve ser sempre ímpar (1, 3 ou 5).
  • Nós do tipo Observer podem ser adicionados horizontalmente para aumentar a capacidade de leitura sem impactar o quórum de escrita.
  • Um cluster básico de produção deve conter pelo menos 3 nós BE distribuídos em máquinas físicas distintas para garantir a tolerância a falhas das réplicas de dados.

Tags: Apache Doris OLAP Docker Big Data Data Warehouse

Publicado em 10-25 01:28