有人可以告诉我如何在包含
的apache hadoop中执行我的HelloWorld.javaclass Helloworld
{
public static void main(String[] args)
{
Sytem.out.println("HelloWorld");
}
}
我正在运行一个节点。请告诉我如何运行这段代码或者发送一个绝对是初学者可以理解的链接。
答案 0 :(得分:2)
简短回答:你没有。
Hadoop在一般意义上不运行java应用程序。它运行Map Reduce作业,可以用java编写,但不一定是。您应该首先阅读一些apache hadoop文档。这是Map Reduce tutorial。您可能还想看看Tom White的书“Hadoop:权威指南”。
Hadoop是一种面向批处理的大规模数据处理系统。它实际上只适用于该问题空间中的应用程序。如果那些不是你想要解决的问题,那么Hadoop并不是你想要的。
答案 1 :(得分:1)
据我所知,apache hadoop与你的情况无关。你的问题是“如何运行用java编写的hello world”?
如果我的假设是正确的,请执行以下操作。
javac Helloworld.java
编译您的Java代码。您必须从代码所在的目录运行它。 JAVA_HOME / bin应该在你的路径中。 java Helloworld
为初学者搜索任何Java教程以获取详细信息。 祝你好运。
答案 2 :(得分:1)
在hadoop中运行jar的方式是通过命令
$HADOOP_HOME/bin/hadoop jar [your_jar_file]
您还可以使用-jar
强制它作为本地作业运行。对于播放和调试很有用。
虽然我没有使用如此简单的应用程序进行测试,但我认为应该打印该行然后完成。不要抱我这么做。 :-P
您可能需要指定main
throws Exception
,但我不是100%。我的代码有它。
我希望有所帮助。正如其他答案中所提到的,如果不设置Jobs和MapReduce,Hadoop就无法获得收益。
答案 3 :(得分:0)
您需要了解Map Reduce的工作原理。您可能需要查看hadoop示例的src,以了解Map Reduce程序的编写方式。
答案 4 :(得分:0)
独立操作 默认情况下,Hadoop配置为以非分布式模式运行,作为单个Java进程。这对调试很有用。
以下示例复制解压缩的conf目录以用作输入,然后查找并显示给定正则表达式的每个匹配项。输出将写入给定的输出目录。
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
$ cat output/*
答案 5 :(得分:0)
由于这是一个古老的问题,而且很多人已经提供了问题的答案,我的答案是为像我这样的初学者在寻找在 Hadoop 中运行 Hello World 的方法时不小心跳入此链接。
>是的,Hadoop 在 JVM 上运行。但正因为如此,您不需要 Hadoop 来运行这种简单的应用程序。 Hadoop 用于分布式处理。这意味着假设您有一个庞大的数据集,而您无辜的计算机无法处理这个庞大的数据集。那么你要做的就是从 n 台能够共同完成这项任务的无辜(商品)计算机那里获得帮助。
在 Hadoop 环境中,我们使用名为 Map-Reduce 的框架来完成此类任务。所以很明显,如果你没有在 Hadoop 环境中使用 Map-Reduce 框架,就像你在使用太空船而不是梯子爬上屋顶。
尽管这是几乎所有编程语言的通用 hello world 代码,但这不是 Hadoop 的 hello world 程序。这里有一个叫做 Word-Count 的程序,它会计算一个大文本文件或 n 个文件中每个单词出现的次数。
Word-Count program (Hadoop HelloWorld)
此外,您可以在 3 种模式下运行此程序。
我的建议是,作为初学者,尝试以伪分布式模式运行 Word-Count 程序。