Hadoop potrzebuje zarówno punktu końcowego SOCKS, jak i fabryki gniazd klienta, która go odczytuje. Dodaj oba do pliku core-site.xml wczytywanego dla operacji:

<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>

W Hadoop 3.4.2 SocksSocketFactory odczytuje punkt końcowy host:port ze swojej Configuration i tworzy gniazda Java tą trasą. Do dozwolonego publicznego testu TCP bez uwierzytelniania proxy zgodny wpis z listy proxy SOCKS może dostarczyć hadoop.socks.server; potwierdź dostęp do wszystkich wymaganych celów protokołu i portów.

Zanim założysz, że wybrano wartość domyślną, sprawdź klucz specyficzny dla protokołu: NetUtils najpierw sprawdza hadoop.rpc.socket.factory.class., a następnie prostą nazwę klasy protokołu. Wartości domyślnej używa tylko wtedy, gdy to wyszukiwanie nie wybierze żadnej fabryki.

Wartość z innego wczytanego pliku może więc utrzymać starą fabrykę w użyciu. Sprawdzaj efektywną konfigurację klienta, a nie jeden plik XML na serwerze.

Dotyczy to miejsc, w których Hadoop używa tej fabryki TCP. Zachowuje ona zachowanie adresu docelowego i DNS komponentu; wybór proxy nie jest poleceniem wymyślania zastępczych wyników DNS.

Powiązane artykuły