Проблемы с DNS-именем Zookeeper при выборе лидера при переходе с Windows на Debian

Если Вы просто хотите присоединиться к каждым 4 строкам в одну, можно сделать это с рекурсивным макросом:

ggqaqqa4Jj@aq@a

Объяснение:

  • gg пойдите для запуска файла
  • qaq очистите любой ранее хранивший макрос в регистре a
  • qa начните записывать макрос в регистре a
  • 4J присоединитесь к 4 строкам в одну
  • j спуститесь по одной строке
  • @a имейте макрос в регистре a назовите себя
  • q прекратите записывать
  • @a назовите макрос в регистре a который будет продолжать работать над файлом, пока он не будет сделан.

Альтернатива в Perl

perl -ni -e 'chomp;print $_, $.%4? " ":"\n"' your_file

Ссылка

3
03.11.2015, 16:49
2 ответа

Хорошо, я понимаю, что здесь происходит. Я видел ту же проблему при попытке настроить 3-узловой кластер Spring-XD в Vagrant на виртуальных машинах Linux.

Эта конфигурация работала:

server.1=172.28.128.3:2888:3888
server.2=172.28.128.4:2888:3888
server.3=172.28.128.7:2888:3888

Но эта не работала:

server.1=spring-xd-1:2888:3888
server.2=spring-xd-2:2888:3888
server.3=spring-xd-3:2888:3888

«Дымящимся пистолетом» была эта строка в моем журнале zookeeper:

2015-11-26 20: 48: 31,439 [myid: 1 ] - ИНФОРМАЦИЯ [Thread-2: QuorumCnxManager $ Listener @ 504] - Мой порт привязки выборов: spring-xd-1 / 127.0.0.1: 3888

Итак, почему была привязка Zookeeper порт выбора на интерфейсе обратной связи? Хорошо...

Мои / etc / hosts на одной из виртуальных машин выглядели так:

127.0.0.1   spring-xd-1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

## vagrant-hostmanager-start
172.28.128.3    spring-xd-1
172.28.128.4    spring-xd-2
172.28.128.7    spring-xd-3
## vagrant-hostmanager-end

Я удалил имя хоста из строки 127.0.0.1 в / etc / hosts и отказал службе zookeeper на всех 3 узлах, и БАМ! Все вышло розами. Итак, теперь файл хоста на каждой машине выглядит так:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

## vagrant-hostmanager-start
172.28.128.3    spring-xd-1
172.28.128.4    spring-xd-2
172.28.128.7    spring-xd-3
## vagrant-hostmanager-end

Я предполагаю, что вы не видели проблемы в Windows, потому что файл хостов ( C: \ Windows \ System32 \ drivers \ etc \ hosts ) по умолчанию не имеет записей. Вы сможете воспроизвести проблему в Windows, добавив к ней аналогичную строку 127.0.0.1 .

Я называю это ошибкой Zookeeper. Редактировать файл hosts было достаточно, чтобы доказать проблему и исправить ее в Vagrant, но я бы не рекомендовал его для любой «реальной» среды.

РЕДАКТИРОВАТЬ: Согласно http://ccl.cse.nd.edu/operations/condor/hostname.shtml , это, по-видимому, довольно распространенная проблема с кластерными приложениями в Linux, и рекомендует редактировать файл hosts, как я описал выше. Однако в документации Zookeeper по настройке кластера это не упоминается.

6
27.01.2020, 21:14

Вероятно, эта проблема вызвана установкой узла hostnameна 127.0.0.1в /etc/hosts. В этом случае ZK привяжет leader|election portsк адресу 127.0.0.1.

Параметр конфигурации quorumListenOnAllIPs=trueдолжен решить эту проблему и связать election|leader portsс 0.0.0.0.

Дополнительные параметры и их влияние можно найти в Руководстве по администрированию ZK

Всегда полезно проверить исходный код .

1
27.01.2020, 21:14

Теги

Похожие вопросы