KR20150030332A - 데이터 분산 처리 시스템 및 이의 동작 방법 - Google Patents

데이터 분산 처리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20150030332A
KR20150030332A KR20130109421A KR20130109421A KR20150030332A KR 20150030332 A KR20150030332 A KR 20150030332A KR 20130109421 A KR20130109421 A KR 20130109421A KR 20130109421 A KR20130109421 A KR 20130109421A KR 20150030332 A KR20150030332 A KR 20150030332A
Authority
KR
South Korea
Prior art keywords
data
slave
data processing
server
slave servers
Prior art date
Application number
KR20130109421A
Other languages
English (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 KR20130109421A priority Critical patent/KR20150030332A/ko
Priority to US14/477,234 priority patent/US20150074216A1/en
Publication of KR20150030332A publication Critical patent/KR20150030332A/ko

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5025Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

적어도 하나의 마스터 서버와 적어도 제1 내지 제3 슬레이브 서버들을 구비하는 데이터 분산 처리 시스템의 동작 방법에서는 입력 데이터 블록들 각각에 대한, 중앙 처리 장치 상에서 구동되는 맵리듀스 태스크의 최초 수행시에 상기 제1 내지 제3 슬레이브 서버들 각각의 제1 내지 제3 데이터 처리 능력들을 산출하고, 상기 제1 내지 제3 슬레이브 서버들이 상기 산출된 제1 내지 제3 데이터 처리 능력들을 상기 마스터 서버에 전송하고, 상기 데이터 처리 시스템의 제1 유휴 시간에 상기 산출된 데이터 처리 능력들에 기초하여 상기 마스터 서버가 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배한다.

Description

데이터 분산 처리 시스템 및 이의 동작 방법{Distributed and parallel processing system on data and method of operating the same}
본 발명은 데이터 처리 분야에 관한 것으로, 보다 상세하게는 데이터 분산 처리 시스템 및 이의 동작 방법에 관한 것이다.
인터넷 서비스가 공급자 중심에서 사용자 중심으로 패러다임이 이동함에 따라 UCC, 개인화 서비스와 같은 인터넷 서비스 시장이 급속도로 증가하고 있다. 이러한 패러다임의 변화로 사용자에 의해서 생성되고 인터넷 서비스를 위해 수집, 처리 및 관리해야 하는 데이터의 양이 빠르게 증가하고 있다. 이와 같은 대용량 데이터의 수집, 처리 및 관리를 위하여, 현재 많은 인터넷 포탈에서 저비용으로 대규모 클러스터를 구축하여 대용량 데이터 분산 관리 및 작업 분산 병렬 처리하는 기술에 대하여 많은 연구를 하고 있으며, 작업 분산 병렬 처리 기술 중에서 미국 Google 사의 MapReduce 모델이 대표적인 작업 분산 병렬 처리 방법 중에 하나로 주목을 받고 있다. MapReduce 모델은 Google 사에서 저비용 대규모 노드로 구성된 클러스터 상에 저장된 대용량 데이터에 대한 분산 병렬 연산을 지원하기 위하여 제안한 분산 병렬 처리 프로그래밍 모델이다. MapReduce 모델 기반의 분산 병렬 처리 시스템으로는, Google의 MapReduce 시스템, Apache Software Foundation의 Hadoop MapReduce 시스템과 같은 분산 병렬 처리 시스템이 있다.
이에 따라, 본 발명의 일 목적은 성능을 높일 수 있는 데이터 분산 처리 시스템의 동작 방법을 제공하는데 있다.
본 발명의 일 목적은 성능을 높일 수 있는 데이터 분산 처리 시스템을 제공하는데 있다.
상기 일 목적을 달성하기 위한 본 발명의 일 실시예에 따른 적어도 하나의 마스터 서버와 적어도 제1 내지 제3 슬레이브 서버들을 구비하는 데이터 분산 처리 시스템의 동작 방법에서는 입력 데이터 블록들 각각에 대한, 중앙 처리 장치 상에서 구동되는 맵리듀스 태스크의 최초 수행시에 상기 제1 내지 제3 슬레이브 서버들 각각의 제1 내지 제3 데이터 처리 능력들을 산출하고, 상기 제1 내지 제3 슬레이브 서버들이 상기 산출된 제1 내지 제3 데이터 처리 능력들을 상기 마스터 서버에 전송하고, 상기 데이터 처리 시스템의 제1 유휴 시간에 상기 산출된 데이터 처리 능력들에 기초하여 상기 마스터 서버가 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배한다.
예시적인 실시예에 있어서, 상기 태스크들을 재분배하기 위하여 상기 마스터 서버가 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버에 저장된 데이터의 적어도 일부를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버로 이동시킬 수 있다.
상기 슬레이브 서버에 저장된 데이터는 상기 슬레이브 서버의 로컬 디스크에 저장된 처리되지 않은 데이터일 수 있다.
예시적인 실시예에 있어서, 상기 마스터 서버가 사용자 데이터를 상기 입력 데이터 블록들로 분할하여 상기 제1 내지 제3 슬레이브 서버들에 할당할 수 있다.
예시적인 실시예에 있어서, 상기 제1 내지 제3 슬레이브 서버들 각각은 각각에 구비된 제1 내지 제3 성능 메트릭 측정 데몬을 이용하여 상기 제1 내지 제3 처리 능력들을 산출할 수 있다.
예시적인 실시예에 있어서, 상기 마스터 서버는 성능 메트릭 수집기를 이용하여 상기 산출된 제1 내지 제3 데이터 처리 능력들을 수신할 수 있다.
상기 마스터 서버는 상기 수신된 제1 내지 제3 데이터 처리 능력들에 기초하고 데이터 분배 로직을 이용하여 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배할 수 있다.
예시적인 실시예에 있어서, 상기 제1 내지 제3 데이터 처리 능력들은 동일한 크기의 데이터 각각에 대한 상기 제1 내지 제3 슬레이브 서버들 각각의 데이터 처리 시간에 의하여 결정될 수 있다.
예시적인 실시예에 있어서, 상기 제1 내지 제3 슬레이버 서버들은 서로 다른 데이터 처리 능력을 가지는 이종의 서버들일 수 있다.
예시적인 실시예에 있어서, 상기 제1 유휴 시간은 상기 마스터 서버에 사용자 데이터가 더 이상 존재하지 않는 구간 또는 상기 제1 내지 제3 슬레이브 서버들의 중앙 처리 장치들의 이용율이 기준 값 이하인 구간에 상응할 수 있다.
예시적인 실시예에 있어서, 상기 데이터 처리 시스템은 Hadoop 프레임워크를 사용하여 상기 사용자 데이터를 처리할 수 있다.
예시적인 실시예에 있어서, 상기 데이터 처리 시스템에 제4 슬레이브 서버가 추가되는 경우, 상기 데이터 처리 시스템의 제2 유휴 시간에 상기 제4 슬레이브 서버의 제4 데이터 처리 능력에 더 기초하여 상기 마스터 서버가 상기 제1 내지 제4 슬레이브 서버들의 태스크들을 재분배할 수 있다.
상기 일 목적을 달성하기 위한 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템은 마스터 서버와 상기 마스터 서버와 네트워크를 통하여 연결되는 적어도 제1 내지 제3 슬레이브 서버들을 포함한다. 상기 제1 내지 제3 슬레이브 서버들 각각은 중앙 처리 장치에서 구동되는 입력 데이터 블록에 대한 맵리듀스 태스크 최초 수행시에 제1 내지 제3 데이터 처리 능력들을 산출하여 상기 마스터 서버에 보고하는 성능 메트릭 측정 데몬을 포함하고, 상기 마스터 서버는 상기 제1 내지 제3 데이터 처리 능력들에 기초하여 유휴 시간에 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배한다.
예시적인 실시예에 있어서, 상기 마스터 서버는 상기 제1 내지 제3 데이터 처리 능력들을 수신하는 성능 메트릭 수집기, 및 상기 성능 메트릭 수집기에 연결되고, 상기 제1 내지 제3 데이터 처리 능력들에 기초하여 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배하는 데이터 분배 로직을 포함할 수 있다.
예시적인 실시예에 있어서, 상기 데이터 분배 로직은 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버에 저장된 데이터를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버로 이동시켜 상기 태스크들을 재분배하고, 상기 제1 내지 제3 슬레이브 서버들 각각은 상기 입력 데이터 블록을 저장하는 로컬 디스크를 더 포함하고, 상기 마스터 서버는 사용자 데이터를 복수의 입력 데이터 블록들로 분할하여 상기 제1 내지 제3 슬레이브 서버들에 분배하는 작업 관리기를 더 포함할 수 있다.
본 발명에 실시예들에 따르면, 서로 다른 데이터 처리 능력을 가지는 슬레이브 서버들을 구비하는 데이터 분산 처리 시스템에서 사용자 데이터가 분할된 데이트 블록에 대한 맵리듀스 태스크의 최초 수행시에 슬레이브 서버들 각각의 데이터 처리 능력을 산출하고, 산출된 데이터 처리 능력에 따라 데이터 분산 처리 시스템의 유휴 시간에 슬레이브 서버들 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 슬레이브 서버들 사이에서 재분배함으로써 데이터 처리 시간을 감축시켜 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템을 나타내는 블록도이다.
도 2는 도 1의 데이터 분산 처리 시스템에서 맵리듀스 태스크가 수행되는 과정을 나타낸다.
도 3은 본 발명의 일 실시예에 따른 도 1의 사용자 인터페이스의 구성을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 도 1의 제1 내지 제3 슬레이브 서버들 중 하나의 서버의 구성을 나타낸다.
도 5는 도 1의 성능 메트릭 수집기에 포함될 수 있는 레지스터를 나타낸다.
도 6은 제1 내지 제3 데이터 처리 능력들을 설명하기 위한 도면이다.
도 7은 도 1의 데이터 분산 처리 시스템(10)의 유휴 시간을 설명하기 위한 도면이다.
도 8은 도 1의 데이터 분산 처리 시스템에서 데이터 처리 능력들이 산출된 후의 동작을 나타내는 도면이다.
도 9는 도 1의 데이터 분산 처리 시스템에서 데이터가 재분배된 후의 제1 내지 제3 슬레이브 서버들의 데이터 처리 시간을 나타낸다.
도 10은 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템의 동작 방법을 나타낸다.
도 11은 도 10의 재분배하는 단계를 구체적으로 나타내는 흐름도이다.
도 12는 본 발명의 실시예에 따른 데이터 분산 처리 시스템에 슬레이브 서버가 추가되는 경우를 나타내는 도면이다.
도 13은 본 발명의 다른 실시예에 따른 데이터 분산 처리 시스템의 동작 방법을 나타내는 타이밍도이다.
도 14는 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템의 동작 방법이 적용될 수 있는 하둡 클러스터의 물리적 분산 구조를 나타낸다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템(10)은 사용자 인터페이스(100), 적어도 하나의 마스터 서버(200) 및 적어도 제1 내지 제3 슬레이브 서버들(310, 330, 350)을 포함하여 구성될 수 있다. 마스터 서버(200)는 네임 노드로 호칭될 수 있고, 슬레이브 서버는 데이터 노드로 호칭될 수 있다.
도 1의 데이터 분산 처리 시스템(10)의 맵리듀스 프레임워크를 사용하여 사용자 작업(Jop)을 정의하는데, Map 및 Reduce 함수는 MapReduce 라이브러리로 제공되는 사용자 인터페이스를 이용하여 구현할 수 있다.
사용자와 이와 같은 Map 함수, Reduce 함수를 이용하여 분산 프로그램, 데이터 분산, 스케쥴링, 자동 오류 복구등의 분산 병렬 처리에 대한 세부적인 내용을 고려하지 않고도 쉽게 작업을 정의하고 정의된 작업을 수행할 수 있다.
사용자 인터페이스(100)는 사용자 입출력을 제공하며, 사용자 인터페이스(100)에 입력된 사용자 작업은 사용자 데이터(IDTA)로서 마스터 서버(200)에 제공될 수 있다.
도 3은 본 발명의 일 실시예에 따른 도 1의 사용자 인터페이스의 구성을 나타낸다.
먼저 도 3을 참조하면, 사용자 인터페이스(100)는 응용 프로그램(110), 병렬 처리 라이브러리(120) 및 웹 브라우저(130)를 포함할 수 있다. 사용자 인터페이스(100)는 응용 프로그램(110) 및 웹 브라우저(130)를 통하여 사용자 입출력을 제공하면, 사용자는 응용 프로그램(110)을 통해 사용자 작업(140)을 병렬 처리 라이브러리(120)에 존재하는 Map 함수 또는 Reduce 함수를 적용하여 원하는 작업을 요청한다. 여기서 Map 함수는 Map 태스크 수행에 사용되고, Reduce 함수는 Reduce 태스크 수행에 사용될 수 있다. 사용자 인터페이스(100)는 사용자 작업(140)에 Map 함수 또는 Reduce 함수를 적용하여 사용자 데이터(IDTA)로서 마스터 서버(200)에 제공할 수 있다.
다시 도 1을 참조하면, 마스터 서버(200)는 네트워크(250)를 통하여 제1 내지 제3 슬레이브 서버들(310, 330, 350)에 연결되고, 마스터 서버(200)는 작업 관리기(210), 관리 도구(220), 성능 메트릭 수집기(230) 및 데이터 분배 로직(240)을 포함하여 구성될 수 있다.
작업 관리기(210)는 사용자 데이터(IDTA)를 동일한 크기를 가지는 복수의 데이터 블록들(SP1L11, SPL21, SPL31)로 분할하고, 분할된 데이터 블록들(SPL11, SPL21, SPL31)을 각각 제1 내지 제3 슬레이브 서버들(310, 330, 350)에 할당한다. 관리 도구(220)는 사용자가 가시가능하며 사용자가 요청한 작업의 수행 상황 및 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 상태 정보를 제공할 수 있다.
여기서, 제1 내지 제3 슬레이브 서버들(310, 330, 350)은 서로 다른 데이터 처리 능력을 가지는 동종의 서버들이거나 서로 다른 데이터 처리 능력을 가지는 이종의 서버들일 수 있다.
성능 메트릭 수집기(230)는 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각으로부터 제1 내지 제3 데이터 처리 능력들(DPC1, DPC2, DPC3)을 수집하고 수집된 제1 내지 제3 데이터 처리 능력들(DPC1, DPC2, DPC3)을 저장할 수 있다.
데이터 분배 로직(240)은 성능 메트릭 수집기(230)에 연결되고, 저장된 제1 내지 제3 데이터 처리 능력들(DPC1, DPC2, DPC3)에 기초하여 데이터 분산 처리 시스템(10)의 유휴 시간에 제1 내지 제3 슬레이브 서버들(310, 330, 350) 사이의 태스크들을 재분배할 수 있다. 예를 들어, 데이터 분배 로직(240)은 데이터 분산 처리 시스템(10)의 유휴 시간에 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)에 기초하여 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버에 저장된 데이터의 적어도 일부를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버에 이동시킬 수 있다.
제1 슬레이브 서버(310)는 성능 메트릭 측정 데몬(311) 및 중앙 처리 장치(321)를 포함할 수 있고, 중앙 처리 장치(321)에서 Map 함수 및 Reduce 함수를 구동시켜 제1 데이터 블록(SPL11)에 대한 맵리듀스 태스크를 수행할 수 있고, 성능 메트릭 측정 데몬(311)은 중앙 처리 장치(321)가 제1 데이터 블록(SPL11)을 처리하는데 걸리는 시간을 측정하여 제1 데이터 처리 능력(DPC1)을 산출할 수 있다. 제2 슬레이브 서버(330)는 성능 메트릭 측정 데몬(331) 및 중앙 처리 장치(341)를 포함할 수 있고, 중앙 처리 장치(341)에서 Map 함수 및 Reduce 함수를 구동시켜 제2 데이터 블록(SPL21)에 대한 맵리듀스 태스크를 수행할 수 있고, 성능 메트릭 측정 데몬(331)은 중앙 처리 장치(341)가 제2 데이터 블록(SPL21)을 처리하는데 걸리는 시간을 측정하여 제2 데이터 처리 능력(DPC2)을 산출할 수 있다. 제3 슬레이브 서버(350)는 성능 메트릭 측정 데몬(351) 및 중앙 처리 장치(361)를 포함할 수 있고, 중앙 처리 장치(361)에서 Map 함수 및 Reduce 함수를 구동시켜 제3 데이터 블록(SPL31)에 대한 맵리듀스 태스크를 수행할 수 있고, 성능 메트릭 측정 데몬(351)은 중앙 처리 장치(361)가 제3 데이터 블록(SPL31)을 처리하는데 걸리는 시간을 측정하여 제3 데이터 처리 능력(DPC3)을 산출할 수 있다.
제1 내지 제3 슬레이브 서버들(310 ,330, 350) 각각은 제1 내지 제3 데이터 블록들(SPL11, SPL21, SPL31)을 각각 처리하여 사용자가 원하는 결과 파일들을 생성하여 대용량 데이터 저장소(390)에 저장시킬 수 있다.
성능 메트릭 수집기(230), 데이터 분배 로직(240), 성능 메트릭 측정 데몬들(311, 331, 351)의 적어도 일부 또는 전부는 컴퓨터로 판독 가능한 매체에 저장되어 컴퓨터로 판독 가능한 프로그램 코드 및/또는 데이터를 포함하는 소프트웨어의 형태로 구현될 수 있다.
도 2는 도 1의 데이터 분산 처리 시스템에서 맵리듀스 태스크가 수행되는 과정을 나타낸다.
도 2를 참조하면, 사용자 작업(도 3의 141)에 응답하여 사용자 인터페이스(100)에서 제공되는 사용자 데이터(IDTA)는 코드와 입력 파일들을 나타낼 수 있다. 작업 관리기(210)는 사용자 데이터(IDTA)를 제1 내지 제3 데이터 블록들(SPL11, SPL21, SPL31)로 분할하여 슬레이브 노드들(310, 330, 350) 각각에 구현될 수 있는 태스크 관리기(203)에 할당한다. 태스크 관리기(203)는 맵 태스크(204)를 실행하여 제1 내지 제3 데이터 블록들(SPL11, SPL21, SPL31) 각각에 대하여 키와 값 쌍으로 이루어진 중간 결과 데이터를생성한다. 맵 태스크(204)의 수행이 완료되면, 태스크 관리기(203)는 리듀스 태스크(205)를 실행한다. 리듀스 태스크(205)는 제1 내지 제3 데이터 블록들(SPL11, SPL21, SPL31) 각각에 대한 중간 결과 데이터를 키에 따라 페치하고 리듀스 함수를 실행시켜 중복되는 키를 제거하고 키에 따라 정렬된 결과 파일들(OF1, OF2)을 하둡(Hadoop) 분산 파일 시스템(206)에 저장할 수 있다.
도 4는 본 발명의 일 실시예에 따른 도 1의 제1 내지 제3 슬레이브 서버들 중 하나의 서버의 구성을 나타낸다.
도 4에서는 도 1의 제1 내지 제3 슬레이브 서버들(310, 330, 350) 중 제1 슬레이브 서버(310)의 구성을 나타내는데, 제2 및 제3 슬레이브 서버(330, 350)의 구성도 제1 슬레이브 서버(310)의 구성과 실질적으로 동일할 수 있다.
도 4를 참조하면, 제1 슬레이브 서버(310)는 성능 메트릭 측정 데몬(311), 태스크 관리기(312), 로컬 디스크(313), 제1 내지 제3 맵 태스크 실행기들(314, 315, 316) 및 제1 및 제2 리듀스 실행기들(317, 318)을 포함하여 구성될 수 있다.
마스터 서버(200)의 작업 관리기(210)로부터 제공되는 제1 데이터 블록(SPL1)은 로컬 디스크(313)에 저장되었다가, 제1 내지 제3 맵 태스크 실행기들(314, 315, 316)에 제공된다.
태스크 관리기(312)는 제1 데이터 블록(SPL1)을 할당받아 맵리듀스 태스크를 실행함에 있어, 도 1의 중앙 처리 장치(321) 장치 상에서 맵 태스크를 실제로 실행하는 제1 내지 제3 맵 태스크 실행기들(314, 315, 316) 및 리듀스 태스크를 실제로 실행하는 제1 및 제2 리듀스 실행기들(317, 318)을 생성하고, 생성된 제1 내지 제3 맵 태스크 실행기들(314, 315, 316) 및 제1 및 제2 리듀스 실행기들(317, 318)을 관리한다. 이러한 제1 내지 제3 맵 태스크 실행기들(314, 315, 316) 및 제1 및 제2 리듀스 실행기들(317, 318)은 맵 태스크 또는 리듀스 태스크가 수행되는 과정에서 메모리에 생성되며, 개별 태스크 수행이 완료되면 제거될 수 있다.
맵 태스크는 제1 데이터 블록(SPL1)으로부터 키/값 쌍을 추출하는 연산 과정이며 리듀스 태스크는 추출된 키/값 쌍 중에 중복되는 키를 제거하고, 비즈니스 로직을 사용하여 원하는 최종 키/값 쌍(결과 데이터 파일)을 산출하는 연산 과정이다.
즉 1 내지 제3 맵 태스크 실행기들(314, 315, 316)은 제1 데이터 블록(SPL1)의 파티션들로부터 키/값 쌍을 추출하여 각각 제1 내지 제3 중간 데이터들(IMR1, IMR2, IMR3)로서 로컬 디스크(313)에 저장한다. 제1 및 제2 리듀스 태스크 실행기들(317, 318)은 각각 제1 내지 제3 중간 데이터들(IMR1, IMR2, IMR3)의 키/값 쌍 중에 중복되는 키를 제거하고, 결과 데이터들(RDT11, RDT12)을 생성할 수 있다.
성능 메트릭 측정 데몬(311)은 로컬 디스크(313)에 저장된 제1 데이터 블록(SPL11)이 제1 내지 제3 맵 태스크 실행기들(314, 315, 316)에 제공되는 순간부터 제1 및 제2 리듀스 태스크 실행기들(317, 318)이 결과 데이터들(RDT11, RDT12)을 출력하는 순간까지 동안의 제1 데이터 처리 시간을 산출할 수 있다. 성능 메트릭 측정 데몬(311)은 산출된 제1 데이터 처리 시간을 기초하여 제1 데이터 처리 능력(DPC11)을 도 1의 성능 메트릭 수집기(230)에 제공할 수 있다.
이와 마찬가지로, 제2 슬레이브 서버(330)에 포함되는 성능 메트릭 측정 데몬(331)은 자신의 로컬 디스크에 저장된 제2 데이터 블록(SPL21)이 제1 내지 제3 맵 태스크 실행기들에 제공되는 순간부터 제1 및 제2 리듀스 태스크 실행기들이 결과 데이터들을 출력하는 순간까지 동안의 제2 데이터 처리 시간을 산출할 수 있다. 성능 메트릭 측정 데몬(331)은 산출된 제2 데이터 처리 시간을 기초하여 제2 데이터 처리 능력(DPC21)을 도 1의 성능 메트릭 수집기(230)에 제공할 수 있다.
또한, 제3 슬레이브 서버(350)에 포함되는 성능 메트릭 측정 데몬(351)은 자신의 로컬 디스크에 저장된 제3 데이터 블록(SPL31)이 제1 내지 제3 맵 태스크 실행기들에 제공되는 순간부터 제1 및 제2 리듀스 태스크 실행기들이 결과 데이터들을 출력하는 순간까지 동안의 제3 데이터 처리 시간을 산출할 수 있다. 성능 메트릭 측정 데몬(351)은 산출된 제3 데이터 처리 시간을 기초하여 제3 데이터 처리 능력(DPC31)을 도 1의 성능 메트릭 수집기(230)에 제공할 수 있다.
이와 같이, 제1 내지 제3 슬레이브 서버들(310, 330, 350)에 각각 포함되는 성능 메트릭 측정 데몬들(311, 331, 333)은 제1 내지 제3 데이터 블록들(SPL1, SPL2, SPL3) 각각에 대한 맵리듀스 태스크가 최초로 수행되는 동안의 시간인 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 산출하고, 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 성능 메트릭 수집기(230)에 제공할 수 있다. 데이터 분배 로직(240)은 성능 메트릭 수집기(230)에 저장된 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)에 기초하여 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 로컬 디스크에 저장된 처리되지 않은 데이터 블록들의 적어도 일부를 슬레이브 서버들(310, 330, 350)간에 이동시킬 수 있다. 상술한 바와 같이, 제1 내지 제3 슬레이브 서버들(310, 330, 350)은 서로 다른 데이터 처리 능력을 가지는 동종의 서버이거나 이종의 서버들일 수 있다. 제1 내지 제3 슬레이브 서버들(310, 330, 350)이 서로 다른 데이터 처리 능력을 가지는 경우, 데이터 분산 처리 시스템(10)의 사용자 작업에 대한 수행 시간은 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버에 의하여 결정된다.
서로 다른 데이터 처리 능력을 가지는 복수의 슬레이브 서버들을 포함하는 데이터 분산 처리 시스템(10)에서 데이터 분배 로직(240)은 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버의 로컬 디스크에 저장된 처리되지 않은 데이터 블록의 적어도 일부를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버의 로컬 디스크에 이동시키고, 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버가 이동된 데이터를 처리하도록 할 수 있다. 따라서, 데이터 분산 처리 시스템(10)의 사용자 작업에 대한 수행 시간은 단축될 수 있다.
실시예에 있어서, 도 1의 데이터 분배 로직(240)은 작업 관리기(210)에 통합되어 구성될 수도 있다. 작업 관리기(210)가 데이터 분배 로직(240)에 통합되는 경우에, 제1 내지 제3 슬레이브 서버들(310, 330, 350)에 기저장된 처리되지 않은 데이터 블록들은 상술한 바와 같이 데이터 분산 처리 시스템(10)의 유휴 시간에 작업 관리기(210)가 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)에 따라 제1 내지 제3 슬레이브 서버들(310, 330, 350) 사이에서 재분배할 수 있다. 또한 사용자가 새로운 작업을 요청하는 경우에는 작업 관리기(210)는 상기 새로운 작업을 슬레이브 서버들에 분배할 때 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 고려하여 제1 내지 제3 슬레이브 서버들(310, 330, 350) 사이에서 비균일하게 분배할 수 있다.
도 5는 도 1의 성능 메트릭 수집기에 포함될 수 있는 레지스터를 나타낸다.
도 5를 참조하면, 성능 메트릭 수집기(230)는 레지스터(231)를 포함할 수 있는데, 레지스터(231)는 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각으로부터 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 제공받아 저장할 수 있다.
도 6은 제1 내지 제3 데이터 처리 능력들을 설명하기 위한 도면이다.
도 6을 참조하면, 타이밍(T0)에 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각에서 제1 내지 제3 데이터 블록들(SPL1, SPL2, SPL3) 각각에 대한 맵리듀스 태스크 수행이 시작된다. 타이밍(T1)에 제1 슬레이브 서버(310)에서 제1 데이터 블록(SPL1)에 대한 맵리듀스 태스크 수행이 완료되어 결과 데이터(RDT11)가 출력되고, 타이밍(T2)에 제2 슬레이브 서버(330)에서 제2 데이터 블록(SPL2)에 대한 맵리듀스 태스크 수행이 완료되어 결과 데이터(RDT21)가 출력되고, 타이밍(T3)에 제3 슬레이브 서버(350)에서 제3 데이터 블록(SPL3)에 대한 맵리듀스 태스크 수행이 완료되어 결과 데이터(RDT31)가 출력된다. 따라서 타이밍들(T0~T1) 사이의 시간이 제1 슬레이브 서버(310)의 제1 데이터 처리 능력(DPC11)에 해당하고, 타이밍들(T0~T2) 사이의 시간이 제2 슬레이브 서버(330)의 제2 데이터 처리 능력(DPC21)에 해당하고, 타이밍들(T0~T3) 사이의 시간이 제3 슬레이브 서버(350)의 제3 데이터 처리 능력(DPC31)에 해당할 수 있다. 제3 데이터 처리 능력(DPC31)과 제1 데이터 처리 능력(DPC11)은 차이(DIFF1)를 가질 수 있다.
따라서 제1 내지 제3 슬레이브 서버들(310, 330, 350) 중 제1 슬레이브 서버(310)가 가장 큰 데이터 처리 능력을 가지고 제3 슬레이브 서버(330)가 가장 작은 데이터 처리 능력을 가진다. 그러므로 데이터 분산 처리 시스템(10)의 유휴 시간에 마스터 서버(200)는 제3 슬레이브 서버(350)의 로컬 디스크에 저장된 처리되지 않은 데이터 블록의 적어도 일부를 제1 슬레이브 서버(310)의 로컬 디스크로 이동시킬 수 있다.
도 7은 도 1의 데이터 분산 처리 시스템(10)의 유휴 시간을 설명하기 위한 도면이다.
도 1 및 도 7을 참조하면, 데이터 분산 처리 시스템(10)의 유휴 시간은 사용자로부터 요구된 사용자 작업이 더 이상 존재하지 않는 구간, 마스터 서버(200)에 사용자 데이터(IDTA)가 더 이상 존재하지 않는 구간 또는 제1 내지 제3 슬레이브들(310, 330, 350)에 포함되는 중앙 처리 장치들(311, 331, 351)의 평균 이용률이 기준 값(REF) 이하인 구간에 해당할 수 있다. 도 7에서는 타이밍들(T21, T22) 사이의 구간에서 중앙 처리 장치들(311, 331, 351)의 평균 이용률이 기준 값(REF) 이하이므로 타이밍들(T21, T22) 사이의 구간이 데이터 분산 처리 시스템(10)의 유휴 시간(IDLE TIME)에 해당할 수 있다. 이러한 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 마스터 서버(200)는 가장 작은 데이터 처리 능력을 가지는 제3 슬레이브 서버(350)의 로컬 디스크에 저장된 처리되지 않은 데이터 블록의 적어도 일부를 가장 큰 데이터 처리 능력을 가지는 제1 슬레이브 서버(310)의 로컬 디스크로 이동시킬 수 있다.
도 8은 도 1의 데이터 분산 처리 시스템에서 데이터 처리 능력들이 산출된 후의 동작을 나타내는 도면이다.
도 1 및 도 8을 참조하면, 사용자 데이터(IDTA)에 대한 맵 리듀스 태스크가 최초로 수행되는 동안 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)이 산출된 후에, 데이터 분산 처리 시스템(10)의 유휴 시간 전에 다른 사용자 데이터(IDTA2)가 마스터 서버(200)에 입력된다. 마스터 서버(200)의 작업 관리기(210) 입력된 사용자 데이터(IDTA2)를 동일한 크기를 가지는 복수의 데이터 블록들(SP1L12, SPL22, SPL32)로 분할하고, 분할된 데이터 블록들(SPL12, SPL22, SPL32)을 각각 제1 내지 제3 슬레이브 서버들(310, 330, 350)의 로컬 디스크에 저장시킨다. 데이터 블록(SPL12)은 제1 슬레이브 서버(310)의 로컬 디스크(LD1)에 파티션들(SPL121, SPL122, SPL123)들로 분할되어 저장되고, 데이터 블록(SPL22)은 제2 슬레이브 서버(330)의 로컬 디스크(LD2)에 파티션들(SPL221, SPL222, SPL223)들로 분할되어 저장되고, 데이터 블록(SPL32)은 제3 슬레이브 서버(350)의 로컬 디스크(LD3)에 파티션들(SPL321, SPL322, SPL323)들로 분할되어 저장된다.
사용자 데이터(IDTA)에 대한 최초의 맵 리듀스 태스크가 완료되고, 데이터 분산 처리 시스템(10)이 유휴 시간에 진입하게 되면, 마스터 서버(200)의 데이터 분배 로직(240)은 가장 작은 데이터 처리 능력을 가지는 제3 슬레이브 서버(350)의 로컬 디스크(LD3)에 저장된 데이터 블록(SPL32)의 일부(SPL323)를 가장 큰 데이터 처리 능력을 가지는 제1 슬레이브 서버(310)의 로컬 디스크(LD3)로 이동시키게 된다. 데이터 분산 처리 시스템(10)이 유휴 시간이 끝난 후에, 제1 슬레이브 서버(310)는 파티션들(SPL121, SPL122, SPL123, SPL232)에 대한 맵리듀스 태스크를 수행하게 되고, 제2 슬레이브 서버(330)는 파티션들(SPL221, SPL222, SPL223)에 대한 맵리듀스 태스크를 수행하게 되고, 제3 슬레이브 서버(350)는 파티션들(SPL321, SPL322)에 대한 맵리듀스 태스크를 수행하게 된다. 따라서 가장 작은 데이터 처리 능력을 가지는 제3 슬레이브 서버(350)의 데이터 처리 시간이 감소되므로, 데이터 분산 처리 시스템(10)의 데이터 처리 시간도 감소될 수 있다.
도 9는 도 1의 데이터 분산 처리 시스템에서 데이터가 재분배된 후의 제1 내지 제3 슬레이브 서버들의 데이터 처리 시간을 나타낸다.
도 8 및 도 9를 참조하면, 데이터 분산 처리 시스템(10)이 유휴 시간에 진입하게 되면, 마스터 서버(200)의 데이터 분배 로직(240)은 가장 작은 데이터 처리 능력을 가지는 제3 슬레이브 서버(350)의 로컬 디스크(LD3)에 저장된 데이터 블록(SPL32)의 일부(SPL323)를 가장 큰 데이터 처리 능력을 가지는 제1 슬레이브 서버(310)의 로컬 디스크(LD3)로 이동시키게 된다. 따라서, 유휴 시간이 끝나면, 제1 슬레이브 서버(310)는 타이밍들(T0, T31) 사이의 구간에서 파티션들(SPL121, SPL122, SPL123, SPL232)에 대한 맵리듀스 태스크를 수행하여 상응하는 결과 데이터들을 출력하고, 제2 슬레이브 서버(330)는 타이밍들(T0, T32) 사이의 구간에서 파티션들(SPL221, SPL222, SPL223)에 대한 맵리듀스 태스크를 수행하여 상응하는 결과 데이터들을 출력하고, 제3 슬레이브 서버(350)는 타이밍들(T0, T33) 사이의 구간에서 파티션들(SPL321, SPL322)에 대한 맵리듀스 태스크를 수행하게 된다.
따라서, 도 6과 비교하였을 경우에, 제1 슬레이브 서버(310)의 데이터 처리 시간은 시간(T1)에서 시간(T31)으로 증가하게 되고, 제2 슬레이브 서버(330)의 데이터 처리 시간은 시간(T32)으로서 시간(T2)과 동일하게 되고, 제3 슬레이브 서버(350)의 데이터 처리 시간은 시간(T3)에서 시간(T33)으로 감소하게 된다. 또한, 제1 슬레이브 서버(310)의 데이터 처리 시간과 제3 슬레이브 서버(350)의 데이터 처리 시간은 차이(DIFF2)를 가지게 되어 도 6의 차이(DIFF1)보다 감소되었음을 알 수 있다. 따라서 가장 작은 데이터 처리 능력을 갖는 제3 슬레이브 서버(350)의 데이터 처리 시간이 감소되므로, 데이터 분산 처리 시스템(10)의 전체 데이터 처리 시간도 감소된다.
도 10은 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템의 동작 방법을 나타낸다.
이하 도 1 내지 도 10을 참조하여, 본 발명의 실시예에 따른 데이터 분산 처리 시스템의 동작 방법을 설명한다.
도 1에 도시된 바와 같이 적어도 하나의 마스터 서버(200)와 제1 내지 제3 슬레이브 서버들(310, 330, 350)을 포함하는 데이터 분산 처리 시스템(10)의 동작 방법에서는, 먼저 마스터 서버(200)가 사용자 데이터(IDTA)를 동일한 크기를 가지는 복수의 데이터 블록들(SP1L11, SPL21, SPL31)로 분할하고, 분할된 데이터 블록들(SP1L11, SPL21, SPL31)을 각각 제1 내지 제3 슬레이브 서버들(310, 330, 350)에 할당한다(S510). 여기서 사용자 데이터(IDTA)의 분할 및 할당은 마스터 서버(200)에 포함되는 작업 관리기(210)에 의하여 수행될 수 있다. 사용자 데이터(IDTA)에는 사용자 작업과 사용자가 적용한 맵 함수 또는 리듀스 함수를 포함할 수 있고, 데이터 블록들(SP1L11, SPL21, SPL31) 각각도 사용자 작업의 파티션과 상기 파티션과 관련된 맵 함수 또는 리듀스 함수를 포함할 수 있다.
제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각은 데이터 블록들(SP1L11, SPL21, SPL31) 각각에 대한 맵리듀스를 수행하는 동안에 포함된 성능 메트릭 측정 데몬들(311, 331, 351) 각각을 이용하여 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 산출할 수 있다(S520). 성능 메트릭 측정 데몬들(311, 331, 351) 각각은 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각이 데이터 블록들(SP1L11, SPL21, SPL31) 각각을 처리하는 시간을 측정하여 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 산출할 수 있다. 여기서, 제1 내지 제3 슬레이브 서버들(310, 330, 350)은 서로 다른 데이터 처리 능력을 가지는 동종의 서버이거나 이종의 서버들일 수 있다.
제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)이 산출되면 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각은 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 마스터 서버(200)의 성능 메트릭 수집기(230)에 전송할 수 있다(S520). 성능 메트릭 수집기(230)는 내부에 도 5와 같은 레지스터(231)를 포함하여 수신된 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 저장할 수 있다.
마스터 서버(200)의 데이터 분배 로직(240)은 성능 메트릭 수집기(230)에 저장된 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)에 기초하여 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 재분배할 수 있다(S530). 보다 상세하게는 데이터 분배 로직(240)은 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 로컬 디스크에 저장된 처리되지 않은 데이터 블록들의 적어도 일부를 슬레이브 서버들(310, 330, 350)간에 이동시킬 수 있다.
도 11은 도 10의 재분배하는 단계를 구체적으로 나타내는 흐름도이다.
도 11을 참조하면, 데이터 분배 로직(240)이 제1 내지 제3 슬레이브 서버들(310, 330, 350)의 태스크들을 재분배하기 위하여 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버의 로컬 디스크에 저장된 처리되지 않은 데이터 블록의 적어도 일부를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버의 로컬 디스크에 이동시키고(S533), 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버가 이동된 데이터를 처리하도록 할 수 있다.
예를 들어, 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각이 도 6과 같은 데이터 처리 능력들을 갖는 경우에, 데이터 분산 처리 시스템(10)의 유휴 시간에 마스터 서버(200)는 제3 슬레이브 서버(350)의 로컬 디스크에 저장된 처리되지 않은 데이터 블록의 적어도 일부를 제1 슬레이브 서버(310)의 로컬 디스크로 이동시킬 수 있다. 따라서 가장 작은 데이터 처리 능력을 가지는 제3 슬레이브 서버(350)의 데이터 처리 시간이 감소되므로, 데이터 분산 처리 시스템(10)의 데이터 처리 시간도 감소될 수 있다.
상술한 바와 같이, 데이터 분배 로직(240)은 작업 관리기(210)에 통합되어 구성될 수도 있다. 작업 관리기(210)가 데이터 분배 로직(240)에 통합되는 경우에, 제1 내지 제3 슬레이브 서버들(310, 330, 350)에 기저장된 처리되지 않은 데이터 블록들은 상술한 바와 같이 데이터 분산 처리 시스템(10)의 유휴 시간에 작업 관리기(210)가 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)에 따라 제1 내지 제3 슬레이브 서버들(310, 330, 350) 사이에서 재분배할 수 있다. 또한 사용자가 새로운 작업을 요청하는 경우에는 작업 관리기(210)는 상기 새로운 작업을 슬레이브 서버들에 분배할 때 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 고려하여 제1 내지 제3 슬레이브 서버들(310, 330, 350) 사이에서 비균일하게 분배할 수 있다.
도 12는 본 발명의 실시예에 따른 데이터 분산 처리 시스템에 슬레이브 서버가 추가되는 경우를 나타내는 도면이다.
도 12를 참조하면, 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)이 산출되고 마스터 서버(200)가 제1 내지 제3 슬레이브 서버들(310, 330, 350) 사이의 태스크를 재분배하여 사용자 작업에 대한 처리가 완료된 후에 제4 슬레이브 서버(370)가 데이터 분산 처리 시스템(10)에 추가된다. 여기서 제4 슬레이브 서버(370)가 추가된 것은 데이터 분산 처리 시스템(10)이 처리해야되는 사용자 데이터의 양이 증가하기 때문이다. 여기서 제4 슬레이브 서버(370)는 제1 내지 제3 슬레이브 서버들(310, 330, 350)과는 다른 데이터 처리 능력을 갖는 이종의 서버일 수 있다.
제4 슬레이브 서버(370)가 추가된 후에 마스터 서버(200)에는 사용자 데이터(IDTA3)가 입력된다. 제4 슬레이브 서버(370)도 성능 메트릭 측정 데몬(371)을 포함하고, 도 4의 제1 슬레이브 서버(310)와 실질적으로 동일한 구성을 가질 수 있다. 마스터 서버(200)는 사용자 데이터(IDTA3)를 동일한 크기를 가지는 복수의 데이터 블록들(SP1L13, SPL23, SPL33, SPL43)로 분할하고, 분할된 데이터 블록들(SP1L13, SPL23, SPL33, SPL43)을 각각 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370)에 할당한다. 여기서 사용자 데이터(IDTA3)의 분할 및 할당은 마스터 서버(200)에 포함되는 작업 관리기(210)에 의하여 수행될 수 있다.
사용자 데이터(IDTA3)에는 사용자 작업과 사용자가 적용한 맵 함수 또는 리듀스 함수를 포함할 수 있고, 데이터 블록들(SP1L13, SPL23, SPL33, SPL34) 각각도 사용자 작업의 파티션과 상기 파티션과 관련된 맵 함수 또는 리듀스 함수를 포함할 수 있다.
제4 슬레이브 서버(370)에 할당되는 데이터 블록(SPL34)이 데이터 블록들(SP1L11, SPL21, SPL31) 각각과 동일한 데이터 크기를 갖는 경우에, 성능 메트릭 측정 데몬(371)은 제4 슬레이브 서버(370)가 데이터 블록(SPL34)에 대한 맵리듀스 태스크를 수행하여 데이터 블록(SPL34)을 처리하는데 걸리는 시간을 측정하여 제4 데이터 처리 능력(DPC43)을 산출할 수 있다. 성능 메트릭 측정 데몬(371)은 산출된 제4 데이터 처리 능력(DPC43)을 성능 메트릭 수집기(230)에 전송하고, 데이터 분배 로직(240)은 성능 메트릭 수집기(230)에 기저장된 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)과 새롭게 저장된 제4 데이터 처리 능력(DPC43)에 기초하여 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370) 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 재분배할 수 있다. 보다 상세하게는 데이터 분배 로직(240)은 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370) 각각의 로컬 디스크에 저장된 처리되지 않은 데이터 블록들의 적어도 일부를 슬레이브 서버들(310, 330, 350, 370)간에 이동시킬 수 있다.
제4 슬레이브 서버(370)에 할당되는 데이터 블록(SPL34)이 데이터 블록들(SP1L11, SPL21, SPL31) 각각과 다른 데이터 크기를 갖는 경우에는, 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370) 각각은 데이터 블록들(SP1L13, SPL23, SPL33, SPL43) 각각에 대한 맵리듀스를 수행하는 동안에 포함된 성능 메트릭 측정 데몬들(311, 331, 351, 371) 각각을 이용하여 제1 내지 제4 데이터 처리 능력들(DPC13, DPC23, DPC33, DPC34)을 산출할 수 있다(S520). 성능 메트릭 측정 데몬들(311, 331, 351, 371) 각각은 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각이 데이터 블록들(SP1L13, SPL23, SPL33, SPL43) 각각을 처리하는 시간을 측정하여 제1 내지 제4 데이터 처리 능력들(DPC13, DPC23, DPC33, DPC34)을 산출할 수 있다.
제1 내지 제4 데이터 처리 능력들(DPC13, DPC23, DPC33, DPC34)이 산출되면 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370) 각각은 제1 내지 제4 데이터 처리 능력들(DPC13, DPC23, DPC33, DPC34)을 마스터 서버(200)의 성능 메트릭 수집기(230)에 전송할 수 있다. 성능 메트릭 수집기(230)는 내부에 도 5와 같은 레지스터(231)를 포함하여 수신된 제1 내지 제4 데이터 처리 능력들(DPC13, DPC23, DPC33, DPC34)을 저장할 수 있다.
마스터 서버(200)의 데이터 분배 로직(240)은 성능 메트릭 수집기(230)에 저장된 제1 내지 제4 데이터 처리 능력들(DPC13, DPC23, DPC33, DPC34)에 기초하여 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370) 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 재분배할 수 있다. 보다 상세하게는, 데이터 분배 로직(240)은 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370) 중 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버의 로컬 디스크에 저장된 처리되지 않은 태스크의 적어도 일부를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버의 로컬 디스크로 이동시킬 수 있다.
도 13은 본 발명의 다른 실시예에 따른 데이터 분산 처리 시스템의 동작 방법을 나타내는 타이밍도이다.
도 13에서는 도 12에서와 같이 기존의 데이터 분산 처리 시스템(10)에 제4 슬레이브 서버(370)가 추가되는 경우의 동작 방법을 나타낸다.
도 12 및 도 13을 참조하면, 제4 슬레이브 서버(370)가 추가되기 전에 데이터 분산 처리 시스템(10)이 마스터 서버(200)와 제1 내지 제3 슬레이브 서버들(310, 330, 350)로 구성되고 사용자가 작업을 요청한 경우에 먼저 마스터 서버(200)가 사용자 데이터(IDTA)를 동일한 크기를 가지는 복수의 데이터 블록들(SP1L11, SPL21, SPL31)로 분할하고, 분할된 데이터 블록들(SP1L11, SPL21, SPL31)을 각각 제1 내지 제3 슬레이브 서버들(310, 330, 350)에 할당한다. 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각은 데이터 블록들(SP1L11, SPL21, SPL31) 각각에 대한 맵리듀스를 수행하는 동안에 포함된 성능 메트릭 측정 데몬들(311, 331, 351) 각각을 이용하여 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 산출할 수 있다(S610). 성능 메트릭 측정 데몬들(311, 331, 351) 각각은 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각이 데이터 블록들(SP1L11, SPL21, SPL31) 각각을 처리하는 시간을 측정하여 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 산출할 수 있다.
제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)이 산출되면 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각은 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)을 마스터 서버(200)의 성능 메트릭 수집기(230)에 전송할 수 있다(S620). 마스터 서버(200)의 데이터 분배 로직(240)은 성능 메트릭 수집기(230)에 저장된 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)에 기초하여 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 재분배할 수 있다(S630). 보다 상세하게는 데이터 분배 로직(240)은 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 로컬 디스크에 저장된 처리되지 않은 데이터 블록들의 적어도 일부를 슬레이브 서버들(310, 330, 350)간에 이동시킬 수 있다.
제1 내지 제3 슬레이브 서버들(310, 330, 350) 각각의 제1 내지 제3 데이터 처리 능력들(DPC11, DPC21, DPC31)이 산출되고 마스터 서버(200)가 제1 내지 제3 슬레이브 서버들(310, 330, 350) 사이의 태스크를 재분배하여 사용자 작업에 대한 처리가 완료된 후에 제4 슬레이브 서버(370)가 데이터 분산 처리 시스템(10)에 추가된다.
제4 슬레이브 서버(370)가 추가된 후에 마스터 서버(200)에는 사용자 데이터(IDTA3)가 입력된다. 제4 슬레이브 서버(370)의 성능 메트릭 측정 데몬(371)은 할당된 데이터 블록(SPL43)에 대하여 맵리듀스 태스크를 수행하면서 데이터 블록(SPL34)을 처리하는데 걸리는 시간을 측정하여 제4 데이터 처리 능력(DPC43)을 산출한다(S640). 제4 슬레이브 서버(370)가 제4 데이터 처리 능력(DPC43)을 마스터 서버(200)의 성능 메트릭 수집기(230)에 전송한다(S350). 마스터 서버(200)의 데이터 분배 로직(240)은 제4 데이터 처리 능력(DPC43)에 더 기초하여 데이터 분산 처리 시스템(10)의 유휴 시간 동안에 제1 내지 제4 슬레이브 서버들(310, 330, 350, 370) 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 재분배한다(S660).
따라서 본 발명의 실시예에 따른 데이터 분산 처리 시스템의 동작 방법에서는 새로운 슬레이브 서버가 시스템에 추가되는 경우에 새로운 슬레이브 서버의 데이터 처리 능력을 고려하여 슬레이브 서버들간에 데이터를 재분배함으로써 데이터 분산 처리 시스템의 총 데이터 처리 시간을 감소시켜 성능을 향상시킬 수 있다.
도 14는 본 발명의 일 실시예에 따른 데이터 분산 처리 시스템의 동작 방법이 적용될 수 있는 하둡 클러스터의 물리적 분산 구조를 나타낸다.
도 14를 참조하면, 하둡 클러스터(600)는 클라이언트(610), 제1 내지 제 3 스위치들(621, 622, 623), 제1 랙(630) 및 제2 랙(650)을 포함하여 구성될 수 있다.
제1 랙(630)은 적어도 하나의 마스터 서버(631)와 복수의 슬레이브 서버들(641~64k)을 포함할 수 있고, 제2 랙(650)은 복수의 슬레이브 서버들(651~65m)을 포함할 수 있다. 제1 스위치(621)는 클라이언트(610)를 제2 및 제3 스위치들(622, 623)에 연결하고, 제3 스위치(623)는 제1 랙(630)에 포함되는 적어도 하나의 마스터 서버(631)와 복수의 슬레이브 서버들(641~64k) 각각과 연결되고, 제2 스위치(622)는 제2 랙(650)에 포함되는 복수의 슬레이브 서버들(651~65m) 각각과 연결될 수 있다.
마스터 서버(631)는 도 1의 마스터 서버(200)와 실질적으로 동일한 구성을 가질 수 있다. 즉 마스터 서버(631)는 작업 관리기, 성능 메트릭 수집기 및 데이터 분배 로직을 포함할 수 있다. 작업 관리기는 클라이언트(610)로부터의 사용자 데이터를 복수의 데이터 블록들로 분할하고 분할된 데이터 블록들을 슬레이브 서버들(641~64k, 651~65m)에 할당할 수 있다. 성능 메트릭 수집기는 슬레이브 서버들(641~64k, 651~65m) 각각에서 산출되어 제공되는 데이터 처리 능력들을 수집할 수 있고, 데이터 분배 로직은 데이터 처리 능력에 기초하여 하둡 클러스터(600)의 유휴 시간에 슬레이브 서버들(641~64k, 651~65m) 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 재분배하여 성능을 높일 수 있다.
슬레이브 서버들(641~64k, 651~65m) 각각은 도 4의 제1 슬레이브 서버(310)와 실질적으로 동일한 구성을 가질 수 있다. 즉 슬레이브 서버들(641~64k, 651~65m) 각각은 태스크 관리기, 로컬 디스크 및 성능 메트릭 측정 데몬을 포함할 수 있다. 슬레이브 서버들(641~64k, 651~65m) 각각은 성능 메트릭 측정 데몬을 이용하여 할당된 데이터 블록에 대한 맵리듀스 태스크의 최초 수행시에 할당된 데이터 블록의 처리 시간을 측정하여 데이터 처리 능력을 산출하고, 산출된 데이터 처리 능력을 마스터 서버의 성능 메트릭 수집기에 전송할 수 있다.
하둡 클러스터(600)가 도 14와 같이 제1 및 제2 랙들(630, 650)로 구성되는 경우에 전원 장치 등의 문제로 인한 장애를 방지하고, 실제 데이터가 저장되는 로컬 디스크와 병렬 처리를 가능하게 하는 태스크 매니저를 물리적으로 단일한 슬레이브 서버에 포함시켜 효율을 극대화할 수 있다.
본 발명의 실시예들에 따르면, 서로 다른 데이터 처리 능력을 가지는 슬레이브 서버들을 구비하는 데이터 분산 처리 시스템에서 사용자 데이터가 분할된 데이트 블록에 대한 맵리듀스 태스크의 최초 수행시에 슬레이브 서버들 각각의 데이터 처리 능력을 산출하고, 산출된 데이터 처리 능력에 따라 데이터 분산 처리 시스템의 유휴 시간에 슬레이브 서버들 각각의 로컬 디스크에 저장된 처리되지 않은 태스크들을 슬레이브 서버들 사이에서 재분배함으로써 데이터 처리 시간을 감축시켜 성능을 향상시킬 수 있다.
본 발명은 서로 다른 종류의 서버를 가지는 데이터 분산 처리 시스템에 폭넓게 적용될 수 있다. 따라서 본 발명의 실시예들은 구글 파일 시스템(GFS), 하둡 분산 파일 시스템(HDFS), 클라우드 서비스 시스템, 빅 데이터 처리 시스템 등에 적용될 수 있다.
상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술분야에서 통상의 지식을 가진 자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다. 상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 데이터 분산 처리 시스템 100: 사용자 인터페이스
200: 마스터 서버 210: 작업 관리기
230: 성능 메트릭 수집기 240: 데이터 분배 로직
310, 330, 350: 제1 내지 제3 슬레이브 서버들
311, 331, 351: 성능 메트릭 측정 데몬
312: 태스트 매니저 313: 로컬 디스크
314, 315, 316: 맵 태스크 수행기들
317, 318: 리듀스 태스크 수행기들

