KR20090066010A - Apparatus for sorting and combining intermediate results of multiple map tasks on the distributed parallel processing system and method thereof - Google Patents

Apparatus for sorting and combining intermediate results of multiple map tasks on the distributed parallel processing system and method thereof Download PDF

Info

Publication number
KR20090066010A
KR20090066010A KR1020070133589A KR20070133589A KR20090066010A KR 20090066010 A KR20090066010 A KR 20090066010A KR 1020070133589 A KR1020070133589 A KR 1020070133589A KR 20070133589 A KR20070133589 A KR 20070133589A KR 20090066010 A KR20090066010 A KR 20090066010A
Authority
KR
South Korea
Prior art keywords
task
map
sorting
intermediate result
reduce
Prior art date
Application number
KR1020070133589A
Other languages
Korean (ko)
Other versions
KR100946987B1 (en
Inventor
이명철
이미영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070133589A priority Critical patent/KR100946987B1/en
Publication of KR20090066010A publication Critical patent/KR20090066010A/en
Application granted granted Critical
Publication of KR100946987B1 publication Critical patent/KR100946987B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A multiple map task intermediate result queue, a combined device and a method thereof in a distributed parallel processing system removing a duplicate key existing in a whole destination file are provided to reduce task processing load, the number of task output file and total size of an output file transmitted in the distributed parallel processing system. A map task performing unit generates an intermediate result by performing the allocated map task. A reduce task performance removes task transmission schedule information on a transmission schedule intermediate result list(S512). The reduce task performance sets up intermediate result path information about a residual task identifier(S522).

Description

분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치 및 방법 { Apparatus for Sorting and Combining Intermediate Results of Multiple Map Tasks on the Distributed Parallel Processing System and Method thereof }Apparatus for Sorting and Combining Intermediate Results of Multiple Map Tasks on the Distributed Parallel Processing System and Method

본 발명은 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치 및 방법에 관한 것으로, 특히 MapReduce 프로래밍 모델을 지원하는 분산 병렬 작업 처리 시스템의 노드 수준에서 다중 Map 태스크가 생성한 키/값 쌍의 목록으로 구성된 다중 출력 파일의 중복 키 제거 및 정렬을 통하여 하나의 출력 파일로 결합한 다음 Reduce 태스크 입력으로 전달함으로써, Reduce 태스크 수행 노드로 전달되는 Map 태스크 출력 파일의 개수, 출력 파일의 전체 크기 및 Reduce 태스크 처리 부하를 줄일 수 있는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for sorting and combining intermediate results of multiple Map tasks in a distributed parallel processing system. In particular, key / value pairs generated by multiple Map tasks at the node level of a distributed parallel job processing system supporting a MapReduce programming model. The number of Map task output files passed to the Reduce task execution node, the total size of the output files, and Reduce by combining them into one output file through duplicate key elimination and sorting of multiple output files consisting of a list of the An apparatus and method for sorting and combining intermediate results of multiple Map tasks in a distributed parallel processing system that can reduce task processing load.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:2007-S-016-01, 과제명:저비용 대규모 글로벌 인터넷 서비스 솔루션 개발].The present invention is derived from the research conducted as part of the IT new growth engine core technology development project of the Ministry of Information and Communication and the Ministry of Information and Communication Research and Development. [Task Management Number: 2007-S-016-01, Title: Low-cost, large-scale global Internet service solution Development].

인터넷이 발전함에 따라 네티즌에 의해 하루에도 수없이 많은 데이터가 생성되어 유통되고 있으며, 최근 많은 기업, 특히 검색 엔진 회사 및 웹 포탈들 간에 이와 같은 엄청난 양의 데이터를 가능한 많이 수집 및 축적하여 수집된 데이터 중에서 가능한 빨리 의미 있는 정보를 추출하는 것이 기업의 경쟁력이 되고 있다.As the Internet develops, a lot of data is generated and distributed every day by netizens, and recently, a large amount of data has been collected and accumulated as much as possible among many companies, especially search engine companies and web portals. Extracting meaningful information as quickly as possible is becoming a competitive advantage for companies.

때문에, 많은 기업은 저비용으로 대규모 클러스터를 구축하여 대용량 데이터 분산 관리 및 작업분산 병렬처리 기술에 대한 많은 연구를 하고 있는데, 종래기술에 따른 작업 분산 병렬 처리 기술 중에서 미국 Google사의 MapReduce 모델이 대표적인 작업 분산 병렬 처리 방법으로 주목을 받고 있다.As a result, many companies are building large clusters at low cost and doing a lot of research on large-scale data distribution management and work-distribution parallel processing technologies. It is attracting attention as a treatment method.

MapReduce 모델은 Google 사가 저비용 대규모 노드로 구성된 클러스터 상에 저장된 대용량 데이터의 분산 병렬 연산을 지원하기 위하여 제안한 분산 병렬 처리 프로그래밍 모델인데, 이는 사용자가 작성하는 하나의 작업은 사용자가 작성하는 Map 함수가 주축이 되는 Map 단계와 사용자가 작성하는 Reduce 함수가 주축이 되는 Reduce 단계의 2단계로 구성이 되어 순차적으로 수행된다. The MapReduce model is a distributed parallel programming model that Google proposes to support distributed parallelism of large amounts of data stored on clusters of low-cost large nodes. One of the tasks you write is based on the Map function you write. It consists of two phases, the Map phase, and the Reduce phase, which is the main axis of the Reduce function that the user creates.

이때, 각 Map 단계 및 Reduce 단계에서는 다중 노드에 다중 태스크로 복제가 되어 분산 병렬 수행이 되며, Map 단계에서는 기본적으로 입력 데이터로부터 키/값 쌍을 추출하는 연산을 수행하고, Reduce 단계에서는 Map 단계에서 추출된 키/값 쌍에 중복 키를 제거하고 비즈니스 로직을 적용하여 원하는 최종 결과 키/값 쌍으로 구성되는 연산을 수행한다.In this case, each Map and Reduce steps are replicated to multiple nodes as multiple tasks and distributed and executed in parallel.In the Map step, the operation of extracting key / value pairs from input data is basically performed. Eliminate duplicate keys in the extracted key / value pairs and apply business logic to perform operations that consist of the desired final result key / value pair.

그런데, MapReduce 모델은 효율적인 분산 병렬 처리가 가능하도록 작업의 입/출력 데이터 모델, Map 태스크와 Reduce 태스크의 입/출력 데이터 모델에 대해서 키/값 쌍 형식으로 구성되도록 제약을 가하고 있어 작업 처리 과정에서 생성되는 중간 파일 내에 중복되는 키가 종종 존재한다. However, the MapReduce model creates constraints in the form of key / value pairs for the input / output data model of the job and the input / output data models of the Map and Reduce tasks for efficient distributed parallel processing. There are often duplicate keys in the intermediate file that are being created.

