如何获取在 运行 hadoop hdfs 命令时调用的 Java 类 的列表?

How to get a list of Java classes which are called at the time of running hadoop hdfs command?

是否有任何命令可以让我们找到所有 java 类 如果我们提交如下命令将被调用的命令:

hdfs dfs –copyFromLocal data.txt /tmp

因此,没有命令可以获取内部调用的 classes 的 Class 图。但下面是当任何 hadoop shell 命令在终端上 运行 时调用的一系列 classes。

第一个class是org.apache.hadoop.fs.FsShell.java

如果您在没有任何选项的情况下键入 hadoop fshdfs dfs,将调用 FsShell.javaprintUsage 方法来显示帮助。

在终端上,您将得到这样的 printUsage 方法的输出。

第二个 class 是 org.apache.hadoop.fs.shell.FsCommand,是从 FsShell class.

中调用的

所有 shell 命令,如 (-ls)Ls.class、(-mkdir)Mkdir.class 都是在 CommandFactory.java 的帮助下在 FsShell 中注册的class.

最终您会得到一个 hadoop 命令列表 class,如下所示。

其中很少有静态内部 class 用于类似功能。

(-ls,-lsr)org.apache.hadoop.fs.shell.Ls.java
(-mkdir)org.apache.hadoop.fs.shell.Mkdir.java
(-mv) org.apache.hadoop.fs.shell.MoveCommands.java
(-rm,rmdir,-rmr,-expunge)org.apache.hadoop.fs.shell.Delete.java

还有镇上的名人,因为每个人都知道他们 i.e.copy 命令。

(-getmerge,-cp,-copyFromLocal,copyToLocal,-get,-put)org.apache.hadoop.fs.shell.CopyCommands.java