O Hadoop precisa tanto do endpoint SOCKS como de uma fábrica de sockets de cliente que o leia. Adicione ambos ao core-site.xml carregado para a operação:

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

No Hadoop 3.4.2, SocksSocketFactory lê o endpoint host:port da sua Configuration e cria sockets Java com essa rota. Para um teste TCP público permitido sem autenticação de proxy, uma entrada compatível da lista de proxies SOCKS pode fornecer hadoop.socks.server; confirme o acesso a todos os destinos e portas de protocolo necessários.

Antes de presumir que o valor predefinido foi escolhido, inspecione a chave específica do protocolo: o NetUtils verifica primeiro hadoop.rpc.socket.factory.class. seguido do nome simples da classe de protocolo. Só usa o valor predefinido quando essa pesquisa não seleciona nenhuma fábrica.

Um valor de outro ficheiro carregado pode, por isso, manter a fábrica antiga ativa. Inspecione a Configuration efetiva do cliente em vez de um único ficheiro XML num servidor.

Isto aplica-se onde o Hadoop usa essa fábrica TCP. Preserva o comportamento de endereço de destino e de DNS do componente; escolher o proxy não é uma instrução para inventar resultados DNS de substituição.

Artigos relacionados