이와 같은, 중복 키는 네트워크 전송 비용을 증가시키기 때문에, 이를 제거하기 위한 방법으로 Google사는 결합기(Combiner) 개념을 지원/사용하고 있다. 결합기(Combiner)는 사용자가 작성하여 Reduce 태스크 과정에서 수행이 되는 Reduce 함수를 미리 Map 태스크 수행 노드에서 수행하여 중복 키를 제거하고, 부분 정렬 기능을 수행하여 미리 부분 결과를 생성하는 모듈이며, 결합기를 사용함으로써 Reduce 태스크 수행 노드로 전달이 되는 중간 결과의 크기를 줄여 Reduce 태스크에서의 처리 부하를 감소시킬 수 있다.Since duplicate keys increase network transmission costs, Google supports / uses the concept of a combiner to eliminate this. The combiner is a module that removes duplicate keys by performing the Reduce function, which is created by the user and performed during the Reduce task, in advance in the Map task execution node, and performs partial sorting to generate partial results in advance. By using it, you can reduce the processing load on the Reduce task by reducing the size of intermediate results that are passed to the Reduce task execution node.

다행히도, 최근에는 멀티 코어 프로세서의 가격이 점점 저렴해지고 있어 저비용 대규모 클러스터에도 멀티 코어 프로세서가 장착되어 연산 속도가 높아 분산 병렬 처리는 별로 문제되지 않는다.Fortunately, recently, multi-core processors are becoming less expensive, with low-cost large clusters that are equipped with multi-core processors, which means that the computational speed is high and distributed parallelism is not a problem.

그러나, 멀티 코어 프로세서가 장착된 저가 PC로 구성된 저비용 대규모 클러스터에서는 하나의 작업에 속하는 여러 Map 태스크가 하나의 노드에서 수행될 가능성이 높아 결합기를 적용해도 개별 결과 파일의 중복 키만 제거될 뿐 하나의 노드에서 수행된 전체 Map 태스크가 만들어낸 전체 결과 파일에 존재하는 중복 키는 제거할 수 없다는 문제가 있다.However, in low-cost large clusters of low-cost PCs with multicore processors, multiple Map tasks belonging to one job are more likely to be performed on a single node, so applying a combiner only removes duplicate keys in individual result files. The problem is that you cannot remove duplicate keys that exist in the entire result file generated by the entire Map task.

본 발명은 MapReduce 프로래밍 모델을 지원하는 분산 병렬 작업 처리 시스템의 노드 수준에서 다중 Map 태스크가 생성한 키/값 쌍의 목록으로 구성된 다중 출력 파일의 중복 키 제거 및 정렬을 통하여 하나의 출력 파일로 결합한 다음 Reduce 태스크 입력으로 전달함으로써, Reduce 태스크 수행 노드로 전달되는 Map 태스크 출력 파일의 개수, 출력 파일의 전체 크기 및 Reduce 태스크 처리 부하를 줄일 수 있는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치 및 방법을 제공하는데 그 목적이 있다.The present invention combines a single output file through duplicate key removal and sorting of multiple output files consisting of a list of key / value pairs generated by multiple Map tasks at the node level of a distributed parallel job processing system that supports the MapReduce programming model. Device to sort and combine multiple Map task intermediate results in a distributed parallel processing system that can reduce the number of Map task output files that are passed to the Reduce task execution node, the overall size of the output files, and the burden of processing Reduce tasks by passing them to the next Reduce task input. And to provide a method.

전술한 목적을 달성하기 위해서 본 발명에 따른 다중 Map 태스크 중간 결과 정렬 및 결합 방법은, (a) 분할 입력 데이터를 입력받아 하나 이상의 노드에서 사용자 작성 Map 태스크를 할당하고, 상기 Map 태스크를 분산 병렬 처리하여 하나 이상의 중간 결과 파일을 생성하는 단계; (b) 상기 개별 Map 태스크에 의해 생성된 하나 이상의 중간 결과 파일에 Reduce 함수를 적용하고, 중복 키 제거 및 정렬을 통하여 하나 이상의 중간 결과를 생성하는 단계; (c) 상기 Map 태스크의 분산 병렬 처리가 끝나면, 하나 이상의 Reduce 태스크를 통해 하나 이상의 중간 결과를 분산 병렬 처리하여 하나 이상의 최종 결과를 생성하는 단계를 포함하는 점에 그 특징이 있다. In order to achieve the above object, a multi-map task intermediate result sorting and combining method according to the present invention includes: (a) receiving split input data, assigning a user-generated Map task to one or more nodes, and distributing the Map task in parallel and parallel processing; Generating at least one intermediate result file; (b) applying a Reduce function to one or more intermediate result files generated by the respective Map tasks, and generating one or more intermediate results through duplicate key removal and sorting; (c) After the distributed parallel processing of the Map task is finished, distributed parallel processing of one or more intermediate results through one or more Reduce tasks generates one or more final results.

여기서, 상기 (a)단계 이전에 전체 입력 데이터의 분할된 일부분을 읽어 사 용자 작성 Map 함수가 처리하기 적당한 크기로 분할하여 메모리에 적재하는 단계를 더 포함한다. Here, the method may further include reading the divided portion of the entire input data before the step (a), dividing it into a size suitable for processing by the user-written Map function, and loading the same into a memory.

그리고, 상기 (a)단계는 (a-1) 상기 Map 함수를 수행하여 사용자 정의 키/값을 추출하여 메모리 내 버퍼에 적재하는 단계; (a-2) 상기 버퍼에 일정량의 데이터가 쌓이면 키/값 쌍 목록을 정렬하는 단계; (a-3) 상기 정렬된 키/값 쌍 목록을 개별 Reduce 태스크를 위한 중간 결과 파일로 분할하는 단계를 포함한다. Step (a) may include: (a-1) extracting a user-defined key / value by performing the Map function and loading the same into a buffer in a memory; (a-2) sorting a list of key / value pairs when a certain amount of data is accumulated in the buffer; (a-3) partitioning the sorted list of key / value pairs into an intermediate result file for an individual Reduce task.

또한, 상기 (b)단계는 (b-1) 상기 중간 결과 파일의 중복 키를 제거하며 결합하는 단계; (b-2) 상기 결합한 중간 결과 파일을 정렬하여 개별 중간 결과를 생성하는 단계를 포함하며, 상기 (c)단계에서 상기 전체 분할 입력 데이터에 대한 중간 결과 생성이 완료됨은 상기 개별 Map 태스크 수행 완료 정보의 통보로 판단되는 것이 바람직하다. In addition, the step (b) may include (b-1) combining and removing duplicate keys of the intermediate result file; (b-2) arranging the combined intermediate result files to generate individual intermediate results, wherein in the step (c), the intermediate result generation for the whole divided input data is completed. It is desirable to be informed of.

본 발명의 다른 특징에 따른 Map 태스크를 할당받으면 Map 태스크 수행기를 생성하여 분할 입력 데이터에 대해 분산 병렬 처리를 통해 키/값 쌍을 추출하고, 중간 결과 파일을 생성하는 다수 개의 Map 수행 태스크 관리기; 상기 개별 Map 수행 노드의 태스크 관리기가 생성한 중간 결과 파일에 Reduce 함수를 적용하여 중복 키를 제거한 후 정렬하여 중간 결과를 생성하는 하나 이상의 태스크 수준 결합기; 할당된 전체 Map 태스크가 완료되면 상기 생성된 중간 결과들을 통합하고, 중복 키를 제거한 후 정렬하여 최종 중간 결과 파일을 생성하는 노드 수준 결합기를 포함하고, 상기 최종 중간 파일의 중복 키 제거로 Reduce 태스크 처리 부하가 적은 것을 특징으로 하는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치가 제공된다.A plurality of Map task task managers that generate a Map task executor, extract key / value pairs through distributed parallel processing on split input data, and generate an intermediate result file when the map task is allocated according to another aspect of the present invention; One or more task level combiners configured to remove intermediate keys by applying a reduce function to the intermediate result file generated by the task manager of the individual map execution node, and then sort and generate intermediate results; Comprising a node level combiner that consolidates the generated intermediate results when the entire assigned Map task is completed, removes duplicate keys and sorts them to produce the final intermediate result file, and processes the reduce task by removing duplicate keys of the final intermediate file. In the distributed parallel processing system, which is characterized by a low load, a multi-map task intermediate result sorting and combining apparatus is provided.

