Skip to content

Commit

Permalink
HADOOP-16147. Allow CopyListing sequence file keys and values to be m…
Browse files Browse the repository at this point in the history
…ore easily customized.

Author:    Andrew Olson
  • Loading branch information
noslowerdna authored and steveloughran committed Mar 22, 2019
1 parent d18d085 commit faba359
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,29 @@ protected Credentials getCredentials() {
return credentials;
}

/**
* Returns the key for an entry in the copy listing sequence file.
* @param sourcePathRoot the root source path for determining the relative
* target path
* @param fileStatus the copy listing file status
* @return the key for the sequence file entry
*/
protected Text getFileListingKey(Path sourcePathRoot,
CopyListingFileStatus fileStatus) {
return new Text(DistCpUtils.getRelativePath(sourcePathRoot,
fileStatus.getPath()));
}

/**
* Returns the value for an entry in the copy listing sequence file.
* @param fileStatus the copy listing file status
* @return the value for the sequence file entry
*/
protected CopyListingFileStatus getFileListingValue(
CopyListingFileStatus fileStatus) {
return fileStatus;
}

/**
* Public Factory method with which the appropriate CopyListing implementation may be retrieved.
* @param configuration The input configuration.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -718,8 +718,8 @@ private void writeToFileListing(SequenceFile.Writer fileListWriter,
return;
}

fileListWriter.append(new Text(DistCpUtils.getRelativePath(sourcePathRoot,
fileStatus.getPath())), fileStatus);
fileListWriter.append(getFileListingKey(sourcePathRoot, fileStatus),
getFileListingValue(fileStatus));
fileListWriter.sync();

if (!fileStatus.isDirectory()) {
Expand Down

0 comments on commit faba359

Please sign in to comment.