티스토리 뷰

하둡은 대규모 데이터의 이동을 위해서 맵리듀스를 이용한 DistCp를 제공한다. 


* 여러군데의 파일을 각각의 폴더 위치로 이동시키는 것은 불가

* 목적지(destination) 폴더에 파일이 존재하면 파일이 전달되지 않을 수도 있다. 

  파일 이동시 확인하도록 하자.



# distcp 명령

hadoop distcp hdfs://source hdfs://destination


# update or overwrite

# 파일 이름이 동일할 경우 update는 파일사이즈를 비교해서 옮기고, overwrite는 그냥 덮어쓴다. 

hadoop distcp -update hdfs://source hdfs://destination

hadoop distcp -overwrite hdfs://source hdfs://destination


# 여러위치의 파일을 하나의 위치로 이동, *를 이용하여 복사하는것도 가능 

hadoop distcp hdfs://source1 hdfs://soucrce2 hdfs://destination

hadoop distcp hdfs://source/*/* hdfs://destination

hadoop distcp hdfs://source/*.csv hdfs://destination


# 여러 위치를 파일에 저장하고 -f 옵션으로 하나의 위치로 이동

hadoop distco -f hdfs://source_file hdfs://destination


# -D 옵션을 이용하여 하둡 처리 옵션을 지정하는 것도 가능

hadoop distcp -Dmapred.job.queue.name=dist hdfs://source hdfs://destination


# AWS S3를 이용할 경우 키가 다를때

hadoop distcp -Dfs.s3n.awsAccessKeyId=[source_액세스키1] -Dfs.s3n.awsSecretAccessKey=[source_시크릿키1] \
                   -Dfs.s3.awsAccessKeyId=[target_액세스키2] -Dfs.s3.awsSecretAccessKey=[target_시크릿키2] \
                   -Dmapred.job.queue.name=q2 \
                   s3n://[source_url] s3://[target_url]


반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함