여기서, 본 발명에 따른 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치는 상기 분할 입력 데이터를 상기 Map 태스크 수행에 적절한 크기로 분할하여 적재하는 메모리, 상기 Map 수행 태스크 관리기, 상기 태스크 수준 결합기 및 상기 노드 수준 결합기에서 수행되는 전체 작업과정의 제어 및 관리를 수행하는 작업 관리기; Reduce 태스크 수행기를 생성하여 Reduce 태스크를 수행하여 원하는 최종 키/값 쌍으로 구성되는 최종 결과를 생성하는 Reduce 수행 태스크 관리기를 더 포함한다. Here, in the distributed parallel processing system according to the present invention, a multi-map task intermediate result sorting and combining apparatus is configured to divide and load the divided input data into a size suitable for performing the Map task, the map performing task manager, and the task level combiner. And a task manager that controls and manages the entire work process performed by the node level combiner. It further includes a Reduce Perform Task Manager that generates a Reduce Task Performer to perform a Reduce task to produce the final result consisting of the desired final key / value pair.

여기서, 상기 Map 태스크 수행기는 Map 태스크 수행이 완료되면, Map 수행 태스크 관리기에 <Map 태스크 식별자, 중간 결과 파일 경로>를 포함하는 Map 태스크 완료 정보를 통보하며, 상기 노드 수준 결합기는 상기 Map 수행 태스크 관리기의 Map 태스크가 완료되어 중간 결과가 생성되었으나 상기 Reduce 태스크 수행기로 전달되지 않은 Map 태스크 중간 결과를 "결합 예정 중간 결과 목록"에 삽입하여 관리한다. Here, when the Map task executor completes the Map task, the map task executor notifies the map task task manager of the map task completion information including <map task identifier, intermediate result file path>, and the node level combiner provides the map task task manager. After the Map task is completed, an intermediate result is generated, but the intermediate result of the Map task which is not delivered to the Reduce task performer is inserted into the "list of intermediate results to be combined" to be managed.

한편, 상기 Reduce 태스크 수행기는 상기 Map 태스크 수행기가 전달한 Map 태스크 완료 통보로부터 생성된 <Map 태스크 식별자, 중간 결과 파일 경로> 정보로부터 "전송 예정 중간 결과 목록"을 생성하여 관리한다. Meanwhile, the Reduce task executor generates and manages a "transmission scheduled intermediate result list" from <Map task identifier and intermediate result file path> information generated from the Map task completion notification delivered by the Map task executor.

본 발명에 따른 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치 및 방법은 MapReduce 프로래밍 모델을 지원하는 분산 병렬 작업 처리 시스템의 노드 수준에서 다중 Map 태스크가 생성한 키/값 쌍의 목록으로 구성된 다중 출력 파일의 중복 키 제거 및 정렬을 통하여 하나의 출력 파일로 결합한 다음 Reduce 태스크 입력으로 전달함으로써, Reduce 태스크 수행 노드로 전달되는 Map 태스크 출력 파일의 개수, 출력 파일의 전체 크기 및 Reduce 태스크 처리 부하를 줄일 수 있는 효과가 있다. An apparatus and method for sorting and combining intermediate results of multiple Map tasks in a distributed parallel processing system according to the present invention is a list of key / value pairs generated by multiple Map tasks at a node level of a distributed parallel job processing system supporting a MapReduce programming model. By combining and eliminating duplicate keys in the configured multiple output files into one output file and passing it to the Reduce task input, the number of Map task output files passed to the Reduce task execution node, the total size of the output files, and the Reduce task processing load. There is an effect to reduce.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이하의 실시예에서는 이 기술분야에서 통상적인 지식을 가진 자에게 본 발명이 충분히 이해되도록 제공되는 것으로서, 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 기술되는 실시예에 한정되는 것은 아니다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following embodiments are provided to those skilled in the art to fully understand the present invention, can be modified in various forms, the scope of the present invention is limited to the embodiments described below no.

도 1은 본 발명의 일실시예에 따른 Map 태스크와 Reduce 태스크 간의 데이터 전송 과정을 도시한 블록도이다. 도 1에 도시된 바와 같이, 일실시예 과정은 m개의 Map 태스크(110_1~110_m)와 각각 r개의 Reduce 태스크(150_1~150_r)로 구성되어 분산 병렬 처리되며, 개별 Map 태스크(예컨대, 110_1)는 r개의 Reduce 태스크(150_1~150_r)에 전달할 r개의 중간 결과 파일(예컨대, 120_1~120_r)을 생성하므로, m개의 Map 태스크(110_1~110_m)는 총 m×r개의 중간 결과 파일을 생성한다. 1 is a block diagram illustrating a data transmission process between a Map task and a Reduce task according to an embodiment of the present invention. As shown in FIG. 1, an exemplary process is composed of m Map tasks 110_1 to 110_m and r Reduce tasks 150_1 to 150_r, respectively, to be distributed and processed in parallel, and an individual Map task (for example, 110_1) Since r intermediate result files (eg, 120_1 to 120_r) to be transmitted to r Reduce tasks 150_1 to 150_r are generated, m Map tasks 110_1 to 110_m generate a total of m × r intermediate result files.

이때, 개별 Reduce 태스크(예컨대, 150_1)는 한정된 개수의 복사 쓰레드(Copier Thread)를 사용하여 Map 태스크 중간 결과(120_1, 130_1, ~, 140_1)를 병렬 복사한다. In this case, the individual Reduce task (eg, 150_1) copies the intermediate results 120_1, 130_1, ˜ 140_1 in parallel using a limited number of copier threads.

이때, 복사 쓰레드(160)의 개수를 Map 태스크 개수인 m개 만큼 구성하면 한 번의 병렬 복사로 Map 태스크 중간 결과를 개별 Reduce 태스크에 전달가능하다는 장점이 있지만, Map 태스크의 개수가 많은 경우에는 Map 태스크 수행 노드와 Reduce 태스크 수행 노드 간에 중간 결과 전송을 위한 연결 세션이 너무 많아져서 연결 세션 수립, 유지 및 종료에 부하가 많이 걸린다는 문제가 있어 복사 쓰레드(160)는 일정 개수만 생성하여 사용하는 것이 바람직하다. At this time, if the number of copy threads 160 is configured as m number of map tasks, it is possible to deliver intermediate results of the map task to individual reduce tasks in one parallel copy. However, when the number of map tasks is large, the map task Since there are too many connection sessions for the transfer of intermediate results between the performing node and the reducing task performing node, it takes a lot of load to establish, maintain, and terminate the connection session. Therefore, it is preferable that the copy thread 160 generate and use only a certain number. Do.

