Назад | Перейти на главную страницу

Настройка безопасного кластера Hadoop - безопасность Kerberos

Я успешно настроил кластер HDP 2.2 (1 NM, 3 DN и 1 клиент). Учетные записи пользователей для доступа к кластеру HDP создаются в клиенте и проверяются, что эти пользователи могут отправлять задания по SSH на клиентский узел и запускать образцы заданий.

На следующем шаге я включил аутентификацию Kerberos и создал участников-пользователей, соответствующих пользователям в клиенте. Все прошло как положено. Затем я подключаюсь по SSH к клиентскому ПК в качестве пользователя, генерирую kinit билета Kerberos, затем я пытался запустить образец задания, но отправка задания завершилась неудачно: user <user name> not found сообщение.

Нужно ли мне создавать пользователя на всех узлах кластера, чтобы выполнить задание в качестве пользователя в кластере Secure HDP?

Коротко:

Да, при запуске Hadoop с Kerberos аутентифицированный пользователь должен существовать в файле passwd (или в эквивалентном каталоге пользователя, таком как LDAP) на каждом узле, где запускается TaskTracker (MRv1) или YARN nodemanager.

Для MRv1 TaskTracker запускает программу, называемую контроллером задач, перед запуском каждой задачи. Контроллер задач - это корневой инструмент setuid, который позволяет сопоставленному пользователю изменять пользователя времени выполнения задачи. Думайте об этом как об эквиваленте TaskTracker, выполняющего

sudo -u youruser /usr/bin/java yourtask

Если пользователя не удается найти в файле passwd, тогда контроллер задач не может завершить переключение на этого пользователя, что приведет к сбою.

Пряжа имеет похожий механизм.

В отсутствие защищенного кластера TaskTracker НЕ использует его. Вместо этого задача фактически запускается от имени сопоставленного пользователя на каждом узле, но JobTracker сообщает об этом как об отправившем пользователе.

На этом этапе у вас есть следующие варианты:

  1. Поместите пользователя в / etc / passwd (и / etc / shadow) через что-то вроде adduser на каждом узле, который будет запускать задачи.
  2. ИЛИ настройте каждый узел для поиска карты passwd через сервер LDAP, который хранит информацию об учетной записи через Стандарты LDAP posixAccount.

Вы не упоминаете, какой дистрибутив вы используете, поэтому трудно указать вам дальше этого.