[HADOOP] 하둡에서 여러 폴더를 처리하는 방법
HADOOP하둡에서 여러 폴더를 처리하는 방법
나는 다음과 같은 문제에 봉착했습니다. 나는 200K의 XML 파일이 있습니다. 나는 200 개 폴더가 있고 각 폴더 2000의 XML 파일이 있습니다. 내 HDFS이 있습니다. 아키텍처는 다음과 같습니다
RootFolder
Folder001
1.xml
2.xml
2000.xml
Folder002
2001.xml
나는 파일을 읽고 몇 가지 XPath는 과정을 할 수있는 매퍼 프로그램을 작성해야합니다.
나는 RootFolder 입력 경로를 제공하는 경우 다음 매퍼 폴더를 읽고 XML 파일을 처리해야
즉 200 작업이 있어야한다. 그리고 각 폴더는 하나의 매퍼를 읽을 수 있어야
어떻게 여러 폴더를 처리하는 방법을?
해결법
-
==============================
1.나의 이해에서 당신은이 문제가 :
나의 이해에서 당신은이 문제가 :
1 : 하나의 맵 작업에서 하위 폴더의 모든 파일을 매핑 할 필요가 :
ANS : 당신은이 시나리오 CombineFileInputFormat를 사용할 수있다. 그것은 지정된 PathFilter에 대한 그룹 파일 (귀하의 경우는, 필터는 같은 폴더의 파일을 받아 들여야한다)하고 하나의 maptask에 할당됩니다. 즉, 폴더 당 maptask 달성 할 수있다. 더 나은 제어를 얻으려면 내 경우에 무엇을 것을, CombineFileInputFormat을 확장하고 자신 확인하십시오.
2 : 루트 폴더를 지정하여도지도 작업 (들)에 대한 입력으로 하위 폴더 내 파일을 포함해야합니다.
ANS는 : 새로운 API 릴리스에서 FileInputFormat는 어떤 수준까지 하위 폴더에서 반복적으로 파일을 취할 수 있습니다. 더 많은 정보는 여기에서 JIRA를 볼 수 있습니다.
아니면 스스로, 서브 클래스 FileInputFormat을하고 listStatus 방법을 재정의합니다.
from https://stackoverflow.com/questions/21178033/how-to-process-multiple-folders-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 창에 오류 건물 하둡 2.6 - 손상되거나 잘못된 inutils.vcxproj (0) | 2019.10.14 |
---|---|
[HADOOP] 하둡 오류 : 찾거나 메인 클래스의 클래스 경로 TestJava를로드 할 수 없습니다 (0) | 2019.10.14 |
[HADOOP] 하이브 - 파이썬 연결 오류 (0) | 2019.10.14 |
[HADOOP] 돼지 브로 스키마를로드 할 수 없습니다 (0) | 2019.10.14 |
[HADOOP] 하이브 데이터를 가져 Sqoop을 (0) | 2019.10.14 |