예컨대, 복사 쓰레드(160) c개를 사용한다면 개별 Reduce 태스크(예컨대, 150_1)에 전송되는 전체 m개의 Map 태스크 중간 결과(120_1, 120_2, ~, 140_1)는 c개씩 순차적으로 전송된다. For example, when using c copy threads 160, all m Map task intermediate results 120_1, 120_2, ˜ 140_1 transmitted to individual Reduce tasks (eg, 150_1) are sequentially transmitted by c.

도 2는 본 발명의 일실시예에 따른 용량 및 개수 별 Map 태스크 중간 결과 파일을 Reduce 태스크로 전송하는 소요되는 시간인 전체시간을 도시한 그래프이다. Figure 2 is a graph showing the total time that is the time required to transfer the intermediate result file Map task by capacity and number according to an embodiment of the present invention to the Reduce task.

여기서, 그래프의 x축은 Map 태스크 중간 결과 파일의 용량×개수[Byte], y축은 시간[Second]을 나타내며, 그래프의 출력인 A는 초당 전송되는 파일의 용량인 단위전송시간[MB/s], B는 전체 중간 결과 파일을 전송하는데 소요되는 시간인 전체전송시간[Second]이다. Here, the x-axis of the graph represents the capacity × number [Byte] of the Map task intermediate result file, and the y-axis represents the time [Second], and the output A of the graph represents the unit transmission time [MB / s], which is the capacity of the file transferred per second, B is the total transfer time [Second], which is the time taken to transfer the entire intermediate result file.

도 2에서 Map 태스크 중간 결과 파일의 개수가 많고, 파일의 크기가 작을수록 단위전송시간이 큰, 즉 데이터 전송 성능이 저하되는 경향이 있음을 해석할 수 있다. 이는 파일의 개수가 많을수록 데이터 전송을 위한 연결 설정 과정, 전송 준비 과정 및 연결 종료 과정 등의 실제 데이터를 전송하는 과정 이외의 처리에 걸리는 부하가 증가하기 때문이다. In FIG. 2, it can be interpreted that the larger the number of result files of the Map task and the smaller the file size, the larger the unit transfer time, that is, the data transfer performance tends to decrease. This is because, as the number of files increases, the load on processing other than the actual data transfer process such as connection establishment process, transfer preparation process, and connection termination process for data transmission increases.

이로부터, 본 발명에서 제시하는 바와 같이 Map 태스크 중간 결과 파일의 크 기를 일정 수준 이상으로 유지하고 파일의 개수를 줄인다면, 분산 병렬 처리 과정에 소요되는 전체시간을 줄일 수 있음을 유추할 수 있다. From this, it can be inferred that the overall time required for distributed parallel processing can be reduced if the size of the Map task intermediate result file is maintained above a certain level and the number of files is reduced, as suggested by the present invention.

도 3은 본 발명의 일실시예에 따른 분산 병렬 처리 시스템을 도시한 블록도이다. 도 3에 도시된 바와 같이, 작업 관리 노드(310)에서 수행되어 다수 개의 태스크 관리기(321, 421)에서 수행되는 전체 작업 처리 과정의 제어 및 관리를 수행하는 1개의 작업 관리기(311)와, 개별 태스크 수행 노드(320, 330)에서 수행되어 Map 태스크 및 Reduce 태스크를 관리하는 태스크 관리기(321, 331)를 포함한다. 3 is a block diagram illustrating a distributed parallel processing system according to an embodiment of the present invention. As shown in FIG. 3, one job manager 311 is performed by the job management node 310 to perform control and management of the entire job processing process performed by the plurality of task managers 321 and 421, and a separate job manager 311. Task task nodes 320 and 330 may be performed to manage a Map task and a Reduce task.

작업 관리기(311)는 작업 관리 노드(310)에서 수행되어 다수 개의 태스크 관리기(321, 331)가 수행하는 전체 작업 처리 과정의 제어 및 관리를 수행한다. The job manager 311 is performed by the job manager node 310 to control and manage the overall job processing performed by the plurality of task managers 321 and 331.

태스크 관리기(321, 331)는 태스크 수행 노드(예컨대, 320)에서 수행되어 Map 태스크 및 Reduce 태스크를 관리하며, 1개의 노드 수준 결합기(322), 다수 개의 Map 태스크를 실제로 수행하는 Map 태스크 수행기(324) 및 다수 개의 Reduce 태스크를 실제로 수행하는 Reduce 태스크 수행기(323)를 포함한다. The task managers 321 and 331 are executed in a task execution node (eg, 320) to manage the Map task and the Reduce task, and one node level combiner 322, a Map task executor 324 that actually performs a plurality of Map tasks. And a Reduce task executor 323 that actually performs a number of Reduce tasks.

Map 태스크 수행기(324) 또는 Reduce 태스크 수행기(323)는 Map 태스크 또는 Reduce 태스크가 할당되어 수행되는 과정에서 메모리에 생성되며, 개별 태스크 수행이 완료되면 제거된다. The Map task executor 324 or the Reduce task executor 323 is created in memory while the Map task or the Reduce task is assigned and performed, and is removed when the individual task execution is completed.

Map 태스크는 입력 데이터로부터 키/값 쌍 추출을 하는 연산 과정이며, Reduce 태스크는 추출된 키/값 쌍에 중복 키를 제거하고 비즈니스 로직을 사용하여 원하는 최종 키/값 쌍으로 구성되는 연산 과정이다. The Map task is an operation that extracts key / value pairs from the input data. The Reduce task is an operation process that removes duplicate keys in the extracted key / value pairs and uses the business logic to construct the desired final key / value pair.

그리고, 노드 수준 결합기(322)는 Map 태스크 수행 노드에서 Reduce 함수를 수행하도록 하여 중복 키 제거, 부분 정렬 및 부분 결과 미리 생성을 수행하여 Reduce 태스크 수행 노드로 전달되는 중간 결과 파일 크기를 줄이며, Reduce 태스크 수행기(323) 처리 부하를 감소시킨다.Node level combiner 322 also performs the Reduce function on the Map task execution node to perform duplicate key removal, partial sorting, and partial result pre-generation to reduce the intermediate result file size passed to the Reduce task execution node, Performer 323 reduces processing load.

도 4는 본 발명의 일실시예에 따른 Map 태스크 중간 결과 결합 과정을 도시한 블록도이다. 도 4에 도시된 바와 같이, Map 태스크 중간 결과 결합은 Map 태스크 수행, 태스크 수준 결합 및 노드 수준 결합 과정을 통해 수행된다. 4 is a block diagram illustrating a process of combining intermediate results of a Map task according to an embodiment of the present invention. As illustrated in FIG. 4, the map task intermediate result combining is performed by performing a map task, task level combining, and node level combining.

먼저, 전역 파일 시스템(410)상에서 관리되는 전체 입력 데이터 중 분할된 일부분(411)을 읽어 사용자 작성 Map 함수에서 처리하기 적당한 크기로 분할하여 메모리에 적재한다(S410).First, the divided portion 411 of the entire input data managed on the global file system 410 is read, divided into pieces suitable for processing by the user-written Map function, and loaded into the memory (S410).

이어서, 분할 입력 데이터에 사용자 Map 함수를 적용하여 사용자 정의 키/값을 추출하여 메모리 내 버퍼(420)에 쌓아둔다(S420). Subsequently, the user map function is applied to the divided input data, and the user-defined key / value is extracted and stacked in the in-memory buffer 420 (S420).

