Eine SOCKS-Socket-Factory in der Client-Konfiguration von Hadoop
SOCKS-Endpunkt und Factory-Klasse zusammen laden und dann die protokollspezifischen Factory-Überschreibungen von Hadoop berücksichtigen.
Hadoop benötigt sowohl den SOCKS-Endpunkt als auch eine Client-Socket-Factory, die ihn liest. Tragen Sie beides in die geladene core-site.xml des Vorgangs ein:
<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>In Hadoop 3.4.2 liest SocksSocketFactory den host:port-Endpunkt aus ihrer Configuration und erstellt Java-Sockets, die diese Route verwenden. Für einen zulässigen öffentlichen TCP-Test ohne Proxy-Authentifizierung kann ein kompatibler Eintrag aus der SOCKS-Proxy-Liste hadoop.socks.server liefern; bestätigen Sie den Zugriff auf alle erforderlichen Protokollziele und Ports.
Bevor Sie annehmen, dass die Standard-Factory gewählt wird, prüfen Sie den protokollspezifischen Schlüssel: NetUtils prüft zuerst hadoop.rpc.socket.factory.class. gefolgt vom einfachen Namen der Protokollklasse. Die Standard-Factory wird nur verwendet, wenn diese Suche keine Factory auswählt.
Ein Wert aus einer anderen geladenen Datei kann daher die alte Factory aktiv halten. Prüfen Sie die effektive Client-Configuration und nicht nur eine XML-Datei auf einem Server.
Dies gilt, wo Hadoop diese TCP-Factory verwendet. Sie behält das Zieladress- und DNS-Verhalten der Komponente bei; die Auswahl des Proxys ist keine Anweisung, ersetzte DNS-Ergebnisse zu erfinden.