使用java命令运行hadoop作业

时间:2015-01-17 16:19:41

标签: hadoop mapreduce hadoop2

我有一个简单的java程序来设置MR作业。我可以使用' hadoop jar'在Hadoop基础设施(hadoop 2x)中成功执行此操作。但是我想用下面的java命令来实现同样的目的。

java className

  1. 如何将hadoop配置传递给此className?
  2. 我需要提供哪些额外的参数?
  3. 任何链接/文档都将受到高度赞赏。

4 个答案:

答案 0 :(得分:1)

当您使用其他参数运行'hadoop jar'命令时,可以使用java运行相同的方式。

检查此命令是否计算为hadoop类路径

$ hadoop classpath

然后,无论你的自定义jar是什么,都应该在类路径中添加

$ java -cp `hadoop classpath`:/my/tools/jar/tools.jar

我能够在我的hadoop集群中使用它

答案 1 :(得分:0)

我认为您无法找到相关文档。 hadoop命令是一个脚本,例如,那里使用了很多类。用于访问文件系统的类FsShell,运行jar RunJar时使用的类等。在hadoop命令本身中处理将hadoop相关库,配置文件添加到类路径中。

你最好看看hadoop脚本。

答案 2 :(得分:0)

你怎么能这样做?任何jar文件执行都意味着,它必须在所有守护进程协同工作以完成执行的分布式环境中执行。 我们没有在本地或本地文件系统上运行。因此,它需要按照hdfs的规范执行,所以我不认为我们可以像在本地文件系统中那样执行。

答案 3 :(得分:0)

Hadoop是一个简化分布式计算的框架。在hadoop之前,程序员也知道并行处理和多线程概念。但是当你处理多台机器时,你需要知道如何

  1. 在机器之间进行通信
  2. 网络处理
  3. 如果一台机器发生故障怎么办?容错 还有很多!这是一个巨大的,其中hadoop简化了你的工作。它可以处理所有操作级别的内容,您可以专注于业务逻辑。
  4. 所以在您的情况下,根据您的要求,没有直接的答案。因为通过传递参数,您的程序无法正常工作。您需要编写大量库来处理分布式计算。如果你想探索它们,那么我建议继续阅读hadoop源代码。

    http://hadoop.apache.org/version_control.html