그리고, 버퍼(420)에 일정량의 데이터가 쌓일 때마다 키/값 쌍 목록을 정렬하는 과정을 수행한다(S430). Whenever a certain amount of data is accumulated in the buffer 420, a process of sorting a list of key / value pairs is performed (S430).

그 다음으로, 정렬된 키/값 쌍 목록을 각 Reduce 태스크를 위한 부분 결과로 분할하고(S440), 분할된 각 부분 결과의 중복 키를 제거하며 결합한다(S450).Next, the sorted list of key / value pairs is divided into partial results for each Reduce task (S440), and duplicate keys of each divided partial result are removed and combined (S450).

이어서, 결합한 부분 결과를 임시 파일(중간 파일)로 작성하고(S460), 입력 데이터의 분할된 일부분에 대한 모든 Map 태스크 처리가 끝나면, 생성된 부분 결과 임시 파일을 읽어 통합한다(S470).Subsequently, the combined partial result is created as a temporary file (intermediate file) (S460). After all Map task processing for the divided part of the input data is completed, the generated partial result temporary file is read and merged (S470).

그리고, 통합된 부분 결과를 다시 작성하여 최종 중간 결과(440)를 생성한다(S470).Then, the integrated partial result is rewritten to generate the final intermediate result 440 (S470).

그 후, 노드 수준 결합기(430)를 이용하여 여러 Map 태스크가 하나의 노드에서 수행되어 생성한 다수 개의 최종 중간 결과(440~)에 대한 중복 키를 제거하여 통합 결과 파일(450)을 구성한다(S490). Thereafter, using the node-level combiner 430, a plurality of map tasks are performed on one node to remove duplicate keys for a plurality of final intermediate results 440 ˜ generated to construct an integrated result file 450 ( S490).

여기서, 노드 수준 결합기(430)는 입력 데이터의 분할된 일부분에 대한 전체 Map 태스크의 처리 시간이 소정시간 이상이면, 일부 Map 태스크에 대한 통합 결과 파일(450)을 미리 생성하여 Reduce 태스크로 전달할 수도 있다. Here, if the processing time of the entire Map task for the divided portion of the input data is more than a predetermined time, the node level combiner 430 may generate the integrated result file 450 for some Map tasks in advance and deliver the result to the Reduce task. .

도 5는 본 발명의 일실시예에 따른 Map 태스크와 Reduce 태스크 처리 과정을 노드 수준 결합 과정 중심으로 도시한 흐름도이다. 이하, 도 5를 참조하여 설명한다. 5 is a flowchart illustrating a process of processing a Map task and a Reduce task according to an embodiment of the present invention centering on a node level combining process. A description with reference to FIG. 5 is as follows.

Map 수행 태스크 관리기(530)는 Map 태스크를 할당받으면 새로 Map 태스크 수행기(520)를 생성하며(S501), Reduce 수행 태스크 관리기(550)는 Reduce 태스크를 할당받으면 새로 Reduce 태스크 수행기(560)를 생성한다(S502). The map performing task manager 530 newly generates a map task performer 520 when the map task is assigned (S501), and the reduce performing task manager 550 generates a new reduce task performer 560 when the reduce task is assigned. (S502).

이때, Map 태스크 수행기(520)는 할당받은 Map 태스크를 수행하여 중간 결과를 생성하고, Reduce 태스크 수행기(560)는 할당받은 Reduce 태스크를 수행하여 최종 결과를 생성한다. At this time, the map task executor 520 performs the assigned Map task to generate an intermediate result, and the reduce task executor 560 performs the assigned Reduce task to generate the final result.

Map 태스크 수행기(520)는 Map 태스크 수행이 완료되면(S503), Map 수행 태스크 관리기(530)에 <Map 태스크 식별자, 중간 결과 파일 경로>를 포함하는 Map 태스크 완료 정보를 통보 및 전달한다(S504).When the Map task executor 520 completes the execution of the Map task (S503), the map task executor 520 notifies and transmits the map task completion information including <Map task identifier and intermediate result file path> to the map execution task manager 530 (S504). .

Map 수행 태스크 관리기(530)는 전달받은 Map 태스크 완료 정보를 작업 관리기(540)를 통해서(S505) 모든 Reduce 수행 태스크 관리기(550)에 통보하고(S506), Reduce 수행 태스크 관리기(550)는 모든 Reduce 태스크 수행기(560)에 이를 통보한다(S507). The map performing task manager 530 notifies all Reduce performing task managers 550 of the received Map task completion information through the job manager 540 (S505) (S506), and the Reduce performing task manager 550 performs all of the Reduce. The task executor 560 is notified of this (S507).

Reduce 태스크 수행기(560)는 Map 태스크 수행기(520)로부터 통보받은 <Map 태스크 식별자, 중간 결과 파일 경로> 정보를 "전송 예정 중간 결과 목록"에 삽입한 다음(S508), "전송예정 중간 결과 목록"에서 순차적으로 <Map 태스크 식별자, 중간 결과 파일 경로> 정보를 하나씩 꺼내어(S509) Map 수행 태스크 관리기(530)에게 Map 태스크 중간 결과 전송을 요청한다(S510). The Reduce task executor 560 inserts <Map task identifier, intermediate result file path> information notified from the Map task executor 520 into the "send intermediate result list" (S508), and then "send intermediate result list". In step S509, the information on <Map task identifier and intermediate result file path> is sequentially taken out (S509), and a request for transmitting a map task intermediate result is requested to the map performing task manager 530 (S510).

그러면, Map 수행 태스크 관리기(530)가 Reduce 태스크 수행기(560)로 중간 결과를 전송하고(S511), Reduce 태스크 수행기(560)는 중간 결과 전송이 모두 완료되면 "전송 예정 중간 결과 목록"에서 해당 Map 태스크 전송 예정 정보를 제거한다(S512). Then, the Map performing task manager 530 transmits the intermediate result to the Reduce task performer 560 (S511), and the Reduce task executor 560 completes the intermediate result transmission in the "Map to be sent" list when the intermediate results are completed. The task transmission schedule information is removed (S512).

노드 수준 결합기(510)는 Map 수행 태스크 관리기(530)로부터 Map 태스크는 완료되어 중간 결과가 생성되었으나 아직 Reduce 태스크 수행기(560)로 전달되지 않은 다수 개의 Map 태스크 중간 결과를 통보받아(S513) "결합 예정 중간 결과 목록"에 삽입하여 관리한다(S514). The node level combiner 510 receives a plurality of Map task intermediate results from the Map performing task manager 530 in which the Map task is completed and generated intermediate results, but has not yet been passed to the Reduce task performer 560 (S513). It is inserted into the scheduled intermediate result list "and managed (S514).

그리고, Map 태스크의 수행이 완료되면(S514), 미전송된 다중 중간 결과에 대하여 노드 수준 결합 과정을 적용한다. When the execution of the Map task is completed (S514), the node level combining process is applied to the untransmitted multiple intermediate results.

이때, Map 수행 태스크 관리기(530)로부터 노드 수준 결합 과정 적용 전에 Reduce 태스크 수행기(560)로 전송된 중간 결과는 "결합 예정 중간 결과 목록"에서 제거한다(S515). At this time, the intermediate result transmitted from the Map performing task manager 530 to the Reduce task performer 560 before the node level combining process is applied is removed from the "combining scheduled intermediate result list" (S515).

