|
> mapred depends on core and hdfs
No, mapred should only depend on core. Core should include the FileSystem API, which should be sufficient for mapreduce. Here's a patch which fixes the easier inter-module dependencies. There are a few left which require a bit more effort/discussion:
Core
HDFS
MapRed
> Should we add setVerifyChecksum to FileSystem?
+1 > Replace with own line-reading code. Or move line-reading code to util? > Have a MapRed ReflectionUtils that does this extra configuration? +1 > Should we get this from the FileSystem cache? It should use FileSystem#statisticsTable (which, incidentally, should be named STATISTICS_TABLE). Perhaps we should add a FileSystem method like: public static Map<String, Statistics> getStatistics(); That returns the stats indexed by URI scheme? > DataNode, FSNamesystem, SecondaryNameNode all depends on StatusHttpServer which is in mapred. Split out common part and put in core.
+1 We should create a package in core for the base web server class and the general servlet classes (e.g. org.apache.hadoop.util.ServletUtil). Should we create a separated issue for this?
Yes. It's probably worth creating subtasks for the remaining fixes as they are all fairly large and unrelated to each other. When they've been fixed we can make the change to enforce the dependencies by compiling each module separately. Created
The latest patch in
Actually, the dependency should just be:
hdfs depends on core This patch:
I think this patch can go in and doesn't need to wait for
-1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12394174/3750_v1.patch against trunk revision 720930. +1 @author. The patch does not contain any @author tags. -1 tests included. The patch doesn't appear to include any new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs warnings. +1 Eclipse classpath. The patch retains Eclipse classpath integrity. -1 core tests. The patch failed core unit tests. -1 contrib tests. The patch failed contrib unit tests. Test results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3664/testReport/ This message is automatically generated. Correction in build.xml to include ${build.src} directory for compilation
all core and contrib tests passed on my local box.
output from test-patch: [exec] -1 overall.
[exec] +1 @author. The patch does not contain any @author tags.
[exec] -1 tests included. The patch doesn't appear to include any new or modified tests.
[exec] Please justify why no tests are needed for this patch.
[exec] +1 javadoc. The javadoc tool did not generate any warning messages.
[exec] +1 javac. The applied patch does not increase the total number of javac compiler warnings.
[exec] +1 findbugs. The patch does not introduce any new Findbugs warnings.
[exec] +1 Eclipse classpath. The patch retains Eclipse classpath integrity.
Integrated in Hadoop-trunk #680 (See http://hudson.zones.apache.org/hudson/job/Hadoop-trunk/680/
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bill de hÓra has mapped the dependency cycles
in the codebase using Structure101
. We should consider using this for keeping an eye on further dependency problems.