У нас есть кластер Hadoop, который в настоящее время работает на общедоступном IP-адресе. Мы хотим изменить IP-адрес кластера на частные IP-адреса. Поэтому маршрутизация из Интернета невозможна. Но основная проблема заключается в том, что клиенты Spark пытаются подключиться к диспетчеру ресурсов и отправить заявку. Он проверит PTR-запись менеджера ресурсов в клиенте Spark и, если обнаружено несоответствие, сообщит об этом IllegalArgumentException: Server has invalid Kerberos principal
.
Чтобы решить эту проблему, нам нужно добавить адрес сервера в /etc/hosts
, и это работает. Но есть проблема: нам приходится редактировать этот файл на многих виртуальных машинах, подключающихся к диспетчеру ресурсов.
Есть ли способ отключить эту обратную проверку IP?
Мы пробовали менять krb5.conf и ставить такие конфиги, как rdns = false, но это не сработало.
Наконец, я нашел решение этого вопроса, прочитав коды Hadoop.
вы можете добавить следующую конфигурацию в свой Spark-клиент yarn-site.conf
на основе вашей конкретной конфигурации.
<property>
<name>yarn.resourcemanager.principal.pattern</name>
<value>*</value>
</property>
и следующее в hdfs-site.xml
<property>
<name>dfs.namenode.kerberos.principal.pattern</name>
<value>*</value>
</property>