한편, 노드 수준 결합 과정이 완료된(S516) 중간 결과와 Map 태스크 처리 과정에서 생성된 중간 결과 역시 "결합 예정 중간 결과 목록"에서 제거된다(S517). Meanwhile, the intermediate result at which the node level combining process is completed (S516) and the intermediate result generated during the Map task processing are also removed from the “combination scheduled intermediate result list” (S517).

여기서, 노드 수준 결합 정보는 <Map 태스크 식별자 목록, 결합 중간 결과 경로> 형식으로 Map 수행 태스크 관리기(530), 작업 관리기(540), Reduce 수행 태스크 관리기(550)를 거쳐서 Reduce 태스크 수행기(560)로 통보된다(S518, S519, S520, S521). Here, the node-level join information is passed to the Reduce task executor 560 through the Map task task manager 530, the task manager 540, and the Reduce task task manager 550 in the form of <Map task identifier list, join intermediate result path>. Notification is made (S518, S519, S520, S521).

Reduce 태스크 수행기(560)는 "전송 예정 중간 결과 목록"에 이를 반영하여 1개를 제외한 나머지 태스크 정보를 제거하고 잔여 태스크 식별자에 대해서는 새로 전달받은 Map 중간 결과 경로 정보를 설정한다(S522). The reduce task executor 560 removes the remaining task information except for one by reflecting this in the "send scheduled intermediate result list" and sets newly received Map intermediate result path information for the remaining task identifier (S522).

이때, 이 같은 "전송 예정 중간 결과 목록"에의 반영은 전송 요청을 할 중간 결과 선택 과정에서 이루어진다.In this case, the reflection on the "intermediate result list to be transmitted" is performed during the intermediate result selection process for the transmission request.

도 6은 본 발명의 일실시예에 따른 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치를 사용하여 입력 데이터에 포함된 단어 개수를 세는 연산 작업 수행 과정을 도시한 흐름도이다. 이하, 도 6을 참조하여 설명한다. FIG. 6 is a flowchart illustrating a process of performing an operation of counting words included in input data using a multi-map task intermediate result sorting and combining apparatus in a distributed parallel processing system according to an exemplary embodiment of the present invention. A description with reference to FIG. 6 is as follows.

본 실시예에서 단어 개수 세는 작업의 입력 데이터는 2개의 분할 파일로 분할되어 있기 때문에 제1 분할(611)은 제1 Map 태스크(621)에 의해, 제2 분할(612)은 제2 Map 태스크(622)에 의해 처리된다. In this embodiment, since the input data of the word counting job is divided into two divided files, the first partition 611 is divided by the first map task 621, and the second partition 612 is the second map task ( 622).

제1 Map 태스크(621)는 제1 분할(611)에 포함된 모든 출현 단어와 각 단어의 출현 횟수를 각각 키/값으로 하는 제1 중간 결과 파일(631)을 생성하며, 태스크 수준 결합기(641)가 제1 중간 결과 파일(631)에 Reduce 함수를 적용하여 중복 키를 제거한 제1 중간 결과(651)를 생성한다.The first Map task 621 generates a first intermediate result file 631 having a key / value of all occurrence words included in the first partition 611 and the number of occurrences of each word, respectively, and the task level combiner 641. ) Applies the Reduce function to the first intermediate result file 631 to generate the first intermediate result 651 with the duplicate key removed.

제2 Map 태스크(622)는 제2 분할(612)에 포함된 모든 출현 단어와 각 단어의 출현 횟수를 각각 키/값으로 하는 제2 중간 결과 파일(632)을 생성하며, 태스크 수준 결합기(642)가 제2 중간 결과 파일(632)에 Reduce 함수를 적용하여 중복 키를 제거한 제2 중간 결과(652)를 생성한다. The second Map task 622 generates a second intermediate result file 632 with key / values for every occurrence word and number of occurrences of each word in the second partition 612, respectively, and task level combiner 642. ) Applies the Reduce function to the second intermediate result file 632 to produce a second intermediate result 652 that eliminates duplicate keys.

노드 수준 결합기(660)는 제1 Map 태스크(621)를 통해 생성된 제1 중간 결과(651) 및 제2 Map 태스크를 통해 생성된 제2 중간 결과(652)의 중복 키를 제거한 다음, 정렬하여 여러 Map 태스크의 중간 결과 파일을 하나의 중간 결과 파일로 결합한 최종 중간 결과 파일(670)을 생성한다. The node level combiner 660 removes duplicate keys of the first intermediate result 651 generated through the first Map task 621 and the second intermediate result 652 generated through the second Map task, and then sorts the result. Generate a final intermediate result file 670 that combines the intermediate result files of several Map tasks into one intermediate result file.

이상, 바람직한 실시예 및 첨부 도면을 통해 본 발명의 구성에 대하여 설명하였다. 그러나, 이는 예시에 불과한 것으로서 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 본 기술 분야의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 발명의 진정한 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. The configuration of the present invention has been described above through the preferred embodiments and the accompanying drawings. However, these are only examples and are not used to limit the scope of the present invention. Those skilled in the art will understand from this that various modifications and equivalent other embodiments are possible. The true scope of protection of the present invention should be defined by the technical spirit of the appended claims.

도 1은 본 발명에 따른 Map 태스크와 Reduce 태스크 간의 데이터 전송 과정을 도시한 블록도.1 is a block diagram illustrating a data transmission process between a Map task and a Reduce task according to the present invention.

도 2는 본 발명에 따른 용량 및 개수 별 Map 태스크 중간 결과 파일이 Reduce 태스크로 전송하는 소요되는 시간인 전체시간을 도시한 그래프.Figure 2 is a graph showing the total time that is the time required for the transfer of the Map task intermediate result file by capacity and number according to the present invention to the Reduce task.

도 3은 본 발명에 따른 분산 병렬 처리 시스템을 도시한 블록도.3 is a block diagram illustrating a distributed parallel processing system in accordance with the present invention.

도 4는 본 발명에 따른 Map 태스크 중간 결과 결합 과정을 도시한 블록도.4 is a block diagram illustrating a process of combining intermediate results of a Map task according to the present invention;

도 5는 본 발명에 따른 Map 태스크와 Reduce 태스크 처리 과정을 노드 수준 결합 과정 중심으로 도시한 흐름도.5 is a flowchart illustrating a node task combining process of a Map task and a Reduce task process according to the present invention.

도 6은 본 발명에 따른 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치를 사용하여 입력 데이터에 포함된 단어 개수를 세는 연산 작업 수행 과정을 도시한 흐름도.FIG. 6 is a flowchart illustrating a process of performing an operation of counting words included in input data using a multi-map task intermediate result sorting and combining apparatus in a distributed parallel processing system according to the present invention. FIG.

<도면의 주요부분에 대한 설명><Description of main parts of drawing>

510: 노드 수준 결합기 520: Map 태스크 수행기510: Node level combiner 520: Map task performer

530: Map 수행 태스크 관리기 540: 작업 관리기530: Map Perform Task Manager 540: Task Manager

550: Reduce 수행 태스크 관리기 560: Reduce 태스크 수행기550: Reduce Perform Task Manager 560: Reduce Task Performer

