Um Guia Abrangente para Construir e Depurar o Apache Doris

O Apache Doris, um banco de dados analítico em tempo real de alto desempenho, possui uma impressionante arquitetura subjacente e design de código. Para os desenvolvedores, dominar a compilação do código-fonte e a depuração é fundamental para entender o núcleo do Doris. No entanto, o processo de compilação envolve múltiplas ferramentas e configurações de dependências, e durante a depuração, você pode encontrar vários problemas complexos que podem deixar os iniciantes se sentindo sobrecarregados.

Este artigo o guiará pelo processo, do código-fonte à execução, fornecendo uma análise detalhada dos procedimentos de compilação e depuração do Apache Doris. Desde a configuração do ambiente e o checkout do código até a resolução de problemas comuns, combinamos exemplos práticos para ajudá-lo a começar rapidamente com o desenvolvimento e a depuração do Doris.

Visão Geral

Você já se perguntou como uma consulta SQL é analisada e executada do início ao fim? No Apache Doris, esse processo envolve múltiplos componentes principais e mecanismos internos complexos. Este artigo o guiará pela jornada do código-fonte à execução, oferecendo uma análise abrangente do processo de compilação e depuração do Doris, e ajudando-o a obter uma compreensão profunda dos princípios de execução do SQL.

1. Ambiente

Ambiente Básico

  1. Configuração do Computador. MacBook Pro (Chip: Apple M1, macOS: 15.1)
  2. JDK. Versão 17
  3. Ramo do Doris. Use o ramo Doris Master (especificamente, o ramo-2.1)

Instalando Dependências do Ambiente

Ao usar o Homebrew, a versão do JDK instalada é a 17, pois na macOS a versão arm64 do Homebrew não inclui o JDK 8 por padrão. Atualmente, o Doris suporta apenas JDK8 e JDK17.

PowerShell

 

Explicação das Dependências

1. Java, Maven, etc. Estes podem ser baixados separadamente para uma gestão mais fácil.

  • No macOS, é recomendado o Zulu JDK17.
  • O Maven pode ser baixado do site oficial do Maven.
  • O Java e o Maven baixados manualmente devem ser configurados nas suas variáveis de ambiente.

2. Variáveis de ambiente de outras dependências (exemplo para Macs com Apple Silicon):

PowerShell

 

Adicione as configurações acima ao seu arquivo ~/.bashrc ou ~/.zshrc e execute source ~/.bashrc ou source ~/.zshrc para aplicar as alterações.

Instalando o Thrift

Nota: O Thrift precisa ser instalado apenas quando você está depurando apenas o FE (Frontend). Ao depurar tanto o BE (Backend) quanto o FE, as bibliotecas de terceiros do BE já incluem o Thrift.

Plain Text

 

Obtendo Seu Código

Clone seu código executando os seguintes comandos:

PowerShell

 

Configurando Variáveis de Ambiente

PowerShell

 

Download das Dependências de Compilação do Doris

1. Visite a página Apache Doris Third Party Prebuilt (link) para encontrar o código-fonte de todas as bibliotecas de terceiros. Você pode baixar diretamente doris-thirdparty-source.tgz.

2. Alternativamente, você pode baixar as bibliotecas de terceiros pré-compiladas na mesma página, o que poupa você de compilar essas bibliotecas manualmente. Consulte os comandos abaixo.

PowerShell

 

Ao executar protoc e thrift, você pode encontrar problemas ao abri-los devido a problemas de verificação do desenvolvedor. Nesse caso, vá para Segurança & Privacidade e clique no botão Abrir Mesmo Assim na guia Geral para confirmar que deseja abrir o binário. Para mais detalhes, consulte o Suporte da Apple.

Aumentar o Limite Máximo de Descritores de Arquivos do Sistema

Depois de modificar, execute source no arquivo correspondente para aplicar as alterações.

PowerShell

 

2. Compilando o Doris

Vá para o diretório inicial do Doris e execute o script de compilação:

PowerShell

 

