Hadoop 클라이언트 구성의 SOCKS 소켓 팩터리
SOCKS 엔드포인트와 팩터리 클래스를 함께 로드한 다음 Hadoop의 프로토콜별 팩터리 재정의를 고려하십시오.
Hadoop에는 SOCKS 엔드포인트와 이를 읽는 클라이언트 소켓 팩터리가 모두 필요합니다. 두 가지를 작업에 로드된 core-site.xml에 추가하십시오:
<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>Hadoop 3.4.2에서 SocksSocketFactory은 자체 Configuration에서 host:port 엔드포인트를 읽고 그 경로로 Java 소켓을 만듭니다. 프록시 인증이 없는 허용된 공개 TCP 테스트에는 SOCKS 프록시 목록의 호환 항목이 hadoop.socks.server를 제공할 수 있습니다. 필요한 모든 프로토콜 대상과 포트에 대한 접근을 확인하십시오.
기본값이 선택되었다고 가정하기 전에 프로토콜별 키를 확인하십시오. NetUtils는 먼저 hadoop.rpc.socket.factory.class.을 확인한 다음 프로토콜 클래스의 단순 이름을 확인합니다. 해당 조회에서 팩터리를 선택하지 않을 때만 기본값을 사용합니다.
따라서 다른 로드된 파일의 값이 이전 팩터리를 계속 활성화할 수 있습니다. 서버의 XML 파일 하나가 아니라 실제 적용되는 클라이언트 Configuration을 확인하십시오.
이는 Hadoop이 해당 TCP 팩터리를 사용하는 곳에 적용됩니다. 구성 요소의 대상 주소 및 DNS 동작은 유지됩니다. 프록시를 선택하는 것은 대체 DNS 결과를 만들어 내라는 지시가 아닙니다.