1. Visão Geral
Este documento apresenta principalmente a preparação das operações de construção, atualização e expansão do cluster com base na construção do banco de dados Apache doris (1) .
2. Requisitos de software e hardware
Como um banco de dados OLAP de arquitetura MPP de código aberto, o Doris pode ser executado na maioria dos servidores comerciais convencionais. Para aproveitar ao máximo as vantagens de simultaneidade da arquitetura MPP e os recursos de alta disponibilidade do Doris, recomendamos que a implantação do Doris siga os seguintes requisitos:
Requisitos de versão do sistema operacional Linux
sistema linux | Versão |
---|---|
CentOS | 7.1 e acima |
ubuntu | 16.04 e acima |
Requisitos de software
Programas | Versão |
---|---|
Java | 1.8 e acima |
GCC | 4.8.2 e acima |
Requisitos de instalação do sistema operacional
Para definir o número máximo de identificadores de arquivos abertos no sistema, o comando é o seguinte:
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
Sincronização do relógio
Os metadados de Doris exigem que a precisão do tempo seja inferior a 5000ms, portanto todas as máquinas do cluster devem sincronizar seus relógios para evitar exceções de serviço causadas por inconsistências nos metadados causadas por problemas de relógio.
Feche a partição swap (swap)
A partição de troca do Linux trará sérios problemas de desempenho para Doris, você precisa desativar a partição de troca antes da instalação
Sistema de arquivos Linux
Ambos os sistemas de arquivos ext4 e xfs são suportados.
Ambiente de desenvolvimento e teste
módulo | CPU | Memória | disco | rede | Número de Instâncias |
---|---|---|---|---|---|
Front-end | 8 núcleos + | 8GB+ | SSD ou SATA, 10 GB+* | Gigabit Ethernet | 1 |
Processo interno | 8 núcleos + | 16GB+ | SSD ou SATA, 50 GB+ * | Gigabit Ethernet | 1-3 * |
Ambiente de produção
módulo | CPU | Memória | disco | rede | Número de instâncias (requisito mínimo) |
---|---|---|---|---|---|
Front-end | 16 núcleos+ | 64 GB+ | SSD ou placa RAID, 100 GB+ * | placa de rede de 10 Gigabits | 1-3 * |
Processo interno | 16 núcleos+ | 64 GB+ | SSD ou SATA, 100G+* | placa de rede de 10 Gigabits | 3 * |
Nota 1:
- O espaço em disco do FE é usado principalmente para armazenar metadados, incluindo logs e imagens. Normalmente, de algumas centenas de MB a vários GB.
- O espaço em disco do BE é usado principalmente para armazenar dados do usuário. O espaço total em disco é calculado pela quantidade total de dados do usuário * 3 (3 cópias) e, em seguida, 40% adicionais do espaço são reservados para compactação em segundo plano e armazenamento de alguns dados intermediários
.- Várias instâncias de BE podem ser implantadas em uma máquina, mas apenas um FE pode ser implantado. Se forem necessárias 3 cópias de dados, pelo menos 3 máquinas serão necessárias para implantar uma
instância BE (em vez de 1 máquina implantar 3 instâncias BE). Os relógios dos servidores onde estão localizados vários FEs devem ser consistentes (desvios de relógio de até 5 segundos são permitidos)- O ambiente de teste também pode ser testado com apenas um BE. No ambiente de produção real, o número de instâncias BE determina diretamente a latência geral da consulta.
- Todos os nós de implantação fecham o Swap.
Nota 2: Número de nós FE
- As funções do FE são divididas em Seguidor e Observador, (Líder é uma função eleita no grupo Seguidor, doravante referido coletivamente como
Seguidor).- Os dados do nó FE são pelo menos 1 (1 seguidor). Ao implantar 1 seguidor e 1 observador
, a alta disponibilidade de leitura pode ser alcançada. Ao implantar 3 Seguidores, alta disponibilidade (HA) de leitura e gravação pode ser alcançada.- O número de seguidores deve ser um número ímpar e o número de observadores é arbitrário.
- De acordo com a experiência anterior, quando os requisitos de disponibilidade do cluster são altos (como o fornecimento de serviços online), 3 Seguidores e 1-3 Observadores podem ser implantados. Para negócios off-line, é recomendável implantar 1 seguidor e 1-3 observadores.
- Normalmente, recomendamos cerca de 10 a 100 máquinas para dar desempenho total ao desempenho de Doris (3 delas são implantadas com FE (HA) e as demais são implantadas com BE)
- Obviamente, o desempenho do Doris está positivamente relacionado ao número de nós e à configuração. O Doris ainda pode funcionar sem problemas com pelo menos 4 máquinas (um FE, três BEs, um BE misturado com um Observer FE para fornecer backup de metadados) e uma configuração inferior.
- Se FE e BE forem misturados, deve-se prestar atenção à competição de recursos e garantir que o diretório de metadados e o diretório de dados pertençam a discos diferentes.
Implantação do agente
Broker é um processo usado para acessar fontes de dados externas, como hdfs. Normalmente, é suficiente implantar uma instância do broker em cada máquina.
requisitos de rede
As instâncias de Doris se comunicam diretamente pela rede. A tabela abaixo mostra todas as portas necessárias
nome da instância | nome da porta | porta padrão | Direção de comunicação | ilustrar |
---|---|---|---|---|
SER | be_port | 9060 | FE --> SER | A porta do servidor thrift no BE, usada para receber solicitações do FE |
SER | webserver_port | 8040 | SER <–> SER | A porta do servidor http no BE |
SER | heartbeat_service_port | 9050 | FE --> SER | Porta de serviço de heartbeat (thrift) em BE, usada para receber heartbeat de FE |
SER | brpc_port | 8060 | FE <–> SER, SER <–> SER | porta brpc no BE, usada para comunicação entre BEs |
FE | http_port | 8030 | FE <–> FE, usuário <–> FE | porta do servidor http no FE |
FE | rpc_port | 9020 | BE --> FE, FE <–> FE | A porta do servidor thrift no FE, a configuração de cada FE precisa ser consistente |
FE | porta de consulta | 9030 | usuário <–> FE | porta do servidor mysql no FE |
FE | edit_log_port | 9010 | FE <–> FE | Porta usada para comunicação entre bdbje no FE |
Corretor | broker_ipc_port | 8000 | FE --> Corretora, BE --> Corretora | O servidor thrift no Broker é usado para receber solicitações |
Observação:
ao implantar várias instâncias do FE, certifique-se de que a configuração http_port do FE seja a mesma.
Antes da implantação, certifique-se de que cada porta tenha direitos de acesso na direção correta.
ligação IP
Devido à existência de várias placas de rede ou à existência de placas de rede virtuais causadas pela instalação do docker e outros ambientes, pode haver vários ips diferentes no mesmo host. Atualmente Doris não pode identificar automaticamente os IPs disponíveis. Portanto, quando houver vários IPs no host de implementação, o item de configuração priority_networks deve ser usado para forçar a especificação do IP correto.
priority_networks é uma configuração para FE e BE, e os itens de configuração precisam ser escritos em fe.conf e be.conf. Este item de configuração é usado para informar ao processo qual IP deve ser vinculado quando FE ou BE iniciar. Os exemplos são os seguintes:
priority_networks=192.168.50.190/24
Esta é uma notação CIDR. FE ou BE procurará um IP correspondente de acordo com este item de configuração como seu próprio localIP.
Nota: Depois de configurar priority_networks e iniciar FE ou BE, ele apenas garante que o IP de FE ou BE esteja vinculado corretamente. Ao usar a instrução ADD BACKEND ou ADD FRONTEND, você também precisa especificar o IP que corresponde à configuração priority_networks, caso contrário, o cluster não pode ser estabelecido. Exemplo:
BE 的配置为:priority_networks=192.168.50.190/24
Mas quando ADD BACKEND é usado:
ALTER SYSTEM ADD BACKEND "192.168.0.1:9050";
Então FE e BE não poderão se comunicar normalmente.
Neste momento, você deve DROP o BE adicionado incorretamente e executar ADD BACKEND novamente com o IP correto.
A FE é a mesma.
BROKER atualmente não tem e não precisa da opção priority_networks. O serviço do corretor está vinculado a 0.0.0.0 por padrão. Basta executar o IP do BROKER correto e acessível ao ADD BROKER.
A configuração de diferenciação
de maiúsculas e minúsculas do nome da tabela doris é padronizada para a diferenciação de maiúsculas e minúsculas do nome da tabela. A distinção entre maiúsculas e minúsculas do nome da tabela não pode ser modificada após a conclusão da inicialização do cluster.
3. Implantação de cluster
planejamento ambiental
nome do servidor | IP do servidor | Papel |
---|---|---|
nó0 | 192.168.50.190 | FE、BE、Mestre |
nó1 | 192.168.50.189 | FE、BE |
nó2 | 192.168.50.188 | FE、BE |
Primeiro, distribuímos o arquivo para os outros dois servidores por meio do comando scp -r target file root@ip:/data e modificamos o endereço IP correspondente. O comando de operação é o seguinte:
vim be.conf #进入其余两台服务器的doris/be文件下,笔者这里的ip是192.168.50.189
mkdir -p /data/data_dir/ /data/doris-meta/ #在其余分别两个台服务器执行创建
BE adicionar extensão
Obs: O outro servidor é o mesmo, não farei demonstração aqui (o outro ip é 192.168.50.188)
Após a conclusão da modificação, use o seguinte comando para incluir o nó BE no cluster:
mysql -uroot -h 192.168.50.190 -P 9030 -p
#密码为root
#或者通过客户端登录
#通过MySQL 客户端连接到 FE 之后执行下面的 SQL,将 BE 添加到集群中
ALTER SYSTEM ADD BACKEND "192.168.50.188:9050";
ALTER SYSTEM ADD BACKEND "192.168.50.189:9050";
Vá para o diretório de arquivos be de node0 e node1 para iniciar o serviço be correspondente, o comando específico é mostrado na figura a seguir:
./bin/start_be.sh --daemon
Observação: se solicitado, defina vm.max_map_count como 2000000 na raiz usando 'sysctl -w vm.max_map_count=2000000'. Siga os prompts para executar o comando sysctl -w vm.max_map_count=2000000 correspondente
O campo Alive é verdadeiro, indicando que o status BE é normal e ingressou no cluster.
FE adicionar extensão
Primeiro entre no diretório fe/conf de doris e use o seguinte comando para editar o arquivo fe.conf e modificar o ip:
vim fe.conf #进入其余两台服务器的doris/fe文件下,笔者这里的ip是192.168.50.189
Obs: O outro servidor é o mesmo, o autor não fará demonstração aqui (o outro ip é 192.168.50.188); o ip histórico original é 192.168.50.190 [construção do banco de dados apache doris (1)]
Observações FE:
1. O número de FE Seguidor (incluindo Mestre) deve ser um número ímpar. Recomenda-se implantar até 3 para formar um modo de alta disponibilidade >> (HA).
2. Quando o FE está em uma implantação de alta disponibilidade (1 mestre, 2 seguidores), recomendamos expandir a capacidade de serviço de leitura do FE adicionando o Observador FE. Claro, você pode continuar aumentando o Follower FE, mas é quase desnecessário.
3. Normalmente, um nó FE pode lidar com 10-20 nós BE. Recomenda-se que o número total de nós FE seja menor que 10. Geralmente 3 podem atender a maioria das necessidades.
4. O auxiliar não pode apontar para o próprio FE, mas deve apontar para um ou mais FEs Mestre/Seguidor existentes e em execução.
operar
Inicie o serviço FE de node0 node1 (a máquina 192.168.50.190 FE foi iniciada como líder antes) Observação especial: o parâmetro --helper é necessário apenas quando o seguidor e o observador são iniciados pela primeira vez.
## ./bin/start_fe.sh --helper leader_fe_host:edit_log_port --daemon
./bin/start_fe.sh --helper 192.168.50.190 --daemon
Após a conclusão da adição, você pode visualizar o status do FE através de SHOW PROC '/frontends'\G; para ver se Alive é true e, se for True, isso prova que a adição foi bem-sucedida.
Agora todos os três nós iniciaram o instância FE, e você precisa usar mysql-client para se conectar ao iniciado. O FE da máquina node2 executa a operação SQL de adicionar o cluster. Como esperamos implantar dois FEs, alterar o node2 para OBSERVER requer a execução dos três comandos a seguir na janela SQL:
#添加FE
ALTER SYSTEM ADD FOLLOWER "192.168.50.189:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.50.189:9010";
#执行前需要删除node2的OBSERVER alter system,drop follower[observer] "ip:port"
ALTER SYSTEM ADD OBSERVER "192.168.50.190:9010";
Visualize a instância FE novamente
show proc '/frontends';
Nota: Se você quiser expandir o nó FE correspondente no futuro , você pode adicioná-lo através do comando sql correspondente
ALTER SYSTEM ADD FOLLOWER
"ip:port"` e o nó BE através do comando sql:
ALTER SYSTEM ADD BACKEND "ip:port";
Até agora, o autor terminou de explicar a construção do cluster de banco de dados doris. Se você tiver alguma dúvida, entre em contato com o autor a tempo. A versão desta seção é 1.2.1.4