Искра искры Kubernestes: искра работает на рабе, а не на хозяине: начальная работа не приняла никаких ресурсов; - PullRequest
0 голосов
/ 29 августа 2018

Я тестирую Spark 2.3.1 (автономно) на кластере из неизолированного Kubernetes У меня есть кластер с двумя виртуальными машинами, оба с 8 ГБ оперативной памяти и 2 ядра. Я развернул кластер с одним главным узлом и двумя подчиненными узлами. Журналы узлов кажутся правильными, рабочие правильно зарегистрированы с мастером:

kubectl exec spark-master cat /opt/spark/logs/spark-logs

Мастер-журналы

kubectl exec spark-worker1 cat /opt/spark/logs/spark-logs

рабочий-журналы

И, согласно GUI, рабочие, похоже, готовы и способны общаться с мастером.
Spark GUI

Я открыл следующий порт в искровом контейнере:

  • 7077, для работника, чтобы добраться до мастера
  • 7078, для работника, чтобы достичь мастера
  • 37421 spark.driver.port, от spark-default

Затем я попытался выполнить базовое задание spark, запустив sparkind shell из контейнера, используя spark-shell --master spark://spark-master:7077 с sc.makeRDD(List(1,2,4,4)).count в качестве задания.

если я использую spark-shell из подчиненного узла, код выполняется, и я получаю результат. Однако, если я запускаю оболочку от мастера, я получаю следующее сообщение об ошибке:

WARN TaskSchedulerImpl: начальное задание не приняло никаких ресурсов; проверьте интерфейс вашего кластера, чтобы убедиться, что работники зарегистрированы и иметь достаточные ресурсы

При поиске этого сообщения об ошибке я обнаружил эту проблему с github . Я почти уверен, что это проблема с сетью, потому что работа начинается на рабочем узле. Задание, запущенное в главном контейнере, достигает рабочего, но похоже, что рабочий не может ответить основному. Журналы на рабочих выглядят как this .

Все порты, которые рабочий использует для связи с мастером, открываются в deploy.yml, и брандмауэр отключен.

Кто-нибудь уже сталкивался с такой ситуацией?

1 Ответ

0 голосов
/ 31 августа 2018

Докер был установлен на моем ноутбуке. Драйвер запускался с использованием Docker NAT. Следовательно, рабочий не смог ответить обратно драйверу, потому что пытался связаться с докером Verthernet ip. Отключение докера решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...