Claims (10)

  1. 하나의 마스터 서버와 적어도 제1 내지 제3 슬레이브 서버들을 구비하는 데이터 분산 처리 시스템의 동작 방법으로서,
    입력 데이터 블록들 각각에 대한, 중앙 처리 장치 상에서 구동되는 맵리듀스 태스크의 최초 수행시에 상기 제1 내지 제3 슬레이브 서버들 각각의 제1 내지 제3 데이터 처리 능력들을 산출하는 단계;
    상기 제1 내지 제3 슬레이브 서버들이 상기 산출된 제1 내지 제3 데이터 처리 능력들을 상기 마스터 서버에 전송하는 단계; 및
    상기 데이터 처리 시스템의 제1 유휴 시간에 상기 산출된 데이터 처리 능력들에 기초하여 상기 마스터 서버가 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배하는 단계를 포함하는 데이터 분산 처리 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 태스크들을 재분배하는 단계는 상기 마스터 서버가 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버에 저장된 데이터의 적어도 일부를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버로 이동시키는 단계를 포함하고,
    상기 슬레이브 서버에 저장된 데이터는 상기 슬레이브 서버의 로컬 디스크에 저장된 처리되지 않은 데이터인 것을 특징으로 하는 데이터 분산 처리 시스템의 동작 방법.
  3. 제1항에 있어서,
    상기 마스터 서버가 사용자 데이터를 상기 입력 데이터 블록들로 분할하여 상기 제1 내지 제3 슬레이브 서버들에 할당하는 단계를 더 포함하는 것을 특징으로 하는 데이터 분산 처리 시스템의 동작 방법.
  4. 제1항에 있어서,
    상기 제1 내지 제3 슬레이브 서버들 각각은 각각에 구비된 제1 내지 제3 성능 메트릭 측정 데몬을 이용하여 상기 제1 내지 제3 처리 능력들을 산출하고,
    상기 마스터 서버는 성능 메트릭 수집기를 이용하여 상기 산출된 제1 내지 제3 데이터 처리 능력들을 수신하고,
    상기 마스터 서버는 상기 수신된 제1 내지 제3 데이터 처리 능력들에 기초하고 데이터 분배 로직을 이용하여 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배하는 것을 특징으로 하는 데이터 분산 처리 시스템의 동작 방법.
  5. 제1항에 있어서,
    상기 제1 내지 제3 데이터 처리 능력들은 동일한 크기의 데이터 각각에 대한 상기 제1 내지 제3 슬레이브 서버들 각각의 데이터 처리 시간에 의하여 결정되고,
    상기 제1 내지 제3 슬레이버 서버들은 서로 다른 데이터 처리 능력을 가지는 이종의 서버들인 것을 특징으로 하는 데이터 분산 처리 시스템의 동작 방법.
  6. 제1항에 있어서,
    상기 제1 유휴 시간은 상기 마스터 서버에 사용자 데이터가 더 이상 존재하지 않는 구간 상기 제1 내지 제3 슬레이브 서버들의 중앙 처리 장치들의 이용율이 기준 값 이하인 구간에 상응하는 것을 특징으로 하는데이터 분산 처리 시스템의 동작 방법.
  7. 제1항에 있어서,
    상기 데이터 처리 시스템은 Hadoop 프레임워크를 사용하여 상기 사용자 데이터를 처리하는 것을 특징으로 하는 데이터 분산 처리 시스템의 동작 방법.
  8. 제1항에 있어서,
    상기 데이터 처리 시스템에 제4 슬레이브 서버가 추가되는 경우,
    상기 데이터 처리 시스템의 제2 유휴 시간에 상기 제4 슬레이브 서버의 제4 데이터 처리 능력에 더 기초하여 상기 마스터 서버가 상기 제1 내지 제4 슬레이브 서버들의 태스크들을 재분배하는 것을 특징으로 하는데이터 분산 처리 시스템의 동작 방법.
  9. 마스터 서버;
    상기 마스터 서버와 네트워크를 통하여 연결되는 적어도 제1 내지 제3 슬레이브 서버들을 포함하고,
    상기 제1 내지 제3 슬레이브 서버들 각각은
    중앙 처리 장치에서 구동되는 입력 데이터 블록에 대한 맵리듀스 태스크 최초 수행시에 제1 내지 제3 데이터 처리 능력들을 산출하여 상기 마스터 서버에 보고하는 성능 메트릭 측정 데몬을 포함하고,
    상기 마스터 서버는 상기 제1 내지 제3 데이터 처리 능력들에 기초하여 유휴 시간에 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배하는 데이터 분산 처리 시스템.
  10. 제9항에 있어서, 상기 마스터 서버는
    상기 제1 내지 제3 데이터 처리 능력들을 수신하는 성능 메트릭 수집기; 및
    상기 성능 메트릭 수집기에 연결되고, 상기 제1 내지 제3 데이터 처리 능력들에 기초하여 상기 제1 내지 제3 슬레이브 서버들의 태스크들을 재분배하는 데이터 분배 로직을 포함하고,
    상기 데이터 분배 로직은 가장 작은 데이터 처리 능력을 가지는 슬레이브 서버에 저장된 데이터를 가장 큰 데이터 처리 능력을 가지는 슬레이브 서버로 이동시켜 상기 태스크들을 재분배하고,
    상기 제1 내지 제3 슬레이브 서버들 각각은 상기 입력 데이터 블록을 저장하는 로컬 디스크를 더 포함하고,
    상기 마스터 서버는 사용자 데이터를 복수의 입력 데이터 블록들로 분할하여 상기 제1 내지 제3 슬레이브 서버들에 분배하는 작업 관리기를 더 포함하는 것을 특징으로 하는 데이터 분산 처리 시스템.