Claims (12)

(a) 분할 입력 데이터를 입력받아 하나 이상의 노드에서 사용자 작성 Map 태스크를 할당하고, 상기 Map 태스크를 분산 병렬 처리하여 하나 이상의 중간 결과 파일을 생성하는 단계;(a) receiving split input data, assigning a user-written Map task to one or more nodes, and generating one or more intermediate result files by performing distributed parallel processing of the Map task; (b) 상기 개별 Map 태스크에 의해 생성된 하나 이상의 중간 결과 파일에 Reduce 함수를 적용하고, 중복 키 제거 및 정렬을 통하여 하나 이상의 중간 결과를 생성하는 단계;(b) applying a Reduce function to one or more intermediate result files generated by the respective Map tasks, and generating one or more intermediate results through duplicate key removal and sorting; (c) 상기 Map 태스크의 분산 병렬 처리가 끝나면, 하나 이상의 Reduce 태스크를 통해 하나 이상의 중간 결과를 분산 병렬 처리하여 하나 이상의 최종 결과를 생성하는 단계;(c) when distributed parallel processing of the Map task is completed, distributed parallel processing of one or more intermediate results through one or more Reduce tasks to generate one or more final results; 를 포함하는 것을 특징으로 하는 다중 Map 태스크 중간 결과 정렬 및 결합 방법.Method of sorting and combining intermediate results of the multi-map task comprising a. 제1항에 있어서, 상기 (a)단계 이전에,According to claim 1, Before the step (a), 전체 입력 데이터의 분할된 일부분을 읽어 사용자 작성 Map 함수가 처리하기 적당한 크기로 분할하여 메모리에 적재하는 단계;Reading the divided portion of the entire input data, dividing the divided portion into sizes suitable for processing by the user-written Map function, and loading the same into memory; 를 더 포함하는 것을 특징으로 하는 다중 Map 태스크 중간 결과 정렬 및 결합 방법.Method for sorting and combining intermediate results of the multiple map task further comprises. 제1항에 있어서, 상기 (a)단계는, According to claim 1, wherein step (a), (a-1) 상기 Map 함수를 수행하여 사용자 정의 키/값을 추출하여 메모리 내 버퍼에 적재하는 단계;(a-1) extracting a user-defined key / value by performing the Map function and loading the same into a buffer in a memory; (a-2) 상기 버퍼에 일정량의 데이터가 쌓이면 키/값 쌍 목록을 정렬하는 단계;(a-2) sorting a list of key / value pairs when a certain amount of data is accumulated in the buffer; (a-3) 상기 정렬된 키/값 쌍 목록을 개별 Reduce 태스크를 위한 중간 결과 파일로 분할하는 단계;(a-3) dividing the sorted list of key / value pairs into an intermediate result file for an individual Reduce task; 를 포함하는 것을 특징으로 하는 다중 Map 태스크 중간 결과 정렬 및 결합 방법.Method of sorting and combining intermediate results of the multi-map task comprising a. 제1항에 있어서, 상기 (b)단계는, According to claim 1, wherein step (b), (b-1) 상기 중간 결과 파일의 중복 키를 제거하며 결합하는 단계;(b-1) combining and removing duplicate keys of the intermediate result file; (b-2) 상기 결합한 중간 결과 파일을 정렬하여 개별 중간 결과를 생성하는 단계;(b-2) sorting the combined intermediate result files to produce individual intermediate results; 를 포함하는 특징으로 하는 다중 Map 태스크 중간 결과 정렬 및 결합 방법.Method for sorting and combining intermediate results of multiple Map task comprising a. 제1항에 있어서, 상기 (c)단계에서 상기 전체 분할 입력 데이터에 대한 중간 결과 생성이 완료됨은,The method of claim 1, wherein in the step (c), the intermediate result generation for the whole divided input data is completed. 상기 개별 Map 태스크 수행 완료 정보의 통보로 판단되는 것Determination of notification of the completion information of the individual Map task execution 을 특징으로 하는 다중 Map 태스크 중간 결과 정렬 및 결합 방법.Method for sorting and combining intermediate results of multiple Map tasks. Map 태스크를 할당받으면 Map 태스크 수행기를 생성하여 분할 입력 데이터에 대해 분산 병렬 처리를 통해 키/값 쌍을 추출하고, 중간 결과 파일을 생성하는 다수 개의 Map 수행 태스크 관리기;A plurality of Map execution task managers that generate a Map task executor, extract key / value pairs through distributed parallel processing on split input data, and generate an intermediate result file when the map task is assigned; 상기 개별 Map 수행 노드의 태스크 관리기가 생성한 중간 결과 파일에 Reduce 함수를 적용하여 중복 키를 제거한 후 정렬하여 중간 결과를 생성하는 하나 이상의 태스크 수준 결합기;One or more task level combiners configured to remove intermediate keys by applying a reduce function to the intermediate result file generated by the task manager of the individual map execution node, and then sort and generate intermediate results; 할당된 전체 Map 태스크가 완료되면 상기 생성된 중간 결과들을 통합하고, 중복 키를 제거한 후 정렬하여 최종 중간 결과 파일을 생성하는 노드 수준 결합기를 포함하고,A node level combiner that consolidates the generated intermediate results upon completion of the assigned total Map task, removes duplicate keys, and sorts to produce the final intermediate result file, 상기 최종 중간 파일의 중복 키 제거로 Reduce 태스크 처리 부하가 적은 것을 특징으로 하는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치.Device for sorting and combining the results of multiple Map tasks in a distributed parallel processing system, characterized in that the reduced task processing load due to the elimination of duplicate keys of the final intermediate file. 제6항에 있어서, The method of claim 6, 상기 분할 입력 데이터를 상기 Map 태스크 수행에 적절한 크기로 분할하여 적재하는 메모리;A memory for dividing and dividing the divided input data into a size suitable for performing the Map task; 를 더 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치.Apparatus for sorting and combining the results of multiple intermediate map tasks in a distributed parallel processing system further comprising. 제6항에 있어서, The method of claim 6, 상기 Map 수행 태스크 관리기, 상기 태스크 수준 결합기 및 상기 노드 수준 결합기에서 수행되는 전체 작업과정의 제어 및 관리를 수행하는 작업 관리기; A task manager configured to control and manage an entire work process performed by the map performing task manager, the task level combiner, and the node level combiner; 를 더 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치.Apparatus for sorting and combining the results of multiple intermediate map tasks in a distributed parallel processing system further comprising. 제6항에 있어서, 상기 Map 태스크 수행기는, The method of claim 6, wherein the Map task executor, Map 태스크 수행이 완료되면, Map 수행 태스크 관리기에 <Map 태스크 식별자, 중간 결과 파일 경로>를 포함하는 Map 태스크 완료 정보를 통보하는 것When the Map task execution is completed, notify the Map execution task manager of the Map task completion information including <Map task identifier, intermediate result file path>. 을 특징으로 하는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치.An apparatus for sorting and combining intermediate results of multiple Map tasks in a distributed parallel processing system. 제6항에 있어서, The method of claim 6, Reduce 태스크 수행기를 생성하여 Reduce 태스크를 수행하여 원하는 최종 키/값 쌍으로 구성되는 최종 결과를 생성하는 Reduce 수행 태스크 관리기;Reduce Perform Task Manager, which creates a Reduce Task Attendant to perform a Reduce task to produce the final result consisting of the desired final key / value pair; 를 더 포함하는 것을 특징으로 하는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치.Apparatus for sorting and combining the results of multiple intermediate map tasks in a distributed parallel processing system further comprising. 제10항에 있어서, 상기 노드 수준 결합기는, The method of claim 10, wherein the node-level combiner, 상기 Map 수행 태스크 관리기의 Map 태스크가 완료되어 중간 결과가 생성되 었으나 상기 Reduce 태스크 수행기로 전달되지 않은 Map 태스크 중간 결과를 "결합 예정 중간 결과 목록"에 삽입하여 관리하는 것Inserting and managing an intermediate result of the Map task which has been generated by the completion of the Map task of the Map performing task manager but not delivered to the Reduce task performer to the "combined intermediate result list" 을 특징으로 하는 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치.An apparatus for sorting and combining intermediate results of multiple Map tasks in a distributed parallel processing system. 제10항에 있어서, 상기 Reduce 태스크 수행기는, The method of claim 10, wherein the reduce task executor, 상기 Map 태스크 수행기가 전달한 Map 태스크 완료 통보로부터 생성된 <Map 태스크 식별자, 중간 결과 파일 경로> 정보로부터 "전송 예정 중간 결과 목록"을 생성하여 관리하는 것을 분산 병렬 처리 시스템에서 다중 Map 태스크 중간 결과 정렬 및 결합 장치.Arranging and managing intermediate results of multiple Map tasks in a distributed parallel processing system by generating and managing "transferred intermediate result list" from <Map task identifier and intermediate result file path> information generated from the Map task completion notification delivered by the Map task performer. Coupling device.
KR1020070133589A 2007-12-18 2007-12-18 Apparatus for Sorting and Combining Intermediate Results of Multiple Map Tasks on the Distributed Parallel Processing System and Method thereof KR100946987B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070133589A KR100946987B1 (en) 2007-12-18 2007-12-18 Apparatus for Sorting and Combining Intermediate Results of Multiple Map Tasks on the Distributed Parallel Processing System and Method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070133589A KR100946987B1 (en) 2007-12-18 2007-12-18 Apparatus for Sorting and Combining Intermediate Results of Multiple Map Tasks on the Distributed Parallel Processing System and Method thereof

