【问题标题】:Not able to run Hadoop job remotely无法远程运行 Hadoop 作业
【发布时间】:2014-03-05 07:43:33
【问题描述】:

我想从 Windows 机器远程运行 hadoop 作业。集群在 Ubuntu 上运行。

基本上,我想做两件事:

  1. 远程执行 hadoop 作业。
  2. 从 hadoop 输出目录检索结果。

我不知道如何实现这一点。我正在使用 hadoop 版本 1.1.2

我尝试在 Job 配置中传递 jobtracker/namenode URL,但失败了。

我尝试了以下示例:Running java hadoop job on local/remote cluster

结果:由于无法加载目录而始终出现错误。它类似于这篇文章: Exception while submitting a mapreduce job from remote system

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    欢迎来到痛苦的世界。我刚刚实现了这个确切的用例,但是使用 Hadoop 2.2(当前稳定版本)从源代码修补和编译。

    简而言之,我所做的是:

    1. Hadoop 2.2 sources tarball 下载到Linux 机器并解压到临时目录。
    2. 申请these patches,它解决了从Windows客户端连接到Linux服务器的问题。
    3. 从源代码构建它,使用these instructions。如果您有 64 位 Linux 服务器,它还将确保您拥有 64 位本机库。确保按照帖子的指示修复构建文件,否则构建将失败。请注意,安装 protobuf 2.5 后,您必须运行 sudo ldconfig,参见 this post
    4. 在服务器节点上部署来自hadoop-2.2.0-src/hadoop-dist/target 的 dist tar 并配置它。我无法帮助您,因为您需要根据您的集群拓扑对其进行调整。
    5. 在您的客户端 Windows 计算机上安装 Java。确保它的路径中没有空格,例如c:\java\jdk1.7
    6. 部署您在 Windows 客户端上构建的相同 Hadoop dist tar。它将包含针对 Windox/Linux 连接问题的关键修复。
    7. 按照this Stackoverflow answer 中的说明编译winutils 和Windows 本机库。这比在 Windows 上构建整个 Hadoop 更简单。
    8. these instructions 中所述设置JAVA_HOMEHADOOP_HOMEPATH 环境变量
    9. 使用文本编辑器或unix2dos(来自Cygwin 或独立)转换binetc\hadoop 目录中的所有.cmd 文件,否则在运行它们时会出现关于标签的奇怪错误。李>
    10. 在配置 XML 文件中配置与集群的连接属性,即fs.default.namemapreduce.jobtracker.addressyarn.resourcemanager.hostname 等。
    11. 添加第 2 项中的补丁所需的其余配置。这仅对客户端是必需的。否则补丁将不起作用。

    如果您已经管理了所有这些,您可以启动您的 Linux Hadoop 集群并从您的 Windows 命令提示符连接到它。快乐!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多