?????????????????????н????????漰????????????????hdfs????Щ????????а??н??????????±??????hive???????????????????????????????MR???м???????????????????????????????????????????????????????????????????ú???????????????????bug????????bug??????У?????????л?????Щ?μ????????????????????????????????????浽???????С????????????????????????????????????????????
?????л????????????
????????????????????????????????????·???????????????????????????????????μ????????????????????????????????н?????????????????????????????·?????????麯????????????????????????????????е?飬??????????????·???μ??????????????????????飬?????????ü?????????????????£?
private void recursion (Path path) {
FileStatus[] children = fs.listStatus (path);
for(FileStatus child : children){
if(child.isDir()){
recursion(child.getPath());
}
else{
…… //?????????????
}
}
}
??????????γ??????????????????з???????????????????????????????????????——????????????????StackOverflowError????
?????????????????????????????????????????????DistCP?????????????????????????????????????????????д????δ???????????????????????????????????hdfs???????????????????????????????????????jvm???????????????????????б?????????????????????????????????????С????к??????
???????????????????????????????????滻?????????????????????????£?
Stack<FileStatus> pathstack = new Stack<FileStatus>();
for(pathstack.push(fs.getFileStatus(path)); !pathstack.empty();){
FileStatus cur = pathstack.pop();
FileStatus[] children = fs.listStatus(cur.getPath());
for(int i = 0; i < children.length; i++) {
final FileStatus child = children[i];
if (child.isDir()) {
pathstack.push(child);
}
else {
…… //?????????????
}
}
}