Подробное объяснение проблемы изменения IP-адреса Apache Doris

1. История

Из-за существования нескольких сетевых карт или существования виртуальных сетевых карт, вызванных установкой докера и других сред, на одном хосте может быть несколько разных IP-адресов. В настоящее время Apache Doris не может автоматически определять доступные IP-адреса. Таким образом, если на узле развертывания имеется несколько IP-адресов, необходимо использовать элемент конфигурации Priority_networks, чтобы принудительно указать правильный IP-адрес.

Priority_networks — это конфигурация как для FE, так и для BE, а элементы конфигурации необходимо прописать в fe.conf и be.conf. Этот элемент конфигурации используется для указания процессу, какой IP-адрес должен быть привязан при запуске FE или BE. Примеры следующие:

Priority_networks=10.1.3.0/24

Это представление CIDR . FE или BE будут искать соответствующий IP-адрес в соответствии с этим элементом конфигурации как свой собственный локальный IP-адрес.

CIDR использует косую черту, которая выражается как количество цифр IP-адреса/идентификатора сети.
Конкретный метод преобразования можно увидеть в следующих двух примерах.

  1. 192.168.0.0/16, преобразованный в 32-битный двоичный адрес: 11000000.10101000.00000000.00000000. Среди них /16 означает 16-битный идентификатор сети, то есть первые 16 бит 32-битного двоичного адреса фиксированы, а соответствующий сегмент сети: 11000000.10101000.00000000.00000000~11000000.10101000.11111111.11111111.
  2. 192.168.1.2/24, преобразованный в 32-битный двоичный адрес: 11000000.10101000.00000001.00000000. Среди них /24 означает, что первые 24 бита 32-битного двоичного адреса фиксированы, а соответствующий сегмент сети: 11000000.10101000.00000001.00000000~11000000.10101000.00000001.11111111

При возникновении следующих сценариев IP-адрес изменится, что приведет к возникновению исключений fe/be, которые не смогут запуститься и работать нормально.

  1. Миграция кластера приводит к изменению сегмента IP-сети.
  2. Динамический адрес в виртуальной среде приводит к смене IP
  3. Priority_networks не настроен должным образом перед перезапуском fe/be, что приводит к несоответствию между IP-адресом, полученным после перезапуска, и метаданными.

2. Окружающая среда

информация об оборудовании

  1. ЦП : 1С
  2. Модель процессора : ARM64
  3. Память : 2 ГБ
  4. Жесткий диск : твердотельный накопитель емкостью 36 ГБ.

информация о программном обеспечении

  1. Версия образа виртуальной машины : CentOS-7.
  2. Версия Apache Doris : 1.2.4.1
  3. Размер кластера : 1FE * 3BE.

3. Восстановление FE

3.1 Журнал исключений

Просмотр fe.out сообщит о следующем исключении. В настоящее время процесс fe не может быть запущен;
перед операцией сделайте резервную копию всех метаданных fe и прекратите действия чтения и записи восходящего потока !

вставьте сюда описание изображения

3.2 Получить текущий IP

ip addr

вставьте сюда описание изображения

3.3 Сброс информации об IP

После сброса информации об IP-адресе вышеуказанное исключение все равно будет сообщаться.

# 修改fe.conf的priority_networks
priority_networks = 192.168.0.0/16
# 或者
priority_networks = 192.168.31.78/16

3.4 Сброс записей метаданных

После сброса записи метаданных, хотя процесс fe может запуститься, он недоступен.

# 注释掉fe元数据中之前记录的老ip
vim doris-meta/image/ROLE

вставьте сюда описание изображения

3.5 Восстановление схемы метаданных

# 在fe.conf中新增metadata_failure_recovery=true启用恢复模式重启fe
vim fe.conf
metadata_failure_recovery=true

# 此时进入http://192.168.31.78:8030/login 可以打开fe web ui说明可以正常启动fe了

вставьте сюда описание изображения

3.6 Сброс узлов кластера

Хотя в настоящее время можно запустить режим восстановления метаданных fe, он не был полностью восстановлен, поскольку узлы кластера, записанные в текущих метаданных fe, не имеют недавно измененного IP-узла.

# 在mysql客户端或者web ui的Playground执行如下sql更新fe元数据中记录的fe节点
# 移除老ip节点
ALTER SYSTEM DROP FOLLOWER "192.168.31.81:9010";

# 新增新ip节点
ALTER SYSTEM ADD FOLLOWER "192.168.31.78:9010";

Старый IP-узел выглядит следующим образом

старый IP-узел

Новый IP-узел выглядит следующим образом

новый IP-узел

3.7 Выключите режим метаданных и перезапустите Fe

# 在fe.conf中注释metadata_failure_recovery=true关闭恢复模式重启fe
vim fe.conf
#metadata_failure_recovery=true

# 此时进入http://192.168.31.78:8030/login 可以打开fe web ui说明fe完全恢复了

4. Восстановление БЭ

4.1 Получить текущий IP

ip addr

вставьте сюда описание изображения

4.2 Сброс информации об IP

# 修改be.conf的priority_networks
priority_networks = 192.168.0.0/16
# 或者
priority_networks = 192.168.31.136/16
# 设置完成后重启be即可恢复

4.3 Сброс на узлах кластера

Хотя текущий be смог запуститься, он не был полностью восстановлен, поскольку узлы кластера be, записанные в текущих метаданных fe, не имеют недавно измененного узла be.

# 在mysql客户端或者web ui的Playground执行如下sql更新fe元数据中记录的be节点
# 移除老ip节点
ALTER SYSTEM DROPP FOLLOWER "192.168.31.81:9010";
ALTER SYSTEM DROPP FOLLOWER "192.168.31.72:9010";
ALTER SYSTEM DROPP FOLLOWER "192.168.31.133:9010";

# 新增新ip节点
ALTER SYSTEM ADD FOLLOWER "192.168.31.78:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.31.71:9010";
ALTER SYSTEM ADD FOLLOWER "192.168.31.136:9010";

3 be полностью восстанавливаются после сброса следующим образом.

вставьте сюда описание изображения

Аномальная проблема кластера Apache Doris, вызванная сменой IP-адреса, была обработана и восстановлена. Если в процессе проверки у вас возникнут какие-либо проблемы, оставьте сообщение для связи.

Supongo que te gusta

Origin blog.csdn.net/ith321/article/details/132376132
Recomendado
Clasificación