[HADOOP] 와일드 카드를 사용하는 Hadoop DistCp?
HADOOP와일드 카드를 사용하는 Hadoop DistCp?
DistCp를 사용하여 특정 패턴과 일치하는 파일 만 복사 할 수 있습니까? 예를 들어. / foo의 경우 * .log 파일 만 필요합니다.
해결법
-
==============================
1.나는 이것이 오래된 끈이라는 것을 깨닫는다. 그러나 나는이 질문에 대한 해답에 관심이 있었고 dk89도 2013 년에 다시 물었다. 그래서 여기에 우리가 간다.
나는 이것이 오래된 끈이라는 것을 깨닫는다. 그러나 나는이 질문에 대한 해답에 관심이 있었고 dk89도 2013 년에 다시 물었다. 그래서 여기에 우리가 간다.
distcp는 와일드 카드를 지원하지 않습니다. 가장 가까운 방법은 다음과 같습니다.
복사 (소스)하고, grep을 사용하여 필터링 한 다음, awk를 사용하여 hdfs에 대해 형식을 지정하고 결과를 "input-files"목록에 출력하십시오.
hadoop dfs -lsr hdfs://localhost:9000/path/to/source/dir/ | grep -e webapp.log.3. | awk '{print "hdfs\://localhost\:9000/" $8'} > input-files.txt
input-files리스트를 hdfs에 넣는다.
hadoop dfs -put input-files.txt .
대상 디렉토리 만들기
hadoop dfs -mkdir hdfs://localhost:9000/path/to/target/
distcp를 입력 파일 목록을 사용하여 실행하고 대상 hdfs 디렉토리를 지정합니다.
hadoop distcp -i -f input-files.txt hdfs://localhost:9000/path/to/target/
-
==============================
2.DistCp는 실제 map-reduce 작업을 수행하는 일반적인 작업입니다. 일반 map-reduce 작업을 입력 할 때와 동일한 globbing 구문을 사용할 수 있습니다. 일반적으로 foo / *. log 만 사용하면 충분합니다. 여기서 hadoop fs -ls 명령문을 시험해 볼 수 있습니다. globbing이 fs -ls로 작동하면 DistCp와 함께 작동한다면 (거의 비슷하지만 차이점은 상당히 미묘합니다).
DistCp는 실제 map-reduce 작업을 수행하는 일반적인 작업입니다. 일반 map-reduce 작업을 입력 할 때와 동일한 globbing 구문을 사용할 수 있습니다. 일반적으로 foo / *. log 만 사용하면 충분합니다. 여기서 hadoop fs -ls 명령문을 시험해 볼 수 있습니다. globbing이 fs -ls로 작동하면 DistCp와 함께 작동한다면 (거의 비슷하지만 차이점은 상당히 미묘합니다).
from https://stackoverflow.com/questions/5709063/hadoop-distcp-using-wildcards by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] YARN의 작업에 대한 총 리소스 할당 (0) | 2019.07.08 |
---|---|
[HADOOP] 하이브 테이블에 데이터 삽입 (0) | 2019.07.08 |
[HADOOP] HDFS가 데이터를 저장하는 곳 (0) | 2019.07.08 |
[HADOOP] Hive에서 날짜 차이를 계산하는 방법 (0) | 2019.07.07 |
[HADOOP] 원사 MapReduce 작업 문제 - Hadoop 2.3.0에서 AM 컨테이너 시작 오류 (0) | 2019.07.07 |