[HADOOP] 수백만 개의 작은 XML 파일 구문 분석
HADOOP수백만 개의 작은 XML 파일 구문 분석
1000 만 개의 작은 XML 파일 (300KB-500KB)이 있습니다. Mapoutduce에서 Mahaout의 XML 입력 형식을 사용하여 데이터를 읽었으며 구문 분석에 SAX Parser를 사용하고 있습니다. 그러나 처리가 매우 느립니다. 입력 파일의 압축 (lzo)을 사용하면 increse 성능에 도움이됩니까? 각 폴더에는 80-90k xml 파일이 포함되어 있으며, 프로세스를 시작하면 각 파일에 대한 매퍼가 실행됩니다. 매퍼를 줄일 수있는 방법은 없습니다. ?
해결법
-
==============================
1.Hadoop은 엄청난 양의 작은 파일들과 잘 작동하지 않습니다. 매우 큰 파일 몇 개를 처리하도록 설계되었습니다.
Hadoop은 엄청난 양의 작은 파일들과 잘 작동하지 않습니다. 매우 큰 파일 몇 개를 처리하도록 설계되었습니다.
파일을 압축하면 도움이되지 않습니다. 왜냐하면 문제는 작업을 수행 할 때 많은 컨테이너를 인스턴스화하여 각 파일마다 하나씩 맵을 실행해야하기 때문입니다. 인스턴스화 컨테이너는 입력을 처리하는 데 필요한 시간 (메모리 및 CPU와 같은 많은 리소스)보다 많은 시간이 소요될 수 있습니다.
Mahaout의 입력 형식에는 익숙하지 않지만, hadoop에는 하나의 Mapper에서 여러 입력을 결합하는 문제를 최소화하는 클래스가 있습니다. 클래스는 CombineTextInputFormat입니다. XML을 사용하려면 CombineFileInputFormat을 확장하는 자체 XMLInputFormat을 만들어야 할 수도 있습니다.
그러나 개선되지 않은 또 다른 대안은 컨테이너간에 JVM을 재사용 할 수 있다는 것입니다. 하둡 맵 렌더링 작업에서 JVM 재사용
JVM을 재사용하면 각 JVM을 만드는 데 필요한 시간은 안전하지만 각 파일마다 하나의 컨테이너를 만들어야합니다.
-
==============================
2.이 기사에서 인용 된 것처럼 세 가지 방법 중 하나를 수행 할 수 있습니다.
이 기사에서 인용 된 것처럼 세 가지 방법 중 하나를 수행 할 수 있습니다.
여러 솔루션을 나열하는 기사 1과 기사 2를 발견했습니다 (이 기사에서 일부 비 일반적인 대안을 제거했습니다).
from https://stackoverflow.com/questions/32616324/parsing-millions-of-small-xml-files by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Apache Spark의 맥락에서 메모리 내 데이터 저장은 무엇을 의미합니까? (0) | 2019.07.20 |
---|---|
[HADOOP] hiveql에서 열을 행으로 변환 (UNPIVOT) (0) | 2019.07.20 |
[HADOOP] 하이브 테이블에서 데이터 비뚤림을 식별하거나 감지하는 방법이 있습니까? (0) | 2019.07.20 |
[HADOOP] hadoop을 사용할 때 "/ webhdfs / v1 /? op = LISTSTATUS : Server Error"에서 데이터를 가져 오지 못했습니다. (0) | 2019.07.20 |
[HADOOP] Hadoop 버전 2.7.2를 사용하여 Spark에서 S3a 프로토콜을 사용하여 S3에 액세스하기 (0) | 2019.07.20 |