eclipse—使用依赖项修改Hadoop2.7.1的dfsoutputstream.java

kpbwa7wx  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(337)

我目前正在尝试通过java文件修改hadoop中文件分割的块大小(不,我不想通过xml文件修改它),我需要修改的java文件被调用 DFSOutputStream.java (在 org.apache.hadoop.hdfs Package )。在hadoop2.7.1中,这个java文件位于一个名为hadoop-hdfs-2.7.1.jar的jar文件中,当我提取它时,它包含一个名为 DFSOutputStream.class . 一旦我反编译 DFSOutputStream.class 我找回了 DFSOutputStream.java 我可以在那里修改java代码中的块大小。
由于使用了eclipsemaven插件,因此 DFSOutputStream.java 无错误工作,所有导入都被检测到并工作。然而, DFSOutputStream.java 无法解析变量声明为的任何变量 DataStreamer 类型。我是否丢失了一个类文件以便这个类变量(datastreamer)工作?
再一次,我不认为我的依赖性有任何问题,因为我所有的导入都没有错误。这只是一个变量,如果我错了,请一定要启发我。

fruv7luv

fruv7luv1#

这可能是您使用的反编译器的问题(或限制或设置),它没有显示内部类 DataStreamer .
您可以直接查看库的源代码,而不是使用反编译器 sources 分类器jar可从maven存储库获得。
下载它并进入相关类,您将发现 DataStreamer 第227行的类:

class DataStreamer extends Daemon {
     ...

一般来说,大多数maven依赖项都会提供 sources (和 javadoc )分类器,无需使用反编译器。注意,maven不知道源代码或javadoc,它们只是同一个库和版本的分类器,所以它们不一定总是存在,但很可能会存在。
如果您想从maven获取源代码而不需要手动浏览和下载,您可以检查关于该主题的其他so问答。

相关问题