KR101331383B1 - 데이터 처리 방법 및 장치 - Google Patents

데이터 처리 방법 및 장치 Download PDF

Info

Publication number
KR101331383B1
KR101331383B1 KR1020120024921A KR20120024921A KR101331383B1 KR 101331383 B1 KR101331383 B1 KR 101331383B1 KR 1020120024921 A KR1020120024921 A KR 1020120024921A KR 20120024921 A KR20120024921 A KR 20120024921A KR 101331383 B1 KR101331383 B1 KR 101331383B1
Authority
KR
South Korea
Prior art keywords
data
index
input data
index file
file
Prior art date
Application number
KR1020120024921A
Other languages
English (en)
Other versions
KR20130103912A (ko
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 KR1020120024921A priority Critical patent/KR101331383B1/ko
Publication of KR20130103912A publication Critical patent/KR20130103912A/ko
Application granted granted Critical
Publication of KR101331383B1 publication Critical patent/KR101331383B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

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

Abstract

본 발명은 맵리듀스(MapReduce)를 이용한 데이터 처리 시, 색인을 이용하여 데이터를 처리하는 방법 및 장치에 관한 것이다.
본 발명의 일실시예에 의한 데이터 처리 방법은 맵리듀스(MapReduce) 방식으로 데이터를 처리하는 방법으로서, 입력 데이터를 저장하는 단계; 상기 입력 데이터에 대한 저장된 색인 파일이 존재하는지 검사하는 단계; 상기 색인 파일이 존재하지 않는 경우, 상기 입력 데이터에 대한 색인 파일을 생성하는 단계; 상기 색인 파일이 존재하는 경우, 상기 저장된 색인 파일을 이용하여 상기 입력 데이터에서 특정 데이터를 선별하는 단계; 및 상기 입력 데이터 또는 상기 특정 데이터를 맵리듀스 방식으로 처리하는 단계를 포함할 수 있다.

Description

데이터 처리 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING DATA}
본 발명은 데이터 처리 방법 및 데이터 처리 장치에 관한 것으로, 보다 상세하게는 맵리듀스(MapReduce)를 이용한 데이터 처리 시, 색인을 이용하여 데이터를 처리하는 방법 및 장치에 관한 것이다.
인터넷이 발전함에 따라 하루에도 수없이 많은 데이터가 인터넷 상에서 생성 및 유통이 되고 있으며, 최근 많은 기업, 특히 검색 엔진 회사 및 웹 포탈들 간에는 이와 같이 엄청난 양의 데이터를 가능한 많이 수집 및 축적하고 수집된 데이터를 처리하여 가능한 빨리 의미 있는 정보를 추출하는 능력이 기업의 경쟁력이 되고 있다.
이를 위하여, 현재 많은 기업에서 저비용으로 대규모 클러스터를 구축하여 대용량 데이터 분산 관리 및 작업 분산 병렬 처리하는 기술에 대하여 많은 연구를 하고 있으며, 작업 분산 병렬 처리 기술 중에서 맵리듀스(MapReduce) 모델이 대표적인 작업 분산 병렬 처리 방법 중에 하나로 주목을 받고 있다.
맵리듀스(MapReduce) 모델은 Google 사에서 저비용 대규모 노드로 구성된 클러스터 상에 저장된 대용량 데이터에 대한 분산 병렬 연산을 지원하기 위하여 제안한 분산 병렬 처리 프로그래밍 모델이며, 맵리듀스(MapReduce) 모델에서 사용자가 작성하는 하나의 작업은 사용자가 작성하는 맵(Map) 함수가 주축이 되는 맵(Map) 단계와 사용자가 작성하는 리듀스(Reduce) 함수가 주축이 되는 리듀스(Reduce) 단계의 2단계로 구성이 되어 순차적으로 수행이 되고, 각 맵(Map) 단계 및 리듀스(Reduce) 단계 내에서는 다중 노드에 다중 태스크로 복제가 되어 분산 병렬 수행이 되며, 맵(Map) 단계에서는 기본적으로 입력 데이터로부터 키/값 쌍을 추출하는 연산을 수행하고, 리듀스(Reduce) 단계 에서는 맵(Map) 단계에서 추출된 키/값 쌍에 비즈니스 로직을 적용하여 원하는 최종 결과 키/값 쌍을 구하는 연산을 수행한다.
하지만, 맵리듀스 모델은 대용량의 일회성 데이터(예: 로그 데이터)를 처리하기 위한 목적으로 설계된 것으로, 맵(Map) 함수에 할당되는 데이터를 처음부터 끝까지 읽고 처리하는 방식이다. 이와 같이 매번 입력 데이터를 전체 스캔하는 방식은 작업 처리 성능 저하의 원인이 되고 있다.
따라서 대용량의 데이터를 효과적으로 처리하면서도 작업 시간을 단축할 수 있는 방법에 대한 연구가 필요한 실정이다.
본 발명의 목적은 맵리듀스(MapReduce)를 이용한 데이터 처리 시, 색인 작업을 수행하여 데이터의 작업 처리 시간을 단축시킬 수 있는 데이터 처리 방법 및 장치를 제공하는 데 있다.
상기 목적을 달성하기 위해 본 발명의 일실시예에 의하면, 맵리듀스(MapReduce) 방식으로 데이터를 처리하는 방법으로서, 입력 데이터를 저장하는 단계; 상기 입력 데이터에 대한 저장된 색인 파일이 존재하는지 검사하는 단계; 상기 색인 파일이 존재하지 않는 경우, 상기 입력 데이터에 대한 색인 파일을 생성하는 단계; 상기 색인 파일이 존재하는 경우, 상기 저장된 색인 파일을 이용하여 상기 입력 데이터에서 특정 데이터를 선별하는 단계; 및 상기 입력 데이터 또는 상기 특정 데이터를 맵리듀스 방식으로 처리하는 단계를 포함하는 데이터 처리 방법이 제공된다.
상기 목적을 달성하기 위해 본 발명의 일실시예에 의하면, 맵리듀스(MapReduce) 방식으로 데이터를 처리하는 장치로서, 입력 데이터를 저장하는 저장부; 상기 입력 데이터에 대한 저장된 색인 파일이 존재하는지 검사하는 검사부; 상기 색인 파일이 존재하지 않는 경우, 상기 입력 데이터에 대한 색인 파일을 생성하고, 상기 색인 파일이 존재하는 경우, 상기 저장된 색인 파일을 이용하여 상기 입력 데이터에서 특정 데이터를 선별하는 색인부; 상기 입력 데이터 또는 상기 특정 데이터를 맵리듀스 방식으로 처리하는 맵리듀스 처리부; 및 상기 저장부, 상기 검사부, 상기 색인부 및 상기 맵리듀스 처리부를 제어하는 제어부를 포함하는 데이터 처리 장치가 제공된다.
본 발명의 일실시예에 의한 데이터 처리 방법 및 장치는 맵리듀스(MapReduce)를 이용한 데이터 처리 시, 색인 작업을 수행함으로써, 데이처의 처리 효율을 높일 수 있다.
본 발명의 일실시예에 의하면, 맵리듀스(MapReduce)를 이용한 데이터 처리 과정 중에 색인을 생성하므로, 별도의 추가 작업이 필요하지 않아 비용 및 시간이 절감되는 효과가 있다.
본 발명의 일실시예에 의하면, 이미 생성된 색인을 이용하여 선별적으로 추출된 데이터에 대해서만 맵리듀스 처리 작업을 수행하기에 작업 처리 시간을 단축시킬 수 있다.
본 발명의 일실시예에 의하면, 입력 데이터와 별개의 색인 파일을 생성함으로써, 원본 입력 데이터가 유지될 수 있다.
도 1은 본 발명의 일실시예와 관련된 데이터 분산 처리 시스템의 블록도이다.
도 2는 본 발명의 일실시예와 관련된 데이터 처리 장치의 블록도이다.
도 3은 본 발명의 일실시예와 관련된 데이터 처리 방법을 나타내는 흐름도이다.
도 4는 본 발명의 일실시예와 관련된 데이터 처리 방법에서 색인을 생성하는 방법을 설명하기 위한 도면이다.
도 5 내지 도 8은 본 발명의 일실시예와 관련된 데이터 처리 방법과 기존의 데이터 처리 방법의 성능을 비교한 도면이다.
이하, 첨부된 도면을 참조하면서 본 발명의 일실시예와 관련된 데이터 처리 방법 및 장치에 대해 설명하기로 한다.
도 1은 본 발명의 일실시예와 관련된 데이터 분산 처리 시스템의 블록도이다.
도시된 바와 같이, 데이터 분산 처리 시스템은 작업 관리 장치(100) 및 복수의 데이터 처리 장치(200)를 포함할 수 있다. 상기 데이터 분산 처리 시스템은 상기 복수의 데이터 처리 장치(200)를 통해 데이터를 병렬 처리할 수 있다.
작업 관리 장치(100)는 분석 대상 데이터(예: MapReduce Job)를 수신하고, 상기 수신된 분산 대상 데이터가 분산 처리될 수 있도록 관리한다. 예를 들어, 작업 관리 장치(100)는 각 데이터 처리 장치(200)의 작업 상태를 고려하여 상기 분석 대상 데이터를 데이터 처리 장치(200)에 전달할 수 있다. 그리고 작업 관리 장치(100)는 각 데이터 처리 장치(200)로부터 작업 상태 정보를 수신할 수 있다.
데이터 처리 장치(200)는 작업 관리 장치(100)로부터 전달받은 입력 데이터를 맵리듀스(MapReduce) 방식으로 데이터를 처리할 수 있다. 상기 맵리듀스 방식의 데이터 처리는 대용량의 데이터 처리에 유용하게 이용될 수 있다.
이하에서는 데이터 처리 장치(200)가 데이터를 처리하는 방법에 대해 상세히 설명하도록 하겠다.
도 2는 본 발명의 일실시예와 관련된 데이터 처리 장치의 블록도이다.
도시된 바와 같이, 데이터 처리 장치(200)는 저장부(210), 검사부(220), 색인부(230), 맵리듀스 처리부(240), 및 제어부(250)를 포함할 수 있다. 그러나, 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소로 데이터 처리 장치(200)가 구성될 수도 있고, 그보다 적은 구성요소로도 데이터 처리 장치(200)가 구성될 수 있다.
저장부(210)는 작업 관리 장치(100)로부터 전달된 입력 데이터를 저장할 수 있다. 상기 입력 데이터는 병렬 처리를 위해 복수의 블록으로 분할될 수 있다. 상기 저장부(210)에는 상기 입력 데이터에 대한 색인 파일(후술됨)이 함께 저장될 수 있다.
검사부(220)는 상기 입력 데이터에 대한 색인 파일이 존재하는 여부를 검사할 수 있다. 입력 데이터에 대한 색인 파일이라 함은 상기 입력 데이터의 특정 레코드에 생성된 색인을 포함하고 있는 파일로, 상기 입력 데이터와는 별개로 존재할 수 있다. 본 명세서에서 색인이 생성된 레코드를 편의상 '색인 대상 레코드'라 한다.
색인부(230)는 상기 검사부(220)의 색인 파일 검사 결과에 따라 색인 작업을 수행할 수 있다. 본 명세서에서 색인 작업은 색인을 이용하여 작업 및 색인을 생성하는 작업을 포함할 수 있다.
색인 파일이 존재하는 경우, 상기 색인부(230)는 상기 색인 파일을 이용하여 상기 입력 데이터에서 색인에 대한 검색 조건을 만족하는 특정 데이터만을 선별할 수 있다. 예를 들어, 색인 대상 레코드만을 선별할 수 있다.
한편, 색인 파일 존재하지 않는 경우, 상기 색인부(230)는 상기 입력 데이터에 대한 색일 파일을 생성할 수 있다.
맵리듀스 처리부(240)는 전달된 처리 대상 데이터를 맵리듀스 방식으로 처리할 수 있다. 상기 처리 대상 데이터는 상기 검사부(220)의 색인 파일 검사 결과에 따라 달라질 수 있다.
예를 들어, 색인 파일을 이용하여 상기 입력 데이터에서 색인에 대한 검색 조건을 만족하는 특정 데이터만을 선별한 경우는 상기 특정 데이터가 처리 대상 데이터가 될 수 있다. 상기 특정 데이터만을 처리 대상 데이터로 함으로써, 데이터를 선별적으로 처리할 수 있는 장점이 있다. 또한, 색인 파일이 존재하지 않는 경우, 색인 파일 생성과정에서 입력 데이터에 존재하는 레코드를 한 번씩은 읽어야 하기 때문에 상기 입력 데이터가 처리 대상 데이터가 될 수 있다.
맵 처리부(241)는 맵 함수를 이용하여 처리 대상 데이터의 중간 키(key), 밸류(value) 데이터를 생성할 수 있다.
리듀스 처리부(242)는 상기 중간 키(key), 밸류(value) 데이터에서 리듀스 함수를 이용하여 최종 키(key), 밸류(value) 데이터를 획득할 수 있다.
제어부(250)는 저장부(210), 검사부(220), 색인부(230), 및 맵리듀스 처리부(240)에서 수행하는 기능을 유기적으로 제어할 수 있다.
이하에서, 상기 데이터 처리 장치(200)에서 데이터를 처리하는 방법에 대해 구체적으로 설명하도록 하겠다.
도 3은 본 발명의 일실시예와 관련된 데이터 처리 방법을 나타내는 흐름도이다.
먼저, 저장부(210)는 작업 관리 장치(100)로부터 전달된 입력 데이터를 저장할 수 있다(S310).
검사부(220)는 상기 입력 데이터에 대한 색인 파일이 있는지 여부를 검사한다(S320).
상기 색인 파일이 존재하지 않는 경우, 색인부(230)는 입력 데이터를 스캔하여 입력 데이터의 특정 레코드(record)에 색인을 생성할 수 있다(S330, S340). 본 명세서에서 레코드라 함은 정보 처리를 위하여 하나의 단위로 취급되는 데이터나 워드의 모임을 의미한다.
상기 생성된 색인은 하위 노드 및 상위 노드를 포함하는 트리 구조로 구성될 수 있다. 상기 트리 구조는 하위 노드가 모두 생성된 후에 상위 노드가 생성되는 과정으로 생성될 수 있다.
도 4는 트리 구조를 생성하는 과정을 설명하기 위한 도면이다. 도 4는 벌크 로딩이 적용된 B+ 트리 구조를 생성하는 과정의 예를 나타낸 것이다.
도시된 바와 같이, 단말 노드가 모두 생성된 상태에서 상위 노드가 생성된다. 그리고 상위 노드가 생성된 후에 리프 노드가 생성된다.
상기와 같은 트리 생성 기법이 가능한 이유는 색인 파일 존재하지 않는 경우, 입력 데이터에 색인을 생성하기 위해서는 입력 데이터를 처음부터 끝까지 읽어야 하는데, 이 때 모든 데이터를 읽으면서 단말 노드를 한 번에 구성할 수 있기 때문이다. 상기와 같은 트리 생성 기법 때문에 비용이 절감될 수 있다.
상기 단말 노드는 <key, offset>으로 구성될 수 있다. key는 색인을 형성한 컬럼의 레코드 값이고, offset은 파일 내에 해당 레코드의 시작 위치를 의미한다.
페이지 랭크(PageRank)를 예(표 1)를 들어 설명하면 다음과 같다.
pageRank URL Duration
28 a.html 29
35 b.html 10
29 c.html 21
35 d.html 39
표 1에서 파일 시작 위치(offset)를 0으로 하면 <28, 0>, <35, 10>, <29, 20>, <35, 30>이 된다. 여기서 각각의 offset, 0, 10, 20, 30은 4개의 레코드가 파일 내에서 어디서부터 시작하는지를 나타내는 수라고 할 수 있다.
일반적인 B+ 트리 구조는 아래의 단말 노드를 하나씩 추가해가면서 전체 트리 구조를 형성해 나가는 방식으로 노드 추가가 일어나기 때문에, 상대적으로 벌크 로딩이 적용된 B+ 트리 구조가 일반적인 B+ 트리 구조보다 비용이 절감될 수 있다.
상기와 같은 방식으로 색인이 생성인 완료된 경우, 색인부(230)는 상기 생성된 색인을 포함하는 색인 파일을 생성할 수 있다(S350).
상기 생성된 색인 파일은 바이너리(binary) 파일 형식으로 생성될 수 있다. 색인 파일을 바이너리 파일로 생성할 경우, 색인 파일 크기의 이득을 볼 수 있다. 바이너리 파일은 데이터의 내용을 표현하기 위해 문자가 아닌 2진 비트의 수로 나타내는 것을 의미한다. 예를 들어 숫자 11111111를 바이너리 파일이 아닌 일반 텍스트 파일 형식으로 나타내려면 각각의 숫자를 문자 1byte로 나타내기 때문에 총 8byte가 필요하다. 하지만 바이너리 파일로 나타낼 경우 1111111110 = 0000 0000 1010 1001 1000 1010 1100 01102 (2진수 일 때 한자리는 1bit를 나타냅니다.) 이므로 총 32bit, 즉 4byte로도 같은 수를 나타낼 수 있다. 색인 파일에서는 위에서 <key, offset>에서 수를 나타내는 경우가 많기 때문에, 텍스트가 아닌 바이너리로 데이터를 표현할 경우 바이트 절감의 효과가 있다.
그리고 생성된 색인 파일 이름은 입력 데이터의 원본 파일 이름을 포함할 수 있다. 예를 들어 색인 파일 이름은 "입력 데이터의 원본 파일 이름_블록 시작 바이트.idx"로 나타낼 수 있다.
저장부(210)는 생성된 색인은 입력 데이터가 위치하는 데이터 노드에 저장할 수 있다.
색인 파일 생성 작업이 완료되면, 제어부(250)는 입력 데이터를 처리 대상 데이터로 하여 맵리듀스 처리부(240)로 전달할 수 있다(S360). 그리고 맵리듀스 처리부(240)는 상기 처리 대상 데이터를 맵리듀스 방식으로 처리할 수 있다(S370).
상기한 바와 같이,본 발명의 일실시예에 의하면, 맵리듀스(MapReduce)를 이용한 데이터 처리 과정 중에 색인을 생성하므로, 별도의 추가 작업이 필요하지 않아 비용 및 시간이 절감되는 효과가 있다. 또한, 입력 데이터와 별개의 색인 파일을 생성함으로써, 원본 입력 데이터가 유지될 수 있다.
한편, 색인 파일이 존재하는 경우, 색인부(230)는 색인 파일을 로딩할 수 있다(S380). 그리고 색인부(230)는 색인 조건을 검색하여 조건에 해당하는 특정 데이터만을 선별할 수 있다(S390, S400).
페이지 랭크(PageRank)를 예로 들면, 색인부(230)는 페이지 랭크가 35인 레코드만 선별하여 읽을 수 있다.
데이터 선별 작업이 완료되면, 제어부(250)는 선별된 특정 데이터만을 처리 대상 데이터로 하여 맵리듀스 처리부(240)로 전달할 수 있다(S360). 그리고 맵리듀스 처리부(240)는 상기 처리 대상 데이터를 맵리듀스 방식으로 처리할 수 있다(S370). 상기한 바와 같이, 이미 생성된 색인을 이용하여 선별적으로 추출된 데이터에 대해서만 맵리듀스 처리 작업을 수행하면, 작업 처리 시간을 단축시킬 수 있다.
도 5 내지 도 6은 입력 데이터가 텍스트 파일인 경우, 도 3에 도시된 방식으로 데이터를 처리하는 방법과 다른 데이터 처리 방법과의 성능을 비교한 도면이다. 다른 데이터 처리 방법은 하둡(Hadoop)을 이용한 데이터 처리 방식으로 실험을 하였다. 하둡(Hadoop)은 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 자유 자바 소프트웨어 프레임워크이다.
도 5는 색인 파일이 존재하지 않는 경우의 성능을 비교한 그래프이고, 도 6은 이미 색인 파일 생성된 경우의 성능을 비교한 그래프이다.
도 5 내지 도 6에서도 확인할 수 있듯이, 도 3에 도시된 방식으로 데이터를 처리할 경우, 색인을 생성하여 데이터를 처리하는 작업에서는 다른 데이터 처리방식(Hadoop)보다 다소 오버헤드가 있지만, 색인 파일이 생성된 이후의 작업부터는 처리시간이 현저히 줄어드는 것을 확인할 수 있다.
도 7 내지 도 8은 입력 데이터가 시퀀스 파일(SequenceFile)인 경우, 도 3에 도시된 방식으로 데이터를 처리하는 방법과 다른 데이터 처리 방법과의 성능을 비교한 도면이다.
시퀀스 파일(SequenceFile)은 맵리듀스에서 사용하는 파일 포맷의 한 종류로써, 파일의 데이터 레코드들이 key, value의 쌍으로 이루어 있으며, key 값에 의해 정렬된 순서로 존재하는 바이너리 형식의 파일이다.
도 7 내지 도 8을 통해 확인할 수 있듯이, 입력 데이터가 시퀀스 파일(SequenceFile)인 경우가 입력 데이터가 시퀀스 파일인 경우보다 도 3에 도시된 방식으로 데이터 처리 방법과 다른 데이터 처리 방법의 성능의 차이가 더 많이 나는 것을 확인할 수 있다.
상술한 데이터 처리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 판독 가능한 기록매체에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
한편, 이러한 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다.
또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기와 같이 설명된 데이터 처리 방법 및 장치는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 작업 관리 장치
200: 데이터 처리 장치
210: 저장부
220: 검사부
230: 색인부
240: 맵처리부
250: 제어부

