【发布时间】:2015-01-17 16:19:40
【问题描述】:
我有一个简单的 java 程序来设置 MR 作业。我可以使用“hadoop jar”在 Hadoop 基础架构(hadoop 2x)中成功执行此操作。但我想用下面的 java 命令来实现同样的事情。
java 类名
- 如何将 hadoop 配置传递给这个 className?
- 我需要提供哪些额外的参数?
- 我们将不胜感激任何链接/文档。
【问题讨论】:
我有一个简单的 java 程序来设置 MR 作业。我可以使用“hadoop jar”在 Hadoop 基础架构(hadoop 2x)中成功执行此操作。但我想用下面的 java 命令来实现同样的事情。
java 类名
【问题讨论】:
当您使用其他参数运行“hadoop jar”命令时,您可以使用 java 运行同样的方式。
检查此命令是否计算为 hadoop 类路径
$ hadoop classpath
那么无论你的自定义 jar 是什么,都应该添加到类路径中
$ java -cp `hadoop classpath`:/my/tools/jar/tools.jar
我可以在我的 hadoop 集群上使用它
【讨论】:
我认为您找不到关于此的文档。 hadoop 命令是一个脚本,那里使用了很多类,例如。用于访问文件系统 FsShell 的类,运行 jar RunJar 时使用的类等。添加 hadoop 相关库,配置文件到类路径在 hadoop 命令本身中处理。
你最好看看 hadoop 脚本。
【讨论】:
你怎么能做到这一点?任何 jar 文件执行意味着,它必须在分布式环境中执行,所有守护进程协同工作以完成执行。 我们不在本地或本地文件系统上运行。所以,它需要按照 hdfs 的规范执行,所以我认为我们不能像在本地文件系统中那样执行。
【讨论】:
Hadoop 是一个简化分布式计算的框架。在 hadoop 之前,程序员也了解并行处理和多线程概念。但是当你处理多台机器时,你需要知道如何
因此,就您而言,根据您的要求,没有直接的答案。因为通过传递参数,您的程序不起作用。您将需要编写大量库来处理分布式计算。如果您想探索它们,那么我建议您继续阅读 hadoop 源代码。
http://hadoop.apache.org/version_control.html
【讨论】: