[HADOOP] 다른 파일의 한 파일에서 단어를 검색하는 Hadoop
HADOOP다른 파일의 한 파일에서 단어를 검색하는 Hadoop
한 파일에서 단어를 읽고 다른 파일에서 검색 할 수있는 hadoop 응용 프로그램을 만들고 싶습니다.
단어가있는 경우 - 하나의 출력 파일에 기록해야합니다 단어가 존재하지 않으면 - 다른 출력 파일에 써야합니다.
나는 hadoop에서 몇 가지 예제를 시도했다. 두 가지 질문이 있습니다.
두 파일의 크기는 각각 약 200MB입니다. 다른 파일의 모든 단어를 확인하면 메모리가 부족할 수 있습니다. 이 작업을 수행 할 수있는 다른 방법이 있습니까?
hadoop의 축소 단계의 출력이 하나의 파일에만 기록되므로 다른 파일에 데이터를 쓰는 방법. 다른 출력 파일에 데이터를 기록하기 위해 위상을 줄이기위한 필터를 사용할 수 있습니까?
고맙습니다.
해결법
-
==============================
1.내가 어떻게 그것을 할 :
내가 어떻게 그것을 할 :
문서의 누락 된 단어가 포함 된 서로 다른
만큼 많은 축소 출력을 얻게됩니다. 파일을 표시하려면 'missingsource> ONCE를'reduce '시작 부분에 쓸 수 있습니다. (* 1)지도에서 출처를 찾는 방법 (0.20) :
private String localname; private Text outkey = new Text(); private Text outvalue = new Text(); ... public void setup(Context context) throws InterruptedException, IOException { super.setup(context); localname = ((FileSplit)context.getInputSplit()).getPath().toString(); } public void map(Object key, Text value, Context context) throws IOException, InterruptedException { ... outkey.set(...); outvalue.set(localname); context.write(outkey, outvalue); }
-
==============================
2.이 문제를 해결하기위한 특정 이유로 Hadoop / MapReduce를 사용하고 있습니까? 이것은 Hadoop보다 Lucene 기반 애플리케이션에 더 적합한 것으로 들립니다.
이 문제를 해결하기위한 특정 이유로 Hadoop / MapReduce를 사용하고 있습니까? 이것은 Hadoop보다 Lucene 기반 애플리케이션에 더 적합한 것으로 들립니다.
Hadoop을 사용해야하는 경우 몇 가지 제안 사항이 있습니다.
여기에있는 다른 대답에서 언급 한 인덱싱 방법도 가능성을 제공합니다. 다시 말하지만, 문서 인덱싱이라는 용어만으로 Lucene을 생각하게 만들었습니다. 이 방법을 사용한 경우 키 값에 단어뿐만 아니라 문서 식별자가 포함되어 있는지 확인하여 각 문서에 단어 개수가 포함되도록해야합니다.
필자는 MapReduce 작업에서 여러 개의 출력 파일을 생성 한 적이 없다고 생각합니다. 인덱싱 된 출력을 여러 파일로 처리하려면 코드를 작성해야하며 매우 간단해야합니다.
-
==============================
3.제 의견으로는 두 단계로 이것을하고 싶을 것입니다. 두 개의 초기 문서에 대해 wordcount 프로그램 (hadoop 예제 jar에 포함되어 있음)을 실행하면 각 문서에있는 단어의 고유 목록 (개수 포함)을 포함하는 두 개의 파일이 제공됩니다. 거기에서, 당신의 질문에 대답해야만하는 두 파일에 대해 hadoop을 사용하는 것보다는 간단한 diff를 사용하는 것이 좋습니다.
제 의견으로는 두 단계로 이것을하고 싶을 것입니다. 두 개의 초기 문서에 대해 wordcount 프로그램 (hadoop 예제 jar에 포함되어 있음)을 실행하면 각 문서에있는 단어의 고유 목록 (개수 포함)을 포함하는 두 개의 파일이 제공됩니다. 거기에서, 당신의 질문에 대답해야만하는 두 파일에 대해 hadoop을 사용하는 것보다는 간단한 diff를 사용하는 것이 좋습니다.
from https://stackoverflow.com/questions/2128209/hadoop-searching-words-from-one-file-in-another-file by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] SparkSQL + Hive + Hbase + HbaseIntegration이 작동하지 않습니다. (0) | 2019.07.31 |
---|---|
[HADOOP] HDFS에서 파일을 업데이트하는 방법 (0) | 2019.07.31 |
[HADOOP] Apache Spark - spark의 내부 작업 스케줄러는 사용자 란 무엇이며 풀은 무엇인지 정의합니다 (0) | 2019.07.31 |
[HADOOP] Hadoop 정렬 입력 순서 (0) | 2019.07.31 |
[HADOOP] 하이브 테이블의 데이터 행을 개별 행으로 가져 오려면 어떻게해야합니까? (0) | 2019.07.31 |