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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, 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
Description
본 발명은 분산 병렬 처리 시스템에서 다중 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
예컨대, 복사 쓰레드(160) c개를 사용한다면 개별 Reduce 태스크(예컨대, 150_1)에 전송되는 전체 m개의 Map 태스크 중간 결과(120_1, 120_2, ~, 140_1)는 c개씩 순차적으로 전송된다. For example, when using
도 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
작업 관리기(311)는 작업 관리 노드(310)에서 수행되어 다수 개의 태스크 관리기(321, 331)가 수행하는 전체 작업 처리 과정의 제어 및 관리를 수행한다. The
태스크 관리기(321, 331)는 태스크 수행 노드(예컨대, 320)에서 수행되어 Map 태스크 및 Reduce 태스크를 관리하며, 1개의 노드 수준 결합기(322), 다수 개의 Map 태스크를 실제로 수행하는 Map 태스크 수행기(324) 및 다수 개의 Reduce 태스크를 실제로 수행하는 Reduce 태스크 수행기(323)를 포함한다. The
Map 태스크 수행기(324) 또는 Reduce 태스크 수행기(323)는 Map 태스크 또는 Reduce 태스크가 할당되어 수행되는 과정에서 메모리에 생성되며, 개별 태스크 수행이 완료되면 제거된다. The
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) 처리 부하를 감소시킨다.
도 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
이어서, 분할 입력 데이터에 사용자 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
그 다음으로, 정렬된 키/값 쌍 목록을 각 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-
여기서, 노드 수준 결합기(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
도 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
제1 Map 태스크(621)는 제1 분할(611)에 포함된 모든 출현 단어와 각 단어의 출현 횟수를 각각 키/값으로 하는 제1 중간 결과 파일(631)을 생성하며, 태스크 수준 결합기(641)가 제1 중간 결과 파일(631)에 Reduce 함수를 적용하여 중복 키를 제거한 제1 중간 결과(651)를 생성한다.The
제2 Map 태스크(622)는 제2 분할(612)에 포함된 모든 출현 단어와 각 단어의 출현 횟수를 각각 키/값으로 하는 제2 중간 결과 파일(632)을 생성하며, 태스크 수준 결합기(642)가 제2 중간 결과 파일(632)에 Reduce 함수를 적용하여 중복 키를 제거한 제2 중간 결과(652)를 생성한다. The
노드 수준 결합기(660)는 제1 Map 태스크(621)를 통해 생성된 제1 중간 결과(651) 및 제2 Map 태스크를 통해 생성된 제2 중간 결과(652)의 중복 키를 제거한 다음, 정렬하여 여러 Map 태스크의 중간 결과 파일을 하나의 중간 결과 파일로 결합한 최종 중간 결과 파일(670)을 생성한다. The
이상, 바람직한 실시예 및 첨부 도면을 통해 본 발명의 구성에 대하여 설명하였다. 그러나, 이는 예시에 불과한 것으로서 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 본 기술 분야의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 본 발명의 진정한 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 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)
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)
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)
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 |
-
2007
- 2007-12-18 KR KR1020070133589A patent/KR100946987B1/en active IP Right Grant
Cited By (9)
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 |