【问题标题】:Compile Hadoop MapReduce on non-cluster computer and run on Hadoop cluster在非集群计算机上编译 Hadoop MapReduce 并在 Hadoop 集群上运行
【发布时间】:2016-01-04 21:50:23
【问题描述】:

我阅读了很多关于 Hadoop 的文档和信息,但不知道如何实现这个简单的工作流程:

  1. 我想在我的工作机器上使用 Hadoop Java API开发和编译 Hadoop MapReduce,并安装所有 IDE 等。
  2. 我想以最简单的方式部署并在 Hadoop 集群上运行 MapReduce 作业(最好使用 IDE)
  3. 我希望能够将这些 MapReduce 作业集成到外部应用程序中,并能够透明地运行它们。

看起来所有的开发/编译/运行都应该在存在 bin/hadoop 命令行实用程序和 Hadoop 库的 MasterNode 上完成。我说的对吗?

开发、运行和部署 MapReduce 应用程序的一般方法是什么?是否有某种 Maven 插件可以将所有 Hadoop 依赖项集成到您的项目中?

【问题讨论】:

  • 你好,这是一个有点笼统的问题,只是为了让你开始看看这篇 [文章] (hadoopi.wordpress.com/2013/05/25/…) 有帮助吗?根据 hadoop 的版本,有些人可能会说最常用的依赖项是 hadoop-client 参见here

标签: java maven hadoop mapreduce cloudera


【解决方案1】:

我想在安装了所有 IDE 等的工作机器上使用 Hadoop Java API 开发和编译 Hadoop MapReduce。

你可以从这个playlist观看视频3、4和5来了解 如何在本地运行 map reduce 应用程序。

它提供了有关如何开发 map reduce 的信息 使用 STS 的应用程序(Spring Tool Suite - eclipse with spring and maven 插件)

如果你有 Maven 的 Eclipse,你只需要创建 pom 文件 正确的依赖关系。

我想以最简单的方式在 Hadoop 集群上部署和运行 MapReduce 作业(最好使用 IDE)

从 IDE 在集群上运行 hadoop map reduce 作业很乏味。 但是,您可以使用 JDBC 运行 hive 查询。

我希望能够将这些 MapReduce 作业集成到外部应用程序中并能够透明地运行它们。

您可以将它与其他应用程序集成运行,但该节点具有 拥有 hadoop 二进制文件。

看起来所有开发/编译/运行都应该在存在 bin/hadoop 命令行实用程序和 Hadoop 库的 MasterNode 上完成。我说的对吗?

需要在主节点上运行是不正确的理解。 实际上你不应该从主节点运行任何东西。通常 应该使用网关节点或客户端节点来提交作业。网关 或客户端节点将拥有所有 hadoop 二进制文件和配置文件 但它不会运行任何守护进程。

开发、运行和部署 MapReduce 应用程序的一般方法是什么?是否有某种 Maven 插件可以将所有 Hadoop 依赖项集成到您的项目中?

以上答案详细解释了这一点

【讨论】:

  • 感谢详细的解释,Durga。在玩了之后,我成功地从您的视频中运行了 MapReduce。但我有一个问题 - 当我从 Eclipse/Intellij IDEA 运行时,不使用 hadoop jar ... - 它是什么模式?应用程序如何运行/连接到 NameNode、DataNode? ir tun 是否在一个进程中使用所有默认设置在本地进行?
猜你喜欢
  • 1970-01-01
  • 2013-04-01
  • 2012-07-09
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多