Фабрика сокетів SOCKS у клієнтській конфігурації Hadoop
Завантажте кінцеву точку SOCKS і клас фабрики разом, а потім врахуйте перевизначення фабрики, специфічні для протоколу в Hadoop.
Hadoop потребує і кінцевої точки SOCKS, і клієнтської фабрики сокетів, яка її читає. Додайте обидві до core-site.xml, завантаженого для операції:
<property>
<name>hadoop.socks.server</name>
<value>proxy.example.net:1080</value>
</property>
<property>
<name>hadoop.rpc.socket.factory.class.default</name>
<value>org.apache.hadoop.net.SocksSocketFactory</value>
</property>У Hadoop 3.4.2 SocksSocketFactory читає кінцеву точку host:port зі своєї Configuration і створює Java-сокети цим маршрутом. Для дозволеного публічного TCP-тесту без автентифікації проксі сумісний запис зі списку SOCKS-проксі може надати hadoop.socks.server; підтвердьте доступ до всіх потрібних адресатів протоколу та портів.
Перш ніж вважати, що вибрано значення за замовчуванням, перевірте ключ, специфічний для протоколу: NetUtils спершу перевіряє hadoop.rpc.socket.factory.class., а потім просте ім'я класу протоколу. Значення за замовчуванням він використовує лише тоді, коли цей пошук не вибирає жодної фабрики.
Тому значення з іншого завантаженого файлу може залишити стару фабрику активною. Перевіряйте чинну клієнтську Configuration, а не один XML-файл на сервері.
Це стосується місць, де Hadoop використовує цю TCP-фабрику. Вона зберігає поведінку компонента щодо адреси призначення та DNS; вибір проксі не є вказівкою вигадувати замінні результати DNS.