【问题标题】:Connecting to Hadoop from Java app using SSH使用 SSH 从 Java 应用程序连接到 Hadoop
【发布时间】:2013-08-11 22:21:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: java scala hadoop ssh hdfs


    【解决方案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-

    【讨论】:

    • 感谢您的回答。实际上,我最终得到了类似的东西,我使用的是 scala-ssh lib,但后来决定将我需要访问的文件放在更好的地方,这样更容易获得。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-02
      • 2020-01-17
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      相关资源
      最近更新 更多