FQDN
В этой статье описано, как включить использование FQDN (Fully Qualified Domain Name) в кластере Apache Doris. FQDN представляет собой полное доменное имя конкретного компьютера или хоста в Интернете.
После включения FQDN взаимодействие между узлами Doris полностью основано на FQDN. При добавлении узла указывайте его FQDN напрямую. Например, команда для добавления узла BE выглядит так:
ALTER SYSTEM ADD BACKEND "be_host:heartbeat_service_port";
В режиме FQDN в качестве be_host необходимо указать FQDN узла BE, а не его IP-адрес.
Сценарии использования
| Сценарий | Описание | Раздел с инструкциями |
|---|---|---|
| Развертывание нового кластера | Включите FQDN при создании нового кластера, чтобы избежать последующей миграции | Включение FQDN в новом кластере |
| Развертывание в Kubernetes | После перезапуска Pod его IP-адрес может измениться, но доменное имя остается прежним. FQDN обеспечивает непрерывную доступность сервиса. | Развертывание Doris в K8s |
| Изменение IP-адреса сервера | При переключении сетевых интерфейсов или замене машин не требуется изменять метаданные Doris | Изменение IP-адреса сервера |
| Миграция существующего кластера | Переведите кластер, уже использующий IP-адреса, в режим FQDN | Включение FQDN в существующем кластере |
Предварительные требования
Перед включением FQDN необходимо выполнить следующие условия:
- Установите
enable_fqdn_mode = trueвfe.conf. - На каждой машине кластера должно быть настроено имя хоста.
- Файл
/etc/hostsна каждой машине кластера должен содержать соответствия между IP-адресами и FQDN всех остальных машин. - В файле
/etc/hostsне допускаются повторяющиеся IP-адреса.
Включение FQDN в новом кластере
Рассмотрим развертывание кластера из 3 FE + 3 BE. Порядок действий следующий:
-
Подготовьте машины: Подготовьте машины в соответствии с размером кластера (в этом примере 6 машин).
-
Проверьте уникальность имен хостов: Выполните команду
hostна каждой машине и убедитесь, что возвращаемое имя уникально. Предположим, что имена хостов 6 машин:fe1,fe2,fe3,be1,be2иbe3. -
Настройте
/etc/hosts: На всех 6 машинах укажите реальные IP-адреса для всех 6 FQDN в/etc/hosts:172.22.0.1 fe1
172.22.0.2 fe2
172.22.0.3 fe3
172.22.0.4 be1
172.22.0.5 be2
172.22.0.6 be3 -
Проверьте сеть: На любом узле (например,
fe1) выполнитеping fe2. Если имя разрешается в правильный IP-адрес и узел доступен, сетевое окружение готово. -
Включите FQDN в конфигурации: На каждом узле FE задайте в
fe.confследующий параметр:enable_fqdn_mode = true -
Разверните кластер: Следуйте инструкциям в разделе Развертывание вручную, чтобы завершить развертывание FE / BE.
-
При необходимости добавьте Broker: Разверните Broker на выбранных машинах и выполните:
ALTER SYSTEM ADD BROKER broker_name "fe1:8000","be1:8000",...;
Развертывание Doris в K8s
В среде Kubernetes нет гарантии, что IP-адрес Pod останется прежним после неожиданного перезапуска, однако его доменное имя сохраняется. После включения FQDN в Doris это свойство позволяет сохранить доступность сервиса после перезапуска Pod.
Полный порядок развертывания Doris в K8s приведен в разделе Развертывание Doris в K8s.
Изменение IP-адреса сервера
Если после завершения развертывания по инструкциям из раздела «Включение FQDN в новом кластере» потребуется изменить IP-адрес машины (например, для переключения сетевого интерфейса или замены машины), достаточно обновить файл /etc/hosts на каждой машине. Изменять метаданные кластера Doris не требуется.
Включение FQDN в существующем кластере
Требование к версии: Текущая версия Doris должна поддерживать следующий синтаксис:
ALTER SYSTEM MODIFY FRONTEND "<fe_ip>:<edit_log_port>" HOSTNAME "<fe_hostname>";
Если текущая версия его не поддерживает, сначала обновитесь до версии, в которой он поддерживается.
Для выполнения следующих операций в кластере должно быть не менее 3 узлов Follower. В противном случае кластер не сможет нормально запуститься.
Включение FQDN на узлах FE
Выполните следующие операции поочередно на узлах Follower и Observer, а узел Master обработайте последним:
-
Остановите узел: Остановите текущий процесс FE.
-
Проверьте состояние узла: С помощью клиента MySQL выполните
SHOW FRONTENDSи убедитесь, что состояниеAliveэтого узла FE изменилось наfalse. -
Задайте FQDN: Выполните следующий SQL (после остановки узла Master автоматически выбирается новый Master. Выполните эту инструкцию на новом Master):
ALTER SYSTEM MODIFY FRONTEND "<fe_ip>:<edit_log_port>" HOSTNAME "<fe_hostname>"; -
Измените конфигурацию узла: В корневом каталоге FE остановленного узла откройте
conf/fe.confи добавьте:enable_fqdn_mode = trueЕсли после добавления этого параметра узел по-прежнему не может нормально запуститься, добавьте
enable_fqdn_mode = trueвfe.confвсех узлов FE, а затем запустите узел FE, который был только что остановлен. -
Запустите узел: Запустите процесс FE, чтобы узел снова присоединился к кластеру.
Включение FQDN на узлах BE
Включение FQDN на узле BE не требует перезапуска. Выполните следующую команду через MySQL:
ALTER SYSTEM MODIFY BACKEND "<backend_ip>:<HeartbeatPort>" HOSTNAME "<be_hostname>";
Если вы не знаете номер порта HeartbeatPort, узнайте его с помощью команды SHOW BACKENDS.
Часто задаваемые вопросы
Вопрос: Можно ли произвольно менять параметр конфигурации enable_fqdn_mode?
Нет, произвольно менять его нельзя. Чтобы перевести кластер, уже использующий IP-адреса, в режим FQDN, следуйте инструкциям в разделе Включение FQDN в существующем кластере.
Вопрос: Можно ли включить FQDN, если узлов Follower меньше 3?
Нет. Для выполнения процедуры миграции существующего кластера в нем должно быть не менее 3 узлов Follower. В противном случае кластер не сможет нормально запуститься.
Вопрос: Нужно ли изменять метаданные Doris после изменения IP-адреса сервера?
Нет. Достаточно обновить соответствия между IP-адресами и FQDN в /etc/hosts на всех машинах.
Вопрос: Какое значение следует задать для be_host при добавлении узла?
После включения FQDN в качестве be_host необходимо указать FQDN узла BE, а не его IP-адрес.