【问题标题】:Using Hadoop through a SOCKS proxy?通过 SOCKS 代理使用 Hadoop?
【发布时间】: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 使用过它,但由于集群的其他问题,很快就完全停止了。

标签: hadoop proxy


【解决方案1】:

https://issues.apache.org/jira/browse/HADOOP-1822 中添加了实现这一点的原始代码

但是这篇文章也指出,你必须将套接字类更改为 SOCKS

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

<property> <name>hadoop.rpc.socket.factory.class.default</name> <value>org.apache.hadoop.net.SocksSocketFactory</value> </property>

编辑:注意属性放在不同的文件中:

  1. fs.default.name 和 hadoop.socks.server 和 hadoop.rpc.socket.factory.class.default 需要进入 core-site.xml
  2. mapred.job.tracker 和 mapred.job.tracker.http.address 配置需要进入 ma​​pred-site.xml(用于 map-reduce 配置)

【讨论】:

  • 嗯,这是我已经设置的属性之一,没有效果。我手动隧道化了两个使用的端口
  • 我已经进一步研究了源代码,并且通过 SOCKS 的 HDFS 可以可靠地与上面的配置一起工作,但不能与其他服务(例如 hive)一起工作,所以它对我没有多大用处。
猜你喜欢
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-26
  • 1970-01-01
  • 2012-09-18
  • 2016-09-16
  • 1970-01-01
相关资源
最近更新 更多