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