복붙노트

[HADOOP] HDFS에서 복사하는 폴더 내에서 파일을 병합 할 S3하는 동안 GROUPBY을 사용하여

HADOOP

HDFS에서 복사하는 폴더 내에서 파일을 병합 할 S3하는 동안 GROUPBY을 사용하여

나는 HDFS에서 다음 폴더가 :

hdfs://x.x.x.x:8020/Air/BOOK/AE/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/AE/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/BH/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/IN/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/IN/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/KW/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/KW/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/ME/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/OM/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/Others/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/QA/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/QA/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/SA/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/BOOK/SA/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/SEARCH/AE/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/SEARCH/AE/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/SEARCH/BH/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/SEARCH/BH/INT/20171001/2017100101
hdfs://x.x.x.x:8020/Air/SEARCH/IN/DOM/20171001/2017100101
hdfs://x.x.x.x:8020/Air/SEARCH/IN/INT/20171001/2017100101

it.My의 의도는 HDFS에서 S3에 복사하는 동안 하나의 파일을 얻을 수있는 폴더 내의 모든 파일을 병합하는 것입니다에 각 폴더에 가까운 50 개 파일이 있습니다. 오전 데 문제는이이 작동하지 않는 것 시도 GROUPBY 선택의 문제로 정규식입니다 :

s3-dist-cp --src hdfs:///Air/ --dest s3a://HadoopSplit/Air-merged/  --groupBy '.*/(\w+)/(\w+)/(\w+)/.*' --outputCodec lzo

이 명령은 그 자체 작동하지만 각 폴더 나에게 문제가 내 정규식이라고 생각하게하는 하나의 파일로 병합 내에서 내가 파일을하지 않습니다.

해결법

  1. ==============================

    1.내가 only..the 올바른 정규식은 자신이 알아 낸

    내가 only..the 올바른 정규식은 자신이 알아 낸

    .*/Air/(\w+)/(\w+)/(\w+)/.*/.*/.*
    

    및 병합 및 복사 할 수있는 명령은 다음과 같습니다

    s3-dist-cp --src hdfs:///Air/ --dest s3a://HadoopSplit/Air-merged/  --groupBy '.*/Air/(\w+)/(\w+)/(\w+)/.*/.*/.*' --outputCodec lzo
    
  2. from https://stackoverflow.com/questions/46833387/using-groupby-while-copying-from-hdfs-to-s3-to-merge-files-within-a-folder by cc-by-sa and MIT license