KR20130109421A 2013-09-12 2013-09-12 데이터 분산 처리 시스템 및 이의 동작 방법 KR20150030332A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130109421A KR20150030332A (ko) 2013-09-12 2013-09-12 데이터 분산 처리 시스템 및 이의 동작 방법
US14/477,234 US20150074216A1 (en) 2013-09-12 2014-09-04 Distributed and parallel data processing systems including redistribution of data and methods of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130109421A KR20150030332A (ko) 2013-09-12 2013-09-12 데이터 분산 처리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20150030332A true KR20150030332A (ko) 2015-03-20

Family

ID=52626633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130109421A KR20150030332A (ko) 2013-09-12 2013-09-12 데이터 분산 처리 시스템 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US20150074216A1 (ko)
KR (1) KR20150030332A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708573A (zh) * 2016-12-19 2017-05-24 ***股份有限公司 一种用于Hadoop集群自动安装的***及方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327674B2 (en) * 2012-06-05 2022-05-10 Pure Storage, Inc. Storage vault tiering and data migration in a distributed storage network
CN107357522B (zh) 2014-11-05 2019-11-15 华为技术有限公司 数据处理方法和装置
GB2532469A (en) * 2014-11-20 2016-05-25 Ibm Self-optimizing table distribution with transparent replica cache
US9684512B2 (en) * 2015-03-30 2017-06-20 International Business Machines Corporation Adaptive Map-Reduce pipeline with dynamic thread allocations
US9961068B2 (en) 2015-07-21 2018-05-01 Bank Of America Corporation Single sign-on for interconnected computer systems
WO2017082323A1 (ja) * 2015-11-13 2017-05-18 日本電気株式会社 分散処理システム、分散処理装置、方法および記憶媒体
CN105610621B (zh) * 2015-12-31 2019-04-26 中国科学院深圳先进技术研究院 一种分布式***架构任务级参数动态调整的方法及装置
JP6143981B1 (ja) * 2016-03-22 2017-06-07 三菱電機株式会社 情報処理システム、情報処理装置及び情報処理方法
WO2017212504A1 (en) * 2016-06-06 2017-12-14 Hitachi, Ltd. Computer system and method for task assignment
US10649670B2 (en) * 2016-09-16 2020-05-12 International Business Machines Corporation Data block processing
US10839453B1 (en) * 2019-11-26 2020-11-17 Capital One Services, Llc Systems and methods for identifying location-based information associated with a product on a web page
CN114807212B (zh) * 2021-01-19 2024-05-31 上海交通大学 调控或鉴定植物籽粒粒型或产量性状的基因及其应用
US20230102843A1 (en) * 2021-09-27 2023-03-30 Nvidia Corporation User-configurable memory allocation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726290B2 (en) * 2008-06-12 2014-05-13 Yahoo! Inc. System and/or method for balancing allocation of data among reduce processes by reallocation
KR20120067133A (ko) * 2010-12-15 2012-06-25 한국전자통신연구원 서비스 제공 방법 및 장치
US9690829B2 (en) * 2013-04-15 2017-06-27 Vmware, Inc. Dynamic load balancing during distributed query processing using query operator motion

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708573A (zh) * 2016-12-19 2017-05-24 ***股份有限公司 一种用于Hadoop集群自动安装的***及方法
CN106708573B (zh) * 2016-12-19 2020-12-18 ***股份有限公司 一种用于Hadoop集群自动安装的***及方法

