我正在阅读Apache mapreduce tutorial
我能够运行该示例并获得所需的结果。但是,我无法理解如何运行以下命令来编译Java文件。
$ bin / hadoop com.sun.tools.javac.Main WordCount.java
我浏览了hapdoop command details。它在常规选项,用户命令和管理员命令下对所有hadoop开关进行了分区。我没有找到hadoop命令页面中给出的javac
命令以上的地方。
问即可。事实上,实际上我并没有得到上述命令如何工作。我的意思是我们通常在命令前面指定连字符前缀选项。但是上面的命令要求以我以前从未见过的方式运行javac。我通常用javac filename.java
直接编译java文件。为什么在这里被要求不这样做?
问即可。在给定命令中.Main
中也有com.sun.tools.javac.Main
。这是什么意思?
我知道我必须遗漏一些关于命令如何工作的非常基本的理解。另外我对linux很新,所以可能是不理解这个的原因。
答案 0 :(得分:2)
Javac用于编译java代码。如果你注意到WordCount示例,那么有许多import语句需要你在类路径中添加相应的jar。
当你运行hadoop com.sun.tools.javac.Main WordCount.java
时,hadoop已经加载了所有这些依赖jar来编译你的程序。你可以通过运行javac WordCount.java来测试它,如果你的类路径中没有这些必需的jar,编译器会抛出cannot find symbol
错误
答案 1 :(得分:1)
使用Hadoop,您可以设置希望它用于编译代码的编译器。
com.sun.tools.javac.Main是Java编程语言的编程接口
执行bin/hadoop
时,第一个参数为com.sun.tools.javac.Main
,第二个参数为WordCount.java
,
它使用com.sun.tools.javac.Main
编译WordCount.java