Claims (10)

  1. 맵리듀스(MapReduce) 방식으로 데이터를 처리하는 방법으로서,
    입력 데이터를 저장하는 단계;
    상기 입력 데이터에 대한 저장된 색인 파일이 존재하는지 검사하는 단계;
    상기 색인 파일이 존재하지 않는 경우, 상기 입력 데이터에 대한 색인 파일을 생성하는 단계;
    상기 색인 파일이 존재하는 경우, 상기 저장된 색인 파일을 이용하여 상기 입력 데이터에서 색인에 대한 검색 조건을 만족하는 특정 데이터만을 선별하는 단계; 및
    상기 입력 데이터 또는 상기 특정 데이터를 맵리듀스 방식으로 처리하는 단계를 포함하되,
    상기 색인 파일 생성 단계는
    상기 입력 데이터를 스캔하여 색인을 생성하는 단계; 및
    상기 생성된 색인을 포함하는 색인 파일을 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  2. 삭제
  3. 제 1 항에 있어서, 상기 생성된 색인은
    상위 노드 및 하위 노드를 포함하는 트리 구조로 형성된 것을 특징으로 하는 데이터 처리 방법.
  4. 제 1 항에 있어서, 상기 색인 생성 단계는
    색인 대상 레코드 및 상기 레코드의 위치 정보를 구성요소로 포함하는 하위 노드를 형성하는 단계;
    상기 하위 노드가 형성된 상태에서 상위 노드를 생성하는 단계; 및
    상기 하위 노드 및 상기 상위 노드를 포함하는 트리 구조를 형성하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  5. 제 1 항에 있어서, 상기 생성된 색인 파일은
    바이너리(binary) 파일인 것을 특징으로 하는 데이터 처리 방법.
  6. 맵리듀스(MapReduce) 방식으로 데이터를 처리하는 장치로서,
    입력 데이터를 저장하는 데이터 저장부;
    상기 입력 데이터에 대한 저장된 색인 파일이 존재하는지 검사하는 검사부;
    상기 색인 파일이 존재하지 않는 경우, 상기 입력 데이터를 스캔하여 색인을 생성하고, 상기 생성된 색인을 포함하는 색인 파일을 생성하고, 상기 색인 파일이 존재하는 경우, 상기 저장된 색인 파일을 이용하여 상기 입력 데이터에서 색인에 대한 검색 조건을 만족하는 특정 데이터만을 선별하는 색인부;
    상기 입력 데이터 또는 상기 특정 데이터를 맵리듀스 방식으로 처리하는 맵리듀스 처리부; 및
    상기 저장부, 상기 검사부, 상기 색인부 및 상기 맵리듀스 처리부를 제어하는 제어부를 포함하는 것을 특징으로 하는 데이터 처리 장치.
  7. 삭제
  8. 제 6 항에 있어서, 상기 생성된 색인은
    상위 노드 및 하위 노드를 포함하는 트리 구조로 형성된 것을 특징으로 하는 데이터 처리 장치.
  9. 제 6 항에 있어서, 상기 색인부는
    색인 대상 레코드 및 상기 레코드의 위치 정보를 구성요소로 포함하는 하위 노드를 형성하고, 상기 하위 노드가 형성된 상태에서 상위 노드를 생성하여 상기 하위 노드 및 상기 상위 노드를 포함하는 트리 구조를 형성하는 것을 특징으로 하는 데이터 처리 장치.
  10. 제 6 항에 있어서, 상기 생성된 색인 파일은
    바이너리(binary) 파일인 것을 특징으로 하는 데이터 처리 장치.
