2015-01-17 265 views
0

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

Java类名

  1. 如何我可以通过Hadoop配置这个类名?
  2. 我需要提供哪些额外参数?
  3. 任何链接/文档将不胜感激。

回答

0

我不认为你可以找到这方面的文档。 hadoop命令是一个脚本,在那里使用了很多类。用于访问文件系统的类FsShell,当我们运行一个jar RunJar时使用的类。添加hadoop相关的库,配置文件到classpath在hadoop命令本身中处理。

你最好看看hadoop脚本。

0

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

0

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

  • 如果一台机器出现故障的机器之间如何

    1. 沟通
    2. 网络处理?容错 等等!这是一个巨大的,这是hadoop简化你的工作。它负责所有运营级别的事情,并且可以专注于您的业务逻辑。

    所以在你的情况下,根据你的要求,没有直接的答案。因为通过传递参数你的程序不起作用。你需要编写大量的库来处理分布式计算。如果你想探索它们,那么我会建议继续阅读hadoop源代码。

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

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

    检查,这个命令的计算结果为Hadoop的类路径

    $ hadoop classpath 
    

    那么无论您的自定义罐子应该在类路径中添加

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

    我能够得到我的这个工作,在我的hadoop群集上