Hadoop richiede sia l'endpoint SOCKS sia una factory di socket client che lo legga. Aggiungete entrambi al core-site.xml caricato per l'operazione:

<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, SocksSocketFactory legge l'endpoint host:port dalla propria Configuration e crea socket Java con quel percorso. Per un test TCP pubblico consentito senza autenticazione del proxy, una voce compatibile dell'elenco dei proxy SOCKS può fornire hadoop.socks.server; verificate l'accesso a tutte le destinazioni e porte di protocollo richieste.

Prima di presumere che sia selezionato il valore predefinito, ispezionate la chiave specifica del protocollo: NetUtils controlla prima hadoop.rpc.socket.factory.class. seguito dal nome semplice della classe di protocollo. Usa il valore predefinito solo quando quella ricerca non seleziona alcuna factory.

Un valore proveniente da un altro file caricato può quindi mantenere attiva la vecchia factory. Ispezionate la Configuration effettiva del client invece di un singolo file XML su un server.

Questo vale dove Hadoop usa quella factory TCP. Conserva il comportamento dell'indirizzo di destinazione e del DNS del componente; scegliere il proxy non è un'istruzione a inventare risultati DNS sostitutivi.

Articoli correlati