Publications (2)

Publication Number Publication Date
KR20090066010A true KR20090066010A (en) 2009-06-23
KR100946987B1 KR100946987B1 (en) 2010-03-15

Family

ID=40994176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070133589A KR100946987B1 (en) 2007-12-18 2007-12-18 Apparatus for Sorting and Combining Intermediate Results of Multiple Map Tasks on the Distributed Parallel Processing System and Method thereof

Country Status (1)

Country Link
KR (1) KR100946987B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012111905A2 (en) * 2011-02-14 2012-08-23 (주)케이티 Distributed memory cluster control device and method using mapreduce
KR101218087B1 (en) * 2011-01-19 2013-01-09 충남대학교산학협력단 Method for Extracting InputFormat for Binary Format Data in Hadoop MapReduce and Binary Data Analysis Using the Same
KR101281625B1 (en) * 2011-09-02 2013-07-03 고려대학교 산학협력단 The method for allocating input data and the apparatus for the same
KR101285078B1 (en) * 2009-12-17 2013-07-17 한국전자통신연구원 Distributed parallel processing system and method based on incremental MapReduce on data stream
KR20140093535A (en) * 2013-01-18 2014-07-28 한국전자통신연구원 Method for parallel mining of temporal relations in large event file
US10530707B2 (en) 2016-02-18 2020-01-07 Electronics And Telecommunications Research Institute Mapreduce apparatus, and mapreduce control apparatus and method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097972A (en) 2012-02-27 2013-09-04 삼성전자주식회사 Distributed processing apparatus and method for big data using hardware acceleration
KR101435499B1 (en) * 2012-10-31 2014-08-29 서강대학교산학협력단 Mapreduce cluster node and design method in the virtual cloud environment

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101285078B1 (en) * 2009-12-17 2013-07-17 한국전자통신연구원 Distributed parallel processing system and method based on incremental MapReduce on data stream
KR101218087B1 (en) * 2011-01-19 2013-01-09 충남대학교산학협력단 Method for Extracting InputFormat for Binary Format Data in Hadoop MapReduce and Binary Data Analysis Using the Same
WO2012111905A2 (en) * 2011-02-14 2012-08-23 (주)케이티 Distributed memory cluster control device and method using mapreduce
WO2012111905A3 (en) * 2011-02-14 2012-10-11 (주)케이티 Distributed memory cluster control device and method using mapreduce
US8984085B2 (en) 2011-02-14 2015-03-17 Kt Corporation Apparatus and method for controlling distributed memory cluster
KR101502896B1 (en) * 2011-02-14 2015-03-24 주식회사 케이티 Distributed memory cluster control apparatus and method using map reduce
KR101281625B1 (en) * 2011-09-02 2013-07-03 고려대학교 산학협력단 The method for allocating input data and the apparatus for the same
KR20140093535A (en) * 2013-01-18 2014-07-28 한국전자통신연구원 Method for parallel mining of temporal relations in large event file
US10530707B2 (en) 2016-02-18 2020-01-07 Electronics And Telecommunications Research Institute Mapreduce apparatus, and mapreduce control apparatus and method

Also Published As

Publication number Publication date
KR100946987B1 (en) 2010-03-15

Similar Documents

Publication Publication Date Title
KR100946987B1 (en) Apparatus for Sorting and Combining Intermediate Results of Multiple Map Tasks on the Distributed Parallel Processing System and Method thereof
CN103309738B (en) User job dispatching method and device
US9838242B2 (en) Flowlet-based processing with key/value store checkpointing
CN102831120B (en) A kind of data processing method and system
US9170848B1 (en) Parallel processing of data
CN104834558B (en) A kind of method and system of data processing
US20140108489A1 (en) Flowlet-based processing
JP5480395B2 (en) Stream data processing method and apparatus
CN103812949B (en) A kind of task scheduling towards real-time cloud platform and resource allocation methods and system
US8892514B2 (en) Multi-path replication in databases
CN109933631A (en) Distributed parallel database system and data processing method based on Infiniband network
WO2010121218A2 (en) Policy-based storage structure distribution
CN108092803A (en) The method that network element level parallelization service function is realized in network function virtualized environment
CN103366022B (en) Information handling system and disposal route thereof
Zhang et al. Improving Hadoop service provisioning in a geographically distributed cloud
CN110308984B (en) Cross-cluster computing system for processing geographically distributed data
CN113067883A (en) Data transmission method and device, computer equipment and storage medium
CN101799779B (en) Data processing device and data processing method
Liu et al. Optimizing shuffle in wide-area data analytics
CN107728935A (en) To the data in distributed computing system again subregion
WO2011142227A1 (en) Computer system, method and program
CN103024791A (en) Multi-service processing model and multi-service processing method in communication test system
Fink Distributed computation on dynamo-style distributed storage: riak pipe
US8799619B2 (en) Method and system for providing distributed programming environment using distributed spaces, and computer readable recording medium
Meddeber et al. Tasks assignment for Grid computing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130304

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 18