Spark Worker «Умер» после восстановления зоопарка для нового мастера - PullRequest
0 голосов
/ 24 января 2019

Я успешно настроил zookeeper и spark в 3 разных виртуальных коробках. Запуск zookeeper и spark master не проблема.

с IP-адресом на /etc/hosts

192.168.1.10 master1
192.168.1.11 master2
192.168.1.12 master3

После запуска моих рабов (искровых работников) для подключения к моим мастерам, используя код ниже на всех машинах.

./sbin/start-slave.sh spark://master1:7077,master2:17077,master3:7077

«Ведомые» (рабочие-искры) успешно подключены к первому мастеру, но когда я убиваю или останавливаю активный мастер, запускает восстановление, но после восстановления активен только работник, имеющий тот же IP-адрес текущего мастера, оставив других рабочих мертвыми и убитыми через несколько минут.

Местоположение проекта: /usr/local/ под пользователем spuser

Все необходимые порты открываются через

sudo firewall-cmd --zone=public --add-port=<port_number>/tcp --permanent

Конфиги Spark

У меня тоже есть /usr/local/spark/highavability.conf

spark.deploy.recoveryMode=ZOOKEEPER
spark.deploy.zookeeper.url=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
spark.deploy.zookeeper.dir=/usr/local/spark/spark

и запуск мастера с использованием на всех машинах

./sbin/start-master.sh -h <master_ip> -p 7077 --webui-port 8080 --properties-file ha.conf

в другом примечании, вставка этого кода в /usr/local/spark/conf/spark-env.sh делает то же самое, что и код выше

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/home/usr/local/spark/spark"

Zookeeper Configs

У меня есть этот на /usr/local/zookeeper/conf/zoo.cfg

# The number of milliseconds of each tick
tickTime=2000

# The number of ticks that the initial
# synchronization phase can take
initLimit=10

# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5

# the directory where the snapshot is stored.
dataDir=/home/dd/zookeeper/data/

# the port at which the clients will connect
clientPort=2181
dataLogDir=/home/dd/zookeeper/logs/

server.1=master1:2888:3888
server.2=master2:2889:3889
server.3=master3:2890:3890

Ожидается, что все работники должны быть подключены и иметь статус alive к вновь избранному мастеру, но только работник с тем же IP-адресом подключен и имеет статус alive.

...