Se você deseja acelerar o processo de compilação e não precisa da página de frontend FE, você pode comentar a seção de compilação da interface do usuário FE no script build.sh:

Shell

 

Após uma compilação bem-sucedida, você deverá ver uma saída semelhante à seguinte:

3. Depuração

Configurando o Ambiente de Depuração

Este guia aborda apenas a depuração do Doris FE.

Plain Text

 

Comece a depurar usando o IntelliJ IDEA.

Importante: Não abra o diretório raiz do projeto Doris; em vez disso, abra o diretório FE para evitar conflitos com o CLion.

Gerando Código FE

Abra o terminal do IDEA, navegue até o diretório raiz do código e execute:

PowerShell

 

Espere até ver a mensagem “Feito”.

Configurando Depuração para FE

1. Editar configurações.

2. Adicionar uma configuração DorisFE. Clique no ícone + no canto superior esquerdo para adicionar uma configuração de Aplicativo. Consulte a imagem abaixo para as configurações específicas.

3. Diretório de trabalho. Defina-o para o diretório fe dentro do código-fonte.

4. Variáveis de ambiente. Configure as variáveis de ambiente de forma semelhante às exportadas em fe/bin/start_fe.sh no diretório raiz do Doris. A variável DORIS_HOME deve apontar para o diretório que você copiou anteriormente durante a configuração.

Plain Text

 


Iniciando FE

Clique em Executar ou Depurar. Isso acionará o processo de construção para o FE; uma vez concluído, o FE será iniciado. Neste guia, escolhemos Depurar.


Iniciando BE

Como você já copiou o pacote compilado para o diretório doris-run, inicie o BE a partir desse diretório:

PowerShell

 

Depuração FE

1. Conecte-se ao FE. Use um cliente MySQL ou o DBeaver para se conectar ao FE iniciado pelo IDEA.

MySQL

 

2. Adicione o nó BE ao cluster.

MySQL

 

3. Defina pontos de interrupção no código. Localize o código ConnectProcessor no projeto:


Defina um ponto de interrupção no método handleQuery. Quando você executar uma consulta, o depurador atingirá o ponto de interrupção, e você poderá iniciar uma jornada de depuração agradável. Por exemplo, se você estiver trabalhando na tarefa de migração de sintaxe do Doris mencionada nas sessões anteriores, você pode usar a depuração para refinar iterativamente seu código.

FAQs

Pergunta 1

Ao compilar, você pode encontrar um erro de conflito de bloqueio:

Plain Text

 

Resposta

Exclua quaisquer arquivos .lock em seu repositório Maven local executando:

Plain Text

 

Pergunta 2

Ao compilar, um erro causado por uma versão mais recente do Node.js pode ocorrer:

Plain Text

 

Resposta

Defina o Node.js para usar o provedor de OpenSSL legado executando:

Plain Text

 

Referência: Discussão no StackOverflow

Pergunta 3

O IntelliJ IDEA falha ao iniciar o FE com o erro:

Plain Text

 

Resposta

O compilador do Maven pode não ter memória suficiente. Aumente a alocação de memória conforme mostrado abaixo:

Questão 5

O IntelliJ IDEA falha ao iniciar o FE com o erro:

Plain Text

 

Resposta

Resolva este problema executando os seguintes comandos no diretório raiz do Doris:

Plain Text

 

Questão 5

Em algumas versões, a compilação pode falhar com o erro:

Plain Text

 

Resposta

Modifique o código de acordo com este PR ou execute os seguintes comandos:

Plain Text

 

Questão 6

Em algumas versões, durante a depuração, o FE na porta 9030 falha ao iniciar, e o fe.log relata:

Plain Text

 

Resposta

Navegue até o diretório doris/docs, execute os seguintes comandos e depois reinicie o FE:

Plain Text

 

Ao seguir este guia, você deve ser capaz de configurar seu ambiente, compilar e depurar o Apache Doris com mais facilidade. Feliz depuração!

Source:
https://dzone.com/articles/guide-to-building-and-debugging-apache-doris