[HADOOP] hadoop 스트리밍을 사용하여 파일 압축 풀기
HADOOPhadoop 스트리밍을 사용하여 파일 압축 풀기
나는 HDFS에 많은 파일을 가지고 있는데, 모두 내부에 하나의 CSV 파일이있는 zip 파일입니다. 스트리밍 작업을 실행할 수 있도록 파일 압축을 풀려고합니다.
나는 시도했다 :
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
-D mapred.reduce.tasks=0 \
-mapper /bin/zcat -reducer /bin/cat \
-input /path/to/files/ \
-output /path/to/output
그러나 오류가 발생합니다 (하위 프로세스는 코드 1로 실패 함). 나도 같은 오류를 하나의 파일에서 실행 해 보았습니다.
어떤 충고?
해결법
-
==============================
1.문제의 근본 원인은 다음과 같습니다. (데이터를 받기 전에) hadoop에서 많은 (텍스트) 정보를 얻습니다.
문제의 근본 원인은 다음과 같습니다. (데이터를 받기 전에) hadoop에서 많은 (텍스트) 정보를 얻습니다.
예 : hdfs dfs -cat hdfs : //hdm1.gphd.local : 8020 / hive / gphd / warehouse / my.db / my / part-m-00000.gz | zcat | wc -l은 "gzip : stdin : gzip 형식이 아님"오류 메시지와 함께 작동하지 않습니다.
따라서이 "불필요한"정보는 무시해야합니다. 제 경우에는 86 줄을 건너 뛰어야합니다.
따라서 나의 한 줄 명령은 다음과 같다. hdfs dfs -cat hdfs : //hdm1.gphd.local : 8020 / 하이브 / gphd /웨어 하우스 / my.db / my / part-m-00000.gz | tail -n + 86 | zcat | wc -l
참고 :이 해결 방법은 (실제 솔루션이 아닌) 매우 못생긴 - 때문에 "86"-하지만 잘 작동합니다 :)
-
==============================
2.어떤 이유로 든 HDFS 내의 파일을 압축 해제 / 압축 해제하는 간단한 방법
어떤 이유로 든 HDFS 내의 파일을 압축 해제 / 압축 해제하는 간단한 방법
hadoop fs -text /hdfs-path-to-zipped-file.gz | hadoop fs -put - /hdfs-path-to-unzipped-file.txt
-
==============================
3.실험을하다가 hadoop 스트리밍을 수정하면 gzip으로 압축 된 모든 파일을 새로운 디렉토리에 압축 해제합니다. 파일 이름은 모두 잃어 버렸습니다 (전형적인 part-XXXX 이름으로 바뀜). 그러나 이것은 저에게 효과적이었습니다.
실험을하다가 hadoop 스트리밍을 수정하면 gzip으로 압축 된 모든 파일을 새로운 디렉토리에 압축 해제합니다. 파일 이름은 모두 잃어 버렸습니다 (전형적인 part-XXXX 이름으로 바뀜). 그러나 이것은 저에게 효과적이었습니다.
hadoop은 자동으로 gzip으로 압축 된 파일을 압축 해제하고 cat은 그냥 압축 해제 된 결과물을 반향시키기 때문에이 파일이 작동한다고 추측합니다.
hadoop jar /usr/iop/4.2.0.0/hadoop-mapreduce/hadoop-streaming.jar \ -D mapred.reduce.tasks=0 \ -mapper /bin/cat \ -input /path-to-gzip-files-directory \ -output /your-gunzipped-directory
-
==============================
4.Hadoop은 gzip 형식으로 압축 된 파일을 읽을 수 있지만 zip 형식과 다릅니다. Hadoop은 zip 파일 AFAIK을 읽을 수 없습니다.
Hadoop은 gzip 형식으로 압축 된 파일을 읽을 수 있지만 zip 형식과 다릅니다. Hadoop은 zip 파일 AFAIK을 읽을 수 없습니다.
from https://stackoverflow.com/questions/15256808/unzip-files-using-hadoop-streaming by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] java.lang.VerifyError with Hadoop (0) | 2019.06.29 |
---|---|
[HADOOP] MapReduce 작업 구성의 매개 변수 설정 (0) | 2019.06.29 |
[HADOOP] 스파크에서 하이브 테이블에 액세스하기 (0) | 2019.06.29 |
[HADOOP] 둘째 날에 "너무 많은 페치 실패"가 발생하는 이유는 무엇입니까? (0) | 2019.06.29 |
[HADOOP] 매퍼 (또는 감속기) 내부에서 MR 작업을 중단하는 방법 (0) | 2019.06.29 |