使用SSH从Java应用程序连接到Hadoop

时间:2013-03-15 11:26:40

标签: java scala hadoop ssh hdfs

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

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

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

2 个答案:

答案 0 :(得分:1)

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

从那里你可以运行命令为“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-

答案 1 :(得分:0)

Hadoop是用Java实现的,因此您可以直接从应用程序运行Hadoop集群。如果它是远程集群,请使用Java RMI。你想要做的额外管道工作毫无意义。