hadoop 命令如何与 javac 一起工作

How hadoop command works with javac

我正在阅读 Apache mapreduce tutorial

我能够 运行 这个例子并得到想要的结果。但是,我无法理解如何要求我们 运行 下面编译 Java 文件。

$ bin/hadoop com.sun.tools.javac.Main WordCount.java

我经历了 hapdoop command details。它在常规选项、用户命令和管理员命令下对所有 hadoop 开关进行分区。我没有在 hadoop 命令页面中找到上述 javac 命令的位置。

Q。事实上实际上我没有得到上面的命令是如何工作的。我的意思是我们通常在命令前指定带连字符前缀的选项。然而,上面的命令以我以前从未见过的方式询问 运行 javac 。我平时都是直接javac filename.java编译java个文件。为什么这里要求不要这样做?

Q。在给定的命令中 com.sun.tools.javac.Main 中也有 .Main。这是什么意思?

我知道我一定遗漏了一些关于命令一般如何工作的非常基本的理解。另外,我对 linux 很陌生,所以这可能是我不理解这一点的原因。

使用 Hadoop,您可以设置希望它用于编译代码的编译器。

com.sun.tools.javac.Main 是 Java 编程语言

的编程接口

执行bin/hadoop时,第一个参数为com.sun.tools.javac.Main,第二个参数为WordCount.java, 它使用 com.sun.tools.javac.Main 编译 WordCount.java

More on com.sun.tools.javac.Main

Javac 用于编译您的 java 代码。如果您注意到 WordCount 示例,有很多导入语句需要您在类路径中添加相应的 jar。

当你 运行 hadoop com.sun.tools.javac.Main WordCount.java 时,hadoop 已经加载了所有这些依赖的 jar 来编译你的程序。您可以通过 运行ning javac WordCount.java 测试它,如果您的类路径中还没有这些必需的 jar,编译器会抛出 cannot find symbol 错误