Почему setConfiguration (Конфигурация conf) метода класса UserGroupInformation статичен?
Почему класс UserGroupInformation разработан таким образом?
Почему setConfiguration (Конфигурация conf) метод UserGroupInformation класс статичен?
Я понимаю, что это ограничит возможность подключения клиента только к 1 кластеру на JVM.
Как мы можем одновременно подключаться к нескольким кластерам из одной JVM? Я думаю, что это очень простой сценарий, который в настоящее время не поддерживается API Hadoop.
Любая помощь будет оценена.
Ответы
Ответ 1
Я не уверен, почему они сделали метод статическим. Но если вы хотите получить доступ к нескольким кластерам из одного JVM, вы можете использовать несколько загрузчиков классов, чтобы обойти проблему установки нескольких конфигураций из одной JVM.
Вот несколько ссылок:
Ответ 2
Что такое статический метод?
В целом основной мотивацией для создания статического метода является удобство. Вы можете вызвать статический метод без создания какого-либо объекта, просто используя его имя класса. Поэтому, если вам нужен метод, который вы хотите вызвать непосредственно по имени класса, сделайте этот метод статическим. Классы полезности, например. java.lang.Math
или StringUtils
, являются хорошими примерами классов, в которых используются статические методы.
Какой статический метод?
- Статический метод не изменяет состояние объекта. Поскольку состояние объекта
поддерживается как переменные экземпляра
- Статический метод в основном работает с аргументами, почти все статические методы
принимает аргументы, выполняет некоторые вычисления и возвращает значение.
Что такое setConfiguration?
setConfiguration(Configuration conf)
-
Задайте статическую конфигурацию для UGI. В частности, установите механизм проверки подлинности безопасности и службу поиска группы.
Как мы можем одновременно подключаться к нескольким кластерам из одного JVM? Я думаю, что это очень простой сценарий, который в настоящее время не является поддерживаемый API Hadoop.
Ans: API Hadoop использует шаблон для создания одноэлементного кода. Вы не можете этого сделать, потому что, если вы можете себе представить, что когда-либо требовалось использовать наследование объектов или нужно использовать полиморфизм для вашего метода, вам обязательно нужно пропустить статику и сделать ее методом экземпляра.
Здесь описывается хороший scenerio: Статические методы - это запах кода
Ссылка на ресурс: