在非集群计算机上编译 Hadoop MapReduce,在 Hadoop 集群上编译 运行

Compile Hadoop MapReduce on non-cluster computer and run on Hadoop cluster

我已经阅读了很多关于 Hadoop 的文档和信息,但无法弄清楚如何实现这个简单的工作流程:

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

看起来所有 developing/compiling/running 都应该在存在 bin/hadoop 命令行实用程序的 MasterNode 上完成和 Hadoop 库。我说得对吗?

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

I want to develop and compile Hadoop MapReduce with Hadoop Java API on my working machine with all installed IDEs, etc.

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

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

如果你有 eclipse 和 maven,你只需要创建 pom 文件 正确的依赖项。

I want to deploy and run MapReduce jobs onto Hadoop cluster with simplest possible way (better from IDE)

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

配置单元查询

I want to be able to integrate these MapReduce jobs into external application and be able to run them transparantly.

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

It looks like that all developing/compiling/running should by done on MasterNode where exist bin/hadoop command line utility and Hadoop libraries. Am I correct?

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

What are the general approaches to developing, running, deploying MapReduce applications? Is there some kind of maven plugin for integrate all Hadoop dependencies into you project?

上面的答案详细解释了这一点