1

我正在尝试连接到仅通过 HDFS 无法访问的远程 hadoop 集群。现在它正在以这种方式使用:用户通过 SSH 连接到 Jump box(例如 ssh user@somejumboxhost.com),然后从 jump box 服务器我们也使用 ssh 连接到 hadoop(例如 ssh user@realhadoopcluster1.com)。我要做的是使用 HDFS 客户端从我的 Scala/Java 应用程序访问文件。现在我感觉就像在 Matrix 中一样——“我必须更深入”并且不知道如何访问服务器。

可能有人有类似的经历?现在我正在尝试从我的应用程序使用 SSH 客户端连接到第一台服务器,但是我不知道如何调用 HDFS 客户端。

任何想法将不胜感激,谢谢!

4

2 回答 2

1

我能想到这样的事情。有“ganymed-ssh2”api 可以帮助您使用 ssh 连接到某个服务器并从那里运行 unix 命令。使用它,您可以连接到您的 jumo box。

从那里你可以运行命令“ssh user@realhadoopcluster1.com hadoop fs somthing”

因为我们可以像这样使用 ssh 运行命令。

从您的跳转框中,为您的 hadoopcluster 机器设置一个无密码的 ssh。或者您可以使用带密码的 sshpass。

您可以访问以下链接以检查如何使用此 api:

http://souravgulati.webs.com/apps/forums/topics/show/8116298-how-to-execute-unix-command-from-java-

于 2013-03-19T06:43:13.610 回答
0

Hadoop 是用 Java 实现的,因此您可以直接从您的应用程序运行 Hadoop 集群。如果是远程集群,请使用 Java RMI。你试图做的这个额外的管道是没有意义的。

于 2013-08-11T14:21:21.707 回答