【发布时间】:2014-09-04 05:49:53
【问题描述】:
所以我们的 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>
除了hadoop fs -ls / 仍然失败,没有提到 SOCKS。
有什么建议吗?
我只是想运行作业,而不是管理集群。 我只需要通过 SOCKS 访问 HDFS 并提交作业(似乎在集群节点等之间使用 SSL/代理是完全不同的事情;我不希望这样,我的机器不应该是集群的一部分,只是客户。)
是否有任何有用的文档?为了说明我没有找到任何有用的东西:我通过 strace -f 运行 hadoop 客户端并检查它读取的配置文件找到了配置值。
是否在任何地方都描述了它甚至对哪些配置值做出反应? (我确实找到了零参考文档,只是不同的过时教程,我希望我错过了什么?)
有没有办法转储它实际使用的配置值?
【问题讨论】:
-
你有没有想过如何做到这一点?你是 YARN 的 hadoop v2 吗?我可以使用您在此处的设置访问 HDFS 和 YARN,但 YARN 作业失败,因为节点无法相互通信(可能他们也试图通过 socks 代理这样做)。
hadoop fs -ls给出了什么错误? -
不……我只通过 SSH 使用过它,但由于集群的其他问题,很快就完全停止了。