我目前正在尝试通过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)工作?
再一次,我不认为我的依赖性有任何问题,因为我所有的导入都没有错误。这只是一个变量,如果我错了,请一定要启发我。
1条答案
按热度按时间fruv7luv1#
这可能是您使用的反编译器的问题(或限制或设置),它没有显示内部类
DataStreamer
.您可以直接查看库的源代码,而不是使用反编译器
sources
分类器jar可从maven存储库获得。下载它并进入相关类,您将发现
DataStreamer
第227行的类:一般来说,大多数maven依赖项都会提供
sources
(和javadoc
)分类器,无需使用反编译器。注意,maven不知道源代码或javadoc,它们只是同一个库和版本的分类器,所以它们不一定总是存在,但很可能会存在。如果您想从maven获取源代码而不需要手动浏览和下载,您可以检查关于该主题的其他so问答。