Also Published As

Publication number Publication date
US20150074216A1 (en) 2015-03-12

Similar Documents

Publication Publication Date Title
KR20150030332A (ko) 데이터 분산 처리 시스템 및 이의 동작 방법
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
Grandl et al. Altruistic scheduling in {Multi-Resource} clusters
Beloglazov et al. OpenStack Neat: a framework for dynamic and energy‐efficient consolidation of virtual machines in OpenStack clouds
US10956230B2 (en) Workload placement with forecast
US20180060132A1 (en) Stateful resource pool management for job execution
Hussein et al. A light-weight data replication for cloud data centers environment
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
Vazquez Time series forecasting of cloud data center workloads for dynamic resource provisioning
Lohrmann et al. Processing smart meter data streams in the cloud
US10705873B2 (en) Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
CN111399970B (zh) 一种预留资源管理方法、装置和存储介质
Tsai et al. Two-tier multi-tenancy scaling and load balancing
CN104239148A (zh) 一种分布式任务调度方法及装置
EP2748705A2 (en) Systems and methods of host-aware resource management involving cluster-based resource pools
US10154091B1 (en) Deploying infrastructure units according to resource hosting constraints
US10616134B1 (en) Prioritizing resource hosts for resource placement
WO2013185175A1 (en) Predictive analytics for resource provisioning in hybrid cloud
Cirne et al. Web-scale job scheduling
CN111418187A (zh) 云网络中的可伸缩统计和分析机制
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
Casalicchio et al. Energy-aware auto-scaling algorithms for Cassandra virtual data centers
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US11336519B1 (en) Evaluating placement configurations for distributed resource placement
Sharma et al. Mrorchestrator: A fine-grained resource orchestration framework for hadoop mapreduce

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid