복붙노트

[HADOOP] SOCKS 프록시를 통해 Hadoop을 사용하고 있습니까?

HADOOP

SOCKS 프록시를 통해 Hadoop을 사용하고 있습니까?

따라서 Hadoop 클러스터는 일부 노드에서 실행되며 이러한 노드에서만 액세스 할 수 있습니다. 당신은 그들에게 SSH하고 당신의 일을하십시오.

그게 꽤 짜증나지만 (이해할 수 있듯이) 아무도 액세스 제어를 구성하려고 시도 할 뻔하기 때문에 가까이서 사용할 수 없기 때문에 차선책을 시도하고 있습니다. 즉, SSH를 사용하여 SOCKS 프록시를 클러스터:

$ ssh -D localhost:10000 the.gateway cat

SOCKS 지원 속삭임 (자연스럽게 나는 어떤 문서도 찾지 못했다)이 있으며 core-site.xml에 들어가는 것 같다.

<property>
  <name>fs.default.name</name>
  <value>hdfs://reachable.from.behind.proxy:1234/</value></property>
<property>
  <name>mapred.job.tracker</name>
  <value>reachable.from.behind.proxy:5678</value></property>
<property>
  <name>hadoop.rpc.socket.factory.class.default</name>
  <value>org.apache.hadoop.net.SocksSocketFactory</value></property>
<property>
  <name>hadoop.socks.server</name>
  <value>localhost:10000</value></property>

SOCKS에 대한 언급 없이는 hadoop fs -ls /를 제외하고는 여전히 실패합니다.

어떤 팁?

클러스터를 관리하지 않고 작업 만 실행하려고합니다. SOCKS를 통해 HDFS에 액세스하고 작업을 제출하기 만하면됩니다 (클러스터 노드간에 SSL / 프록시를 사용하는 것과는 완전히 별개의 것 같아요. 내 컴퓨터가 클러스터의 일부가 아니어야합니다. 클라이언트.)

그것에 관한 유용한 문서가 있습니까? 유용하지 못한 것을 설명하기 위해 : strace -f를 통해 hadoop 클라이언트를 실행하고 읽은 구성 파일을 체크 아웃하여 구성 값을 찾았습니다.

어떤 구성 값에 대해서도 대응할 수있는 설명이 있습니까? (문자 그대로 0 참조 문서를 찾았습니다. 오래된 튜토리얼과 다르게, 뭔가 빠져 있었으면 좋겠습니까?)

실제로 사용중인 구성 값을 덤프하는 방법이 있습니까?

해결법

  1. ==============================

    1.이 코드를 구현 한 원래 코드는 https://issues.apache.org/jira/browse/HADOOP-1822에 추가되었습니다.

    이 코드를 구현 한 원래 코드는 https://issues.apache.org/jira/browse/HADOOP-1822에 추가되었습니다.

    그러나이 기사에서는 소켓 클래스를 SOCKS로 변경해야한다고 언급합니다.

    http://rainerpeter.wordpress.com/2014/02/12/connect-to-hdfs-using-a-proxy/

      hadoop.rpc.socket.factory.class.default   org.apache.hadoop.net.SocksSocketFactory

    편집 : 속성을 다른 파일에 있음을 유의하십시오.

  2. from https://stackoverflow.com/questions/25071320/using-hadoop-through-a-socks-proxy by cc-by-sa and MIT license