KR1020120024921A 2012-03-12 2012-03-12 데이터 처리 방법 및 장치 KR101331383B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120024921A KR101331383B1 (ko) 2012-03-12 2012-03-12 데이터 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120024921A KR101331383B1 (ko) 2012-03-12 2012-03-12 데이터 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130103912A KR20130103912A (ko) 2013-09-25
KR101331383B1 true KR101331383B1 (ko) 2013-11-20

Family

ID=49452848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120024921A KR101331383B1 (ko) 2012-03-12 2012-03-12 데이터 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101331383B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160064569A (ko) 2014-11-28 2016-06-08 삼육대학교산학협력단 맵리듀스를 이용한 sql 질의처리방법
KR20200030177A (ko) 2018-09-12 2020-03-20 고려대학교 산학협력단 인-메모리 기반의 다차원 데이터 관리 장치 및 방법, 이를 수행하기 위한 기록 매체

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101411563B1 (ko) * 2013-11-01 2014-06-25 한국과학기술정보연구원 리소스 지역성에 기초한 분산 처리 시스템 및 분산 처리 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020067160A (ko) * 2001-02-15 2002-08-22 전석진 문서 색인 시스템 및 그 방법
KR20100031197A (ko) * 2008-09-12 2010-03-22 주식회사 엔씨소프트 화이트리스트를 이용한 검색엔진 및 검색방법
KR20110080465A (ko) * 2010-01-06 2011-07-13 충남대학교산학협력단 병렬 연산에 의한 플로우 데이터 분석 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020067160A (ko) * 2001-02-15 2002-08-22 전석진 문서 색인 시스템 및 그 방법
KR20100031197A (ko) * 2008-09-12 2010-03-22 주식회사 엔씨소프트 화이트리스트를 이용한 검색엔진 및 검색방법
KR20110080465A (ko) * 2010-01-06 2011-07-13 충남대학교산학협력단 병렬 연산에 의한 플로우 데이터 분석 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160064569A (ko) 2014-11-28 2016-06-08 삼육대학교산학협력단 맵리듀스를 이용한 sql 질의처리방법
KR20200030177A (ko) 2018-09-12 2020-03-20 고려대학교 산학협력단 인-메모리 기반의 다차원 데이터 관리 장치 및 방법, 이를 수행하기 위한 기록 매체

