-
Notifications
You must be signed in to change notification settings - Fork 9.2k
HADOOP-17620. DistCp: Use Iterator for listing target directory as well. #2861
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Ran the S3A test: AWS_REGION |
|
🎊 +1 overall
This message was automatically generated. |
steveloughran
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
worried about using log capture for testing, especially with a move to log4j2 due this year.
What would happen if source is hdfs (we want the listIterator) and test is S3? you may want different settings on each
| GenericTestUtils | ||
| .createFiles(remoteFS, source, getDepth(), getWidth(), getWidth()); | ||
|
|
||
| GenericTestUtils.LogCapturer log = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not over-enamoured of this test strategy. As well as being brittle, every use of this is going to complicate our move to Log4J2.
Is there any other way we could do this?
If the distcp test collected the IOStatistics of iteration, then those stores which returned it from iterators (s3a currently, abfs is still WiP) could count it and actually assert on real invocations. HDFS Doesn't do this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanx @steveloughran, do you suggest that we should have two options like -useiteratorforsource and -useiteratorfortarget. Do you think in that case we would be able to save out on memory? since the target list is being build as part of CopyCommitter, so even if one takes the normal path, We would get OOM, just when will differ?
Regarding the log stuff, That was the only thing I could think of, to confirm if iterator was used. And during migration to Log4J2, Will moving to something like this will be of any help instead:
https://github.com/apache/hive/blob/master/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHive.java#L285
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- hive code looks great!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, Are you Ok with the other changes? This logger change we can not do now itself in the code, need to do during the migration itself, Was just trying to find a solution to the problem you told, or if there isn't any
...hadoop-distcp/src/test/java/org/apache/hadoop/tools/contract/AbstractContractDistCpTest.java
Outdated
Show resolved
Hide resolved
|
🎊 +1 overall
This message was automatically generated. |
|
Circling back: |
|
LGTM. |
…ll. (#2861). Contributed by Ayush Saxena. Signed-off-by: Vinayakumar B <[email protected]>
…ll. (apache#2861). Contributed by Ayush Saxena. Signed-off-by: Vinayakumar B <[email protected]>
https://issues.apache.org/jira/browse/HADOOP-17620