Hadoop necesita tanto el extremo SOCKS como una fábrica de sockets de cliente que lo lea. Añada ambos al core-site.xml cargado para la operación:

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

En Hadoop 3.4.2, SocksSocketFactory lee el extremo host:port de su Configuration y crea sockets Java con esa ruta. Para una prueba TCP pública permitida sin autenticación de proxy, una entrada compatible de la lista de proxies SOCKS puede proporcionar hadoop.socks.server; confirme el acceso a todos los destinos y puertos de protocolo necesarios.

Antes de suponer que se ha seleccionado el valor predeterminado, inspeccione la clave específica del protocolo: NetUtils comprueba primero hadoop.rpc.socket.factory.class. seguido del nombre simple de la clase de protocolo. Solo usa el valor predeterminado cuando esa búsqueda no selecciona ninguna fábrica.

Por tanto, un valor de otro archivo cargado puede mantener activa la fábrica antigua. Inspeccione la Configuration efectiva del cliente en lugar de un solo archivo XML en un servidor.

Esto se aplica donde Hadoop usa esa fábrica TCP. Conserva el comportamiento de dirección de destino y DNS del componente; elegir el proxy no es una instrucción para inventar resultados DNS de reemplazo.

Artículos relacionados