我有一个简单的java程序来设置MR作业。我可以使用' hadoop jar'在Hadoop基础设施(hadoop 2x)中成功执行此操作。但是我想用下面的java命令来实现同样的目的。
java className
答案 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之前,程序员也知道并行处理和多线程概念。但是当你处理多台机器时,你需要知道如何
所以在您的情况下,根据您的要求,没有直接的答案。因为通过传递参数,您的程序无法正常工作。您需要编写大量库来处理分布式计算。如果你想探索它们,那么我建议继续阅读hadoop源代码。
http://hadoop.apache.org/version_control.html