Also Published As

Publication number Publication date
KR20130103912A (ko) 2013-09-25

Similar Documents

Publication Publication Date Title
Mackey et al. Improving metadata management for small files in HDFS
US8677366B2 (en) Systems and methods for processing hierarchical data in a map-reduce framework
CN105550268A (zh) 大数据流程建模分析引擎
CN107870728A (zh) 用于移动数据的方法和设备
DE202012013469U1 (de) Datenverarbeitungsdienst
CN111324577B (zh) 一种Yml文件读写的方法及装置
CN105205154B (zh) 数据迁移方法以及装置
CN105493095A (zh) 用于样本提交的自适应和递归过滤
CN106909595B (zh) 一种数据迁移方法及装置
CN104699723A (zh) 数据交换适配器、异构系统之间数据同步系统和方法
CN103559184A (zh) 表单页面的显示方法和装置
Jiang et al. Parallel K-Medoids clustering algorithm based on Hadoop
CN103647850A (zh) 一种分布式版本控制系统的数据处理方法、设备及系统
CN103914483A (zh) 文件存储方法、装置及文件读取方法、装置
CN105630524A (zh) 网页文本解析方法、装置和移动终端
KR101331383B1 (ko) 데이터 처리 방법 및 장치
CN105264488A (zh) 使用数组对来合并有序列表
US20190391847A1 (en) Resource Scheduling Method and Related Apparatus
CN107766503A (zh) 基于redis的数据快速查询方法及装置
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN104699815A (zh) 数据处理方法和系统
WO2015001596A1 (ja) 系列データ並列分析基盤およびその並列分散処理方法
CN112667593A (zh) 一种ETL流程执行hbase快速装载的方法与装置
Prasad et al. Improving the performance of processing for small files in Hadoop: A case study of weather data analytics
CN110795920B (zh) 一种文档生成方法及设备

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: 20160928

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee