KR101765725B1 - 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법 - Google Patents

대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법 Download PDF

Info

Publication number
KR101765725B1
KR101765725B1 KR1020160023130A KR20160023130A KR101765725B1 KR 101765725 B1 KR101765725 B1 KR 101765725B1 KR 1020160023130 A KR1020160023130 A KR 1020160023130A KR 20160023130 A KR20160023130 A KR 20160023130A KR 101765725 B1 KR101765725 B1 KR 101765725B1
Authority
KR
South Korea
Prior art keywords
node
job
task
slave node
cloud
Prior art date
Application number
KR1020160023130A
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 KR1020160023130A priority Critical patent/KR101765725B1/ko
Application granted granted Critical
Publication of KR101765725B1 publication Critical patent/KR101765725B1/ko

Links

Images

Classifications

    • G06F17/30194
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • G06F17/30224
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

대용량 방송용 빅데이터 분산 병렬처리를 하는 동적 디바이스 연결 시스템으로서, 클라우드 장치에 기반하여 클라이언트가 요청한 잡의 업무량을 컴파일 타임 또는 런타임에 실시간으로 분석하고 필요한 클라우드 장치의 가상머신(VM) 리소스풀로부터 여유 VM을 계산한 후 자동으로 VM 노드를 증감하여 잡을 재할당할 때 슬레이브 노드의 로컬데이터 영역을 가상 디스크로 마운트하여 맵 연산으로 생성되는 중간 데이터의 입출력 속도를 향상시키며, 클라우드 관리서버가, 클라우드 호스트서버에서 동작하는 VM 노드에 연결하여 제어하는 VM 노드 연결부와; VM 노드의 생성/실행/삭제를 관리하는 클러스터 관리부와; VM 노드가 사용하는 리소스풀을 관리하는 리소스풀 관리부와; VM 노드에 연결할 가상디스크, VGPU, 프린터 중 적어도 하나를 포함하는 디바이스 장치를 VM 노드별로 구분하여 추가/삭제에 필요한 정보들을 관리하고 동작을 진행시키는 VM 디바이스 관리부와; VM 노드의 정보와 디바이스 장치를 고유의 ID로 구분하여 추가/삭제에 필요한 정보를 저장하는 VM 정보 저장부와; 마스터 노드와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스부를 포함한다. 따라서, 자동으로 VM 노드를 증감하여 잡을 재할당할 때 슬레이브 노드의 로컬데이터 영역을 가상 디스크로 마운트하여 맵 연산으로 생성되는 중간 데이터의 입출력 속도를 향상시킬 수 있다.

Description

대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법 {System and Method for connecting dynamic device on mass broadcasting Big Data Parallel Distributed Processing }
본 발명은 클라우드(cloud) 장치가 포함되어 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템에 관한 것으로서, 특히 하둡(Hadoop) 시스템을 사용하여 대용량 방송용 빅데이터(big data)를 처리할 때, 입력 데이터를 실시간으로 분석하여 데이터의 크기와 종류에 따른 예상 처리 시간에 따라 필요한 컴퓨팅 자원을 자동으로 증감함으로써, 맵리듀스(Map Reduce) 연산 처리 효율을 향상시킬 수 있는 자동 분산병렬 처리 하둡 시스템에서 맵리듀스 연산 처리를 하는 VM 노드상에 저장되어 있는 잡(job) 저장공간을 동적으로 할당하는 시스템에 관한 것이다.
사용자들은 웹(World Wide Web)을 통해 자신이 원하는 정보를 자유롭게 찾고, 자신이 새로운 정보를 웹을 통해 생성할 수 있으며, 서로 소통하고, 물건을 사고파는 웹 중심의 정보 환경이 새롭게 탄생하였다.
이러한 새로운 형태의 환경상에 IT 및 스마트 기기의 발전으로 인하여 소셜(Social), 사물, 라이프로그 데이터 등이 결합함에 따라서 다수의 사용자가 생산하는 데이터가 기하 급수적으로 늘어나게 되었고, 사용자들은 본인에게 필요한 정보를 찾아 내는 것이 더욱더 어려워지게 되었다. 정보의 양이 시간이 지남에 따라 더욱더 증가하게 되어 , 본인에게 필요한 정보를 얻을 수 있는 보다 효율적인 방법이 필요하게 되었다.
웹에서 데이터의 의미를 RDF(Resource Description Framework) 형식으로 표현하고, RDF를 속성 값으로 연결하여 해당 정보 또는 데이터를 사람과 기계에서 모두 해석하고 의미를 파악할 수 있도록 하는 시맨틱웹(Semantic Web)으로 발전하였고, RDF기반의 비정형데이터를 분석하기 위한 방법의 하나로 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File System)을 활용하는 방안에 대한 논의가 활발하게 진행되고 있다.
특히, 방송관련 빅데이터들은 비디오, 오디오, 텍스트 등 멀티미디어 기반이면서, 기존 정형 데이터와는 구분되는 비정형 데이터의 특성을 가지고 있으며, 인기 컨텐츠는 실시간으로 급속히 수요가 폭주하는 특성이 강하다. 또한 방송사, 광고사, 시청자들이 이러한 인기 컨테츠들을 기반으로 재생산해내는 데이터들 또한 스마트기기의 보급으로 인해 기하급수적으로 증가되는 특징을 가지고 있다. 이러한 특성을 갖는 방송 컨텐츠 빅데이터들을 원활하게 지식 처리하기 위해서 대용량 지식 트리플을 질의할 수 있는 기술의 개발이 필요하게 되었다.
이러한 방송관련 빅데이터와 같은 비정형 데이터를 기반으로 생성된 대용량 지식 트리플들을 분석하기 위해 하둡시스템의 맵리듀스 연산을 사용할 수 있다. 이 지시 트리플에 대한 맵리듀스 작업을 통해 새로운 지식 트리플을 생성할 수 있다.. 이때 맵리듀스 연산의 향상을 위해 “자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템”(출원번호:10-2015-0021460)을 사용하여 클라이언트가 요청한 잡(job)의 업무량을 컴파일 타임 혹은 런타임에 실시간으로 분석하여 이에 필요한 클라우드 시스템의 가상머신(virtual machine) 리소스풀(resource pool)로부터 여유 가상머신을 계산한 후 자동으로 가상머신 노드를 증감하여 이 가상머신 노드를 슬레이브 노드로(Slave Node)로 할당하고 잡(job)을 슬레이브 노드에 재할당 한다. 이때 맵 연산을 진행한 데이터는 슬레이브 노드의 로컬데이터 영역에 일반적으로 저장되는데, 가상머신 노드를 구성할 때 로컬데이터 영역을 너무 크게 할당하면 가상머신 노드를 구성하기 위해 많은 양의 물리 디스크 저장공간을 할당해야 되는 문제가 발생한다.
가상디스크를 할당하는 방법 중에 동적 디스크 할당 기능이 있어서, 디스크를 실제 사용하기 전까지는 물리 디스크의 실제 영역을 할당하지 않는 기능이 있기는 하지만, 맵리듀스 연산에 있어서는 많은 양의 데이터가 가상머신 노드의 로컬데이터 영역에 저장되기 때문에 동적 디스크 할당은 1회의 맵리듀스 연산으로도 많은 물리적인 디스크 공간을 사용하게 되는 문제가 있다.
본 발명은 대용량 방송용 빅데이터의 맵리듀스 연산을 위해 사용되는 자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템(이하 "클라우드 장치"라함)에서 운영체제가 동작하는 가상머신 노드와 로컬데이터 저장공간을 분리하여 상기 로컬데이터 영역을 별도의 가상 저장공간으로 지정하여 가상머신 노드를 슬레이브 노드로 할당할 때 슬레이브 노드가 동작하는 물리적 서버팜에서 접근성이 좋은 위치에 있는 물리 디스크를 사용하여 가상 저장공간을 할당하고 슬레이브 노드에 연결해주는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법을 제공함에 그 목적이 있다.
본 발명은 대용량 방송용 빅데이터의 지식 트리플에 대한 맵리듀스 연산을 실행할 때, 클라우드 환경상에서 CPU와 메모리 자원을 할당 받아서 실행되는 슬레이브 노드가 실행되는 물리서버 위치와 슬레이브 노드의 맵 연산 결과로 저장되는 중간 산출물의 저장되는 물리서버 위치가 서로 상이함에 기인하여 발생하는 중간데이터의 읽기.쓰기에 대한 성능저하를 억제하기 위한 것으로 슬레이브 노드에 가상디스크를 연결해 주는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법을 제공함에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 제1양태는 대용량 방송용 빅데이터 분산 병렬처리를 하는 동적 디바이스 연결 시스템으로서, 상기 동적 디바이스 연결 시스템은 클라우드 장치를 포함하고, 상기 클라우드 장치는: 잡(job)을 수행하는 잡 클라이언트를 포함하는 클라이언트와; 상기 잡 클라이언트에서 요청된 잡(job)에 ID를 할당하며, 요청된 잡(job)을 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하고 평가된 상기 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당 관리하는 잡(job) 트랙커를 포함하는 마스터 노드와; 태스크 트랙커를 포함하고, 상기 잡(job) 트랙커의 요청에 의해 할당된 잡(job)을 맵태스크와 리듀스태스크로서 상기 태스크 트랙커에 할당하고 태스크를 실행하는 적어도 하나의 슬레이브 노드와; 상기 잡(job) 트랙커의 요청에 의해 VM 노드를 슬레이브 노드로 할당하고 상기 슬레이브 노드의 태스크 트랙커를 통해 맵태스크 또는 리듀스태스크를 실행시키고 상기 슬레이브 노드에 디바이스 장치를 할당해주는 클라우드 관리서버와; 상기 클라우드 관리서버의 클러스터 관리부의 요청에 따라 VM 노드를 슬레이브 노드로 할당하여 VM(Virtual Machine)자원을 제공하고 상기 슬레이브 노드에 디바이스 장치를 연결해 주는 클라우드 호스트서버;를 구비하고, 방송용 빅데이터 지식 트리플을 처리하는 하둡 시스템을 지원하기 위해 상기 클라우드 장치에 기반하여 상기 클라이언트가 요청한 잡(job)의 업무량을 컴파일 타임 또는 런타임에 실시간으로 분석하고 이에 필요한 클라우드 장치의 가상머신(virtual machine :VM) 리소스풀(resource pool)로부터 여유 가상 머신(VM)을 계산한 후 자동으로 VM 노드를 증감하여 잡(job)을 재할당할 때 상기 슬레이브 노드의 로컬데이터 영역을 가상 디스크로 마운트(mount)하여 맵 연산으로 생성되는 중간 데이터의 입출력 속도를 향상시키며, 상기 클라우드 관리서버는, 상기 클라우드 호스트서버에서 동작하는 VM 노드에 연결하여 제어하는 VM 노드 연결부와; 상기 클라우드 호스트서버에서 동작하는 VM 노드의 생성/실행/삭제를 관리하는 클러스터 관리부와; 상기 VM 노드가 사용하는 리소스풀을 관리하는 리소스풀 관리부와; 상기 VM 노드에 연결할 가상디스크, VGPU(Virtual Graphic Process Unit), 프린터 중 적어도 하나를 포함하는 디바이스 장치를 VM 노드별로 구분하여 추가/삭제에 필요한 정보들을 관리하고 동작을 진행시키는 VM 디바이스 관리부와; 상기 VM 노드의 정보와 디바이스 장치를 고유의 ID로 구분하여 추가/삭제에 필요한 정보를 저장하는 VM 정보 저장부와; 상기 마스터 노드와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스부;를 포함한다.
바람직하게는, 상기 마스터 노드는, 상기 잡 클라이언트가 요청한 잡(job)을 슬레이브 노드의 태스크 트랙커에 맵태스크와 리듀스태스크로 할당 시키는 잡(job) 트랙커와; 상기 슬레이브 노드의 HDFS 디렉터리구조를 관리하고 상기 가상 디스크를 할당하기 위한 디스크 저장공간과 관련된 정보를 VM 디바이스 관리부에 전달하는 마스터 노드 관리부와; 상기 슬레이브 노드와 통신 접속하여 데이터 통신을 수행하는 통신인터페이스;를 포함한다.
바람직하게는, 상기 슬레이브 노드는, 상기 잡(job) 트랙커의 잡 관리부가 우선순위에 따라 할당해준 맵태스크와 리듀스태스크를 관리하고 실행하는 태스크 트랙커와; 상기 슬레이브 노드의 가용 리소스 정보를 마스터 노드의 리소스 분석부에 하트비트(heartbeat)로 전달하는 리소스 모니터부와; 맵리듀스 연산을 실행하기 위한 실제 데이터가 저장되어 있는 HDFS와; 상기 HDFS에 저장된 데이터를 관리하는 슬레이브 노드 관리부와; 상기 클라우드 관리서버에 포함되어 있는 VM 디바이스 관리부의 요청에 따라 디바이스 장치의 추가/삭제에 필요한 정보전달을 수행 하거나 상기 VM 디바이스 관리부로부터 요청된 스크립트의 실행을 통해 디바이스 장치의 추가/삭제를 진행하는 에이전트부와; 상기 마스터 노드와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스부;를 포함한다.
삭제
바람직하게는, 상기 클라우드 호스트서버는, 상기 클라우드 관리서버의 VM 노드 연결부의 요청에 따라 활성화된 VM 노드를 관리하는 VM 노드 관리부와; 상기 VM 노드를 실행하는 환경을 구성하는 하이퍼바이저(Hypervisor) 엔진을 포함하고, 상기 하이퍼바이저 엔진을 통해 가상화에 필요한 모든 기능을 제공하는 가상화 관리부와; 상기 클라우드 관리서버에 포함되어 있는 클러스터 관리부의 요청에 따라 필요한 VM 노드의 생성, 실행, 삭제 요청을 실행하는 클러스터 에이전트부와; 상기 클라우드 호스트서버의 CPU, 메모리, 디스크 사용량, VM 노드의 사용량을 리소스풀 관리부에 전달하는 리소스 모니터부와; 상기 클라우드 관리서버에 포함되어 있는 VM 디바이스 관리부를 통해 전달받은 VM 노드의 ID값과 디바이스 장치의 ID값을 사용하여 가상 디스크 또는 VGPU를 지정된 VM 노드에 연결해주는 VM 디바이스 연결부와; 상기 클라우드 관리서버와 네트워크 통신망을 통해 데이터 통신을 수행하는 통신 인터페이스부;를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제2양태는 클라우드 장치를 이용하여 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 방법으로서, 상기 클라우드 장치는, 잡(job)을 수행하는 잡 클라이언트를 포함하는 클라이언트와; 상기 잡 클라이언트에서 요청된 잡(job)에 ID를 할당하며, 요청된 잡(job)을 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하고 평가된 상기 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당 관리하는 잡(job) 트랙커를 포함하는 마스터 노드와; 태스크 트랙커를 포함하고, 상기 잡(job) 트랙커의 요청에 의해 할당된 잡(job)을 맵태스크와 리듀스태스크로서 상기 태스크 트랙커에 할당하고 태스크를 실행하는 적어도 하나의 슬레이브 노드와; 상기 잡(job) 트랙커의 요청에 의해 VM 노드를 슬레이브 노드로 할당하고 상기 슬레이브 노드의 태스크 트랙커를 통해 맵태스크 또는 리듀스태스크를 실행시키고 상기 슬레이브 노드에 디바이스 장치를 할당해주는 클라우드 관리서버와; 상기 클라우드 관리서버의 클러스터 관리부의 요청에 따라 VM 노드를 슬레이브 노드로 할당하여 VM(Virtual Machine)자원을 제공하고 상기 슬레이브 노드에 디바이스 장치를 연결해 주는 클라우드 호스트서버;를 포함하고, 상기 방법은, 상기 잡 클라이언트에서 요청된 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당하고 슬레이브 노드에 필요한 디바이스 장치를 추가하는 단계와; 상기 잡(job) 트랙커의 요청에 의해 할당된 잡(job)을 슬레이브 노드의 태스크 트랙커에 각각 맵태스크와 리듀스태스크로 할당하고, 맵태스크에서 생성된 중간 산출물을 리듀스태스크에 전달하는 단계와; 상기 잡(job)이 완료된 슬레이브 노드의 디바이스 장치와 슬레이브 노드의 자원을 클라우드 관리서버를 통해 VM 리소스풀로 환원하는 단계와; 맵리듀스 연산이 완료 되지 않았으면, 맵태스크에서 생성된 중간 산출물을 입력으로 리듀스태스크를 실행하여 결과 데이터를 슬레이브 노드의 HDFS에 저장하는 단계;를 구비하며, 방송용 빅데이터 지식 트리플을 처리하는 하둡 시스템을 지원하기 위해 클라이언트가 요청한 잡(job)의 업무량을 컴파일 타임 또는 런타임에 실시간으로 분석하고 이에 필요한 클라우드 장치의 가상머신(virtual machine :VM) 리소스풀(resource pool)로부터 여유 가상 머신(VM)을 계산한 후 자동으로 VM 노드를 증감하여 잡(job)을 재할당할 때 상기 슬레이브 노드의 로컬데이터 영역을 가상디스크로 마운트(mount)하여 맵 연산으로 생성되는 중간데이터의 입출력 속도를 향상시키고, 잡 클라이언트에서 요청된 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당하고 슬레이브 노드에 필요한 디바이스 장치를 추가하는 단계는, 클라이언트에서 요청된 잡(job)을 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하는 단계와; 평가된 잡(job)의 크기에 따라 슬레이브 노드로 할당할 VM 노드를 클라우드 관리서버에 요청하는 단계와; 활성화된 VM 노드가 없다면, 클라우드 관리서버에 포함되어 있는 클러스터 관리부의 요청에 따라 필요한 VM 노드의 생성 및 실행 요청을 수행하는 단계와; VM 노드를 슬레이브 노드로 할당하고 VM 노드의 ID값과 디바이스 장치의 ID값을 사용하여 가상 디스크, VGPU, 프린터 중 적어도 하나를 포함하는 디바이스 장치 중의 하나 이상을 슬레이브 노드에 연결해 주는 단계;를 포함한다.
삭제
바람직하게는, 상기 잡(job)이 완료된 슬레이브 노드의 디바이스 장치와 슬레이브 노드의 자원을 클라우드 관리서버를 통해 VM 리소스풀로 환원하는 단계는, VM 정보 저장부에 저장되어 있는 데이터에 기반하여 슬레이브 노드에 연결되어 있는 디바이스 장치의 연결을 해지하고 슬레이브 노드 할당을 해지하여 VM 노드로 환원하는 단계와; 디바이스 장치의 연결 해지 정보를 VM 정보 저장부에 기록하는 단계와; 상기 VM 노드를 재사용할 예정이면, VM 노드 관리 정책에 따라 일정시간 휴면 VM 노드 상태로 유지하는 단계와; 상기 VM 노드를 재사용하지 않을 예정이면, VM 노드에 할당된 CPU, 메모리, HDD, 네트워크 자원을 회수하여 VM 리소스풀에 환원하는 단계;를 포함한다.
이상과 같은 구성에 따라서 본 발명은, 슬레이브 노드의 맵 연산을 진행하여 생성된 중간 산출물을 저장하는 가상디스크의 데이터 영역을 슬레이브 노드가 실제 동작하는 클라우드 호스트서버에 가장 근접한 물리적인 디스크에 할당한다. 따라서 슬레이브 노드의 가상화로 수반되는 중간 산출물 저장으로 인한 시스템 성능저하를 감소시킬 수 있다.
또한, VGPU를 맵리듀스 연산에 사용하는 종래 시스템(등록특허공보 제10-1245994호)에서 디바이스 장치인 VGPU를 슬레이브 노드 별로 할당하여 슬레이브 노드에서 맵리듀스 연산의 성능을 높여 줄 수 있다.
도 1은 본 발명의 일실시예에 따른 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템의 구성도.
도 2는 본 발명의 일실시예에 따른 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템의 클라이언트, 마스터 노드, 슬레이브 노드의 내부 구성도.
도 3은 본 발명의 일실시예에 따른 마스터 노드에 내장된 잡 트랙커의 내부 구성도.
도 4는 본 발명의 일실시예에 따른 슬레이브 노드에 내장된 태스크 트랙커의 내부 구성도.
도 5는 본 발명의 일실시예에 따른 자동 분산병렬 처리 하둡시스템을 지원하는 클라우드 장치의 내부 구성도.
도 6은 본 발명의 일실시예에 따른 자동 분산병렬 처리 하둡시스템을 지원하는 클라우드 구동 방법에서 맵리듀스가 실행되는 흐름을 도시한 순서도.
도 7은 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 방법의 전체적인 실행 과정을 나타낸 흐름도.
도 8은 본 발명의 일실시예에 따른 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 방법에 있어서, 슬레이브 노드와 슬레이브 노드에 디바이스 장치를 연결하는 과정을 나타낸 흐름도.
도 9는 본 발명의 일실시예에 따른 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 방법에 있어서, 잡(job)이 완료된 슬레이브 노드에 연결된 디바이스 장치와 슬레이브 노드를 환원하는 과정을 나타낸 흐름도.
이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템(이하 “동적 디바이스 연결 시스템”을 혼용함)의 구성을 개략적으로 나타낸 도면이다.
도 1에 도시한 바와 같이, 본 발명의 일실시예에 따라서 구성되는 동적 디바이스 연결 시스템은 클라이언트(110)와, 물리적 서버팜(104)과, 이 물리적 서버팜(104) 상에서 가상 머신을 제공하는 VM 리소스풀(102)과, 가상 디스크(134a)와, VM 리소스풀(102)과 가상 디스크(134a)를 연결하는 스토리지 네트워크 통신망(160a)과, 클라이언트(110)와, 네트워크 통신망(160)을 포함할 수 있으며, 네트워크 통신망(160)은 클라이언트(110), VM리소스풀(102), 및 물리적 서버팜(104)을 상호 연결하는 기능을 한다. 이러한 구성을 통해 클라이언트(110)가 요청한 잡(job)의 업무량을 컴파일타임 또는 런타임에 실시간으로 분석하여 VM 리소스풀(102)로부터 여유 VM을 계산한 후 자동으로 VM(Virtual Machine) 노드를 증감하고 잡(job)을 재할당하여 구동시킴으로써 잡(job)의 수행시간을 줄일 수 있다. 클라이언트(110), 물리적 서버팜(104), VM리소스풀(102)을 함께 클라우드 장치를 구성하는 요소가 될 수도 있다.
도 1 내지 도 5에 도시된 바와 같이, 클라이언트(110)는 맵리듀스 잡(job)을 수행하는 잡 클라이언트(111)와, 외부와 통신을 수행하는 통신 인터페이스(112)를 포함한다. VM 리소스풀(102)은 클라이언트(110)의 잡 클라이언트(111)에서 요청된 잡(job)에 아이디(Identification)를 할당하고 요청된 잡(job)을 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하여 이 평가된 잡(job)을 슬레이브 노드(130)의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당 관리하는 잡(job) 트랙커(121)(도 2 참조)를 실행하는 마스터 노드(120)와, 잡(job) 트랙커(121)의 요청에 의해 할당된 잡(job)을 맵태스크와 리듀스태스크로 태스크 트랙커(131)(도 2 참조)에 할당하고 실행하는 슬레이브 노드(130)를 포함한다. 슬레이브 노드(130)는 복수로 구성될 수 있으며, 도 1의 예시에는 3개의 슬레이브 노드(130a, 130b, 130c)가 표시되어 있으나, 그 개수에 제한이 있는 것은 아니다. 물리적 서버팜(104)은 잡(job) 트랙커(121)의 요청에 의해 VM 노드를 슬레이브 노드(130a~130c)로서 각각 할당하여 슬레이브 노드(130a~130c)의 태스크 트랙커(131)를 통해 맵태스크 또는 리듀스태스크를 실행시키고 슬레이브 노드(130a~130c)에 디바이스 장치를 할당해주는 클라우드 관리서버(140)와, 클라우드 관리서버(140)의 클러스터 관리부(142)(도 5 참조)의 요청에 따라 VM 노드를 슬레이브 노드(130a~130c)로서 할당하여 VM(Virtual Machine)자원을 제공하고 슬레이브 노드에 디바이스 장치를 연결해 주는 클라우드 호스트서버(150)를 포함한다.
삭제
가상 디스크 풀(134a)은 복수의 가상 디스크(130a-1 ~ 130c-1)를 포함하는 한편, 슬레이브 노드(130)에 연결되어 있으며, 슬레이브 노드(130)가 맵 연산을 진행할 때 생성되는 중간 산출물을 개별 가상 디스크(130a-1 ~ 130c-1)에 적절히 분배하여 저장한다. 도 1에 도시한 실시예에 있어서, 가상 디스크(130a-1 ~ 130c-1)는 기능상 별도의 스토리지 네트워크 통신망(160a)을 통하여 연결되어 있지만, 가상 디스크 풀(134a)이 제공하는 구성에 따라 기존의 네트워크 통신망(160)이나 별도의 통신 인터페이스를 사용할 수도 있다. 가상 디스크 풀(134a)은 물리적 서버팜(104)에 구성되어 있는 물리적인 디바이스 장치 중에 디스크를 기준으로 설명할 때 사용되는 개념으로 로컬 하드디스크, NAS(Network Array Storage), SAN(Storage area network), HDFS(Hadoop Distributed File System)과 같은 분산 파일 시스템 등으로 구성될 수 있다. 만일 물리적 서버팜(104)에 구성된 디바이스 장치가 VGA카드인 경우, 가상 디스크 풀(134a)은 VGPU 풀로 변경하여 구성 될 수도 있다.
또한, VM 노드는 역할에 따라서 마스터 노드 또는 슬레이브 노드로 할당될 수도 있고, 필요에 따라서 새로이 생성될 수 있는 범용적인 VM 노드 이다.
클라이언트(110)는 맵리듀스(MapReduce) 프로그램을 통해 잡(job)을 실행할 잡 클라이언트(111)를 생성하고, 네트워크 통신망(160)을 통해 마스터 노드(120)에 접속한 후 잡(job) 트랙커(121)로부터 잡 아이디(Job ID)를 할당 받고, 도 6에 도시한 바와 같이 잡(job)에 할당된 입력파일(601)을 분석하여 입력 스플릿 1~4(602a~602d) 데이터를 생성하고, 잡(job) 트랙커(121)에게 맵리듀스 연산을 시작할 준비가 되었음을 알려주는 역할을 수행한다. 도2에 도시된 바와 같이, 클라이언트(110)는 슬레이브 노드(130)의 HDFS(134)에 저장되어 있는 입력파일(601)을 분석하여 입력 스플릿 1~4(602a~602d), 설정 파일, MapReduce.jar 파일을 슬레이브 노드(130)의 HDFS(134)에 저장하고, 마스터 노드(120)의 잡(job) 트랙커(121)에게 맵리듀스 연산을 시작할 준비가 되었음을 알려주는 잡 클라이언트 (111)와, 마스터 노드(120) 와 슬레이브 노드(130)에 데이터 통신을 수행하는 통신 인터페이스(112)를 포함한다.
예를 들면, 입력파일(601)은 슬레이브 노드(130)의 HDFS(134)에 64MB단위의 청크(chunk)로 분할되어 저장되어 있으며, 파일 포맷은 라인(line) 기반의 로그(log) 파일, 바이너리(binary) 포맷, 멀티라인(multiline)의 입력 레코드 등 어떤 것이든 가능하다.
이때, 입력 스플릿1~4(602a~602d)은 입력파일(601)의 종류에 따라 맵태스크가 처리할 수 있도록 어떻게 분할할지 지정한 입력 스플릿1~4(602a~602d) 데이터와 맵태스크가 쉽게 액세스할 수 있는 키(key)와 값(value)의 쌍으로 구성된 입력 스플릿 1~4(602a~602d) 정보로 구성된다. 입력 스플릿 1~4(602a~602d) 정보의 키(key)와 값(value)은 파일 포맷에 따라 분해하는 방법이 달라진다.
입력 스플릿 1~4(602a~602d)의 묶음은 맵태스크를 구성하는 작업의 단위가 되며, 잡(job)은 여러 개 또는 수백 개의 태스크로 구성된다. 여기서 입력 스플릿은 4개로 표현되어 있지만, 그 개수에 제한이 있는 것은 아니다.
클라우드 장치의 VM 리소스풀(102) 상에서 동작하는 마스터 노드(120)는 잡 클라이언트(111)가 요청한 잡(job)을 슬레이브 노드(130)의 태스크 트랙커(131)에 맵태스크와 리듀스태스크로서 할당하고 잡(job)을 관리하는 역할을 수행한다., 도 2에 도시된 바와 같이, 마스터 노드(120)는 잡 클라이언트(111)가 요청한 잡(job)을 슬레이브 노드(130)의 태스크 트랙커(131)에 맵태스크와 리듀스태스크로 할당 시키는 잡(job) 트랙커(121)와, 슬레이브 노드(130)의HDFS(134) 디렉터리구조를 관리하고 가상 디스크를 할당하기 위한 디스크 저장공간과 관련된 정보를 VM 디바이스 관리부(144)(도 5의 물리적 서버팜(140) 참조)에 전달하는 마스터 노드 관리부(122)와, 슬레이브 노드(130)와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스(123)를 포함한다.
잡(job) 트랙커(121)는 슬레이브 노드(130)의 리소스와 클라우드 관리서버(140)의 리소스풀 관리부(143)가 관리하는 VM 리소스풀(102)의 정보를 분석하여 잡 클라이언트(111)가 요청한 잡(job)을 맵태스크(Map Task)와 리듀스태스크(Reduce Task)로서 슬레이브 노드(130)의 태스크 트랙커(131)에 할당 시킨다. 즉, 도3에 도시된 바와 같이, 잡 트래커(121)는 요청된 잡(job)을 큐(queue)로 관리하고 슬레이브 노드(130)의 태스크 트랙커(131)에 잡(job)을 할당하는 잡 관리부(121a)와, 슬레이브 노드(130)의 리소스와 클라우드 관리서버(140)가 관리하는 VM 리소스풀(102)을 분석하는 리소스 분석부(121b)와, 태스크 트랙커(131)에 할당된 잡(job)을 처리하기 위한 시간을 분석하는 잡 분석부(121c)를 포함한다.
먼저, 잡 트랙커(121)의 잡 관리부(121a)는 잡 클라이언트(111)의 요청이 있으면 잡(job) ID를 할당하고, 잡 큐(job queue)를 관리한다. 잡 관리부(121a)는 주기적으로 슬레이브 노드(130)의 서버 가용 리소스 정보와 클라우드 관리서버(140)가 제공하는 VM 리소스 풀(102)의 정보를 리소스 분석부(121b)로부터 전달받고, 잡 분석부(121c)에서 분석한 잡(job) 실행 완료시간을 사용 하여 아직 할당되지 않은 잡(job) 을 잡 큐(Job Queue)에 재구성 하여 기존에 실행중인 슬레이브 노드(130a~130c)와 신규로 생성된 슬레이브 노드(130e~130g)의 태스크 트랙커(131)에 재구성된 잡(job)을 컴파일타임에 정적으로 또는 런타임에 동적으로 할당하여 맵리듀스 연산 성능을 향상시킨다.
잡 트랙커(121)의 리소스 분석부(121b)는 슬레이브 노드(130)의 리소스 모니터부(132)로부터 주기적으로 CPU, 메모리, 디스크 사용량, 현재 실행 중인 태스크 개수, 실행 가능한 최대 태스크 개수, 신규 태스크 실행 가능 여부와 같은 태스크 트랙커(131)의 실행 정보를 하트비트(heartbeat)로 받아 슬레이브 노드(130)의 서버 가용 리소스 정보를 분석하고, 클라우드 관리서버(140)의 리소스풀 관리부(143)로부터 가용 VM 리소스풀(102)의 정보를 받아 분석하는 역할을 수행한다.
끝으로, 잡 트랙커(121)의 잡 분석부(121c)는 잡(job)을 처리하기 위한 입력 스플릿 1~4(602a~602d)에 대한 맵태스크 처리 시간, 리듀스태스크 처리 시간, 잡(job)실행 완료 시간을 분석하여, 잡 관리부(121a)가 슬레이브 노드(130)의 태스크 트랙커(131)에 맵태스크와 리듀스태스크를 할당할 수 있는 정보를 제공하는 역할을 수행한다.
이때, 잡 분석부(121c)가 분석하는 잡(job)실행 완료 시간은 입력파일(601)(도 6 참조)의 입력포맷과 입력 스플릿의 크기, 맵리듀스 연산의 종류에 따라 계산법을 분리하여 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하여 잡 관리부(121a)가 잡(job)을 큐(queue)에 재구성할 때 사용된다.
여기서, 입력 스플릿 1~4(602a~602d)은 잡(job)을 수행하기 위한 입력파일(601)을 슬레이브 노드(130)가 처리할 수 있는 입력데이터로 사용하기 위해 키(key)와 값(value) 형태로 작게 나눈 데이터이다.
클라우드 장치의 VM 리소스 풀(102)의 슬레이브 노드(130)는 잡(job) 트랙커(121)의 요청에 따라 입력 스플릿 1~4 (602a~602d)을 입력 데이터로 사용하여 맵태스크를 실행한 후 그 결과에 따른 중간 산출물을 입력데이터로 하여 리듀스태스크를 실행하여 맵리듀스 연산의 결과를 얻어내는 역할을 수행한다. 도2에 도시된 바와 같이, 슬레이브 노드(130)는 마스터 노드(120)의 잡(job) 트랙커(121)의 잡 관리부(121a)가 우선순위에 따라 할당해준 맵태스크와 리듀스태스크를 관리하여 실행하는 태스크 트랙커(131)와, 슬레이브 노드(130)의 가용 리소스 정보를 마스터 노드(120)의 리소스 분석부(121b)에 하트비트(heartbeat)로 전달하는 리소스 모니터부(132)와, 맵리듀스 연산을 실행하기 위한 실제 데이터가 저장되어 있는 HDFS(134)와, HDFS(134)에 저장된 데이터를 관리하는 슬레이브 노드 관리부(133)와, 클라우드 관리서버(140)에있는 VM 디바이스 관리부(144)의 요청에 따라 디바이스 장치의 추가/삭제에 필요한 정보를 전달 하거나 VM 디바이스 관리부(144)로부터 요청된 스크립트를 실행을 통해 디바이스 장치의 추가/삭제를 진행하는 에이전트부(135)와, 상기 마스터 노드(120)와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스(136)를 포함한다.
리소스 모니터부(132)는 마스터 노드(120)의 리소스 분석부(121b)에(도 3 참조) 주기적으로 슬레이브 노드(130)의 상태정보인 CPU, 메모리, 디스크와 같은 슬레이브 노드(130)의 서버 가용 리소스 정보와 현재 실행 중인 태스크 개수, 실행 가능한 최대 태스크 개수, 신규 태스크 실행 가능 여부와 같은 태스크 트랙커(131)의 실행 정보를 전달한다.
도 4에 도시된 바와 같이, 태스크 트랙커(131)는 마스터 노드(120)의 잡 관리부(121a)가 할당해 준 맵태스크와 리듀스태스크를 관리하는 태스크 관리부(131a)와, 맵태스크의 실행으로 인해 생성된 중간 산출물을 리듀스태스크가 진행할 수 있는 입력 데이터로 변환해주는 역할을 하는 분할 관리부(131b)를 포함한다.. 맵태스크의 실행으로 인해 생성된 중간 산출물은 개별 슬레이브 노드 (130a ~ 130c)에 연결되어 있는 개별 가상 디스크(130a-1 ~ 130c-1)에 저장된다.
태스크 관리부(131a)는 잡(job) 트랙커(121)의 잡 관리부(121a)가 할당해준 입력 스플릿 1~4(602a~602d)를 입력 데이터로 사용하여 맵태스크를 실행하고 그 출력 데이터를 메모리 버퍼에 저장하며, 맵태스크가 완료되면 잡(job) 트랙커(121)에 해당 맵태스크의 상태와 맵태스크의 출력 데이터 경로를 알려준다.
또한 태스크 관리부(131a)는 잡(job) 트랙커(121)의 잡 관리부(121a)의 요청으로 리듀스태스크를 실행하고, 리듀스태스크는 주기적으로 잡 관리부(121a)에 맵태스크의 출력 데이터 경로를 물어보며 출력데이터를 로컬의 슬레이브 노드(130)로 복사한다.
분할 관리부(131b)는 여러 개의 슬레이브 노드(130)에서 무질서하게 존재하는 맵태스크의 실행으로 인해 생성된 중간 산출물을 키(key) 값에 따라 교환, 정렬한 후 리듀스태스크에 전달하고, 각각의 중간 산출물이 처리될 리듀스태스크는 슬레이브 노드(130)의 HDFS(134)에 하나의 출력파일(output file)로 병합하여 저장시킨다.
태스크 관리부(131a)는 잡(job) 트랙커(121)의 잡 관리부(121a)의 요청으로 분할 관리부(131b)가 처리한 데이터를 입력 데이터로 사용하여 리듀스태스크를 실행하고 최종 결과데이터를 얻어낸다.
클라우드 관리서버(140)는 잡 관리부(121a)의 요청에 따라 VM 노드를 슬레이브 노드(130e~130g)로서 할당하고 슬레이브 노드(130e~130g)의 태스크 트랙커(131)를 통해 맵태스크 또는 리듀스태스크를 실행시킬 수 있다., 도5에 도시된 바와 같이, 클라우드 관리서버(140)는 클라우드 호스트서버(150)에서 동작하는 VM 노드에 연결하여 제어하는 VM 노드 연결부(141)와, 클라우드 호스트서버(150)에서 동작하는 VM 노드의 생성/실행/삭제를 관리하는 클러스터 관리부(142)와, VM 노드가 사용하는 리소스풀을 관리하는 리소스풀 관리부(143)와, VM 노드에 연결할 가상 디스크(130a-1 ~ 130c-1)(도1, 도6 참조), VGPU(Virtual Graphic Process Unit), 프린터와 같은 디바이스의 장치를 VM 노드별로 구분하여 추가/삭제에 필요한 정보들을 관리하고 진행하는 VM 디바이스 관리부(144)와, VM 노드의 정보와 디바이스 장치들을 고유의 ID로 구분하여 추가/삭제에 필요한 정보를 저장하는 VM 정보 저장부(145)와, 상기 마스터 노드(130)와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스(146)를 포함한다.
먼저, VM 노드 연결부(141)는 현재 클라우드 호스트서버(150)의 자원이 할당되어 클라우드 호스트서버(150)의 VM 노드 관리부(151)에서 관리되고 있는 VM 노드에 접속할 수 있는 프로토콜을 제공한다.
클러스터 관리부(142)는 클라우드 호스트서버(150)에서 제공하는 VM 노드를 하나의 VM 클러스터로 인식하여, 잡 관리부(121a)의 요청에 따라 클러스터 에이전트부(153)에 명령을 보내 VM 노드를 할당하거나 수거 하는 기능을 수행한다.
리소스풀 관리부(143)은 가상화 클라우드 관리서버(140)가 VM 노드를 제공할 때 사용할 수 있는 VM 리소스풀(102)을 관리하고, 각각의 클라우드 호스트서버(150)의 증감에 따른 상태변화에 따라 리소스의 용량을 계산하는 기능을 수행하고, 마스터 노드(120)의 리소스 분석부(121b)에 주기적으로 VM 리소스풀(102)의 정보를 전달하는 기능을 수행한다.
VM 리소스풀(102)은 VM 노드(130e~130g)에 CPU, 메모리, HDD, 네트워크 자원을 할당하여 마스터 노드 또는 슬레이브 노드(130)로 동작하도록 자원을 제공하는 가상화 리소스들의 풀이다.
클라우드 호스트서버(150)는 클라우드 관리서버(140)의 클러스터 관리부(142)의 요청에 따라 VM 노드를 슬레이브 노드(130)로 할당하여 VM(Virtual Machine)자원을 제공하는 역할을 한다. 도5에 도시된 바와 같이, 클라우드 호스트서버(150)는 클라우드 관리서버(140)의 VM 노드 연결부(141)의 요청에 따라 활성화된 VM 노드를 관리하는 VM 노드 관리부(151)와, VM 노드를 실행하는 환경을 구성하는 하이퍼바이저(Hypervisor) 엔진을 통해 가상화에 필요한 모든 기능을 제공하는 가상화 관리부(152)와, 클라우드 관리서버(140)에 포함되어 있는된 클러스터 관리부(142)의 요청에 따라 필요한 VM 노드의 생성, 실행, 삭제 요청을 실행하는 클러스터 에이전트부(153)와, 클라우드 호스트서버(150)의 CPU, 메모리, 디스크 사용량, VM 노드의 사용량을 리소스풀 관리부(143)에 전달하는 리소스 모니터부(154)와, 클라우드 관리서버(140)에 포함되어 있는 VM 디바이스 관리부(144)를 통해 전달받은 VM 노드의 ID값과 디바이스 장치의 ID값을 사용하여 가상 디스크 또는 VGPU를 지정된 VM 노드에 연결해주는 VM 디바이스 연결부(155)와, 클라우드 관리서버(140)와 네트워크 통신망(160)을 통해 데이터 통신을 수행하는 통신 인터페이스(156)를 포함한다.. 그리고, 이와 같은 클라우드 호스트 서버(150)는 다수의 클라우드 호스트 서버(150a∼150c)로 구성될 수 있다. 본 실시예에서는 3개의 호스트 서버를 표현하고 있지만, 이 호스트 서버의 개수에 특별히 제한을 두는 것은 아니다.
VM 노드는 CPU, 메모리, HDD, 네트워크 자원을 클라우드 호스트서버(150)로부터 제공을 받아 가상머신(Virtual Machine)의 역할을 수행하며, 로컬의 물리적인 슬레이브 노드(130)와 동일한 동작을 수행한다.
이하, 도 7 및 도 9를 참조하여 본 발명의 일실시예에 따른 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 그 방법의 동작에 대하여 설명하며, 특히 슬레이브 노드에 디바이스 장치를 연결하고 환원하는방법에 대하여 상세하게 설명한다.
도 7 에 도시된 바와 같이, 잡 클라이언트(111)에서 요청된 잡(job)을 슬레이브 노드(130)의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당하고 슬레이브 노드(130)에 필요한 디바이스 장치로서, 예를 들면, 가상 디스크(130a-1 ~ 130c-1)를 추가한다(S100).
도 8은 보다 구체적으로 슬레이브 노드(130)를 할당하고 슬레이브 노드(130)에 필요한 디바이스 장치를 추가하는 방법을 설명하는 흐름도이다.
도 8을 참조하면, 먼저, 클라이언트(110)로부터 요청된 잡(job)에 대해서 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가한다(S110).
평가된 잡(job)의 크기에 따라 슬레이브 노드(130)로 할당할 VM 노드를 클라우드 관리서버(140)에 요청한다(S120).
활성화된 VM 노드가 없다면, 클라우드 관리서버(140)에 있는 클러스터 관리부(142)의 요청에 따라 필요한 VM 노드의 생성 및 실행 요청을 수행한다(S130).
VM 노드를 슬레이브 노드(130)로 할당하고 VM 노드의 ID값과 디바이스 장치의 ID값을 사용하여 가상 디스크, VGPU, 프린터와 같은 디바이스 장치 중의 하나 이상을 슬레이브 노드(130)에 연결해 준다(S140).
상술한 바와 같이, 잡(job) 트랙커(121)의 요청에 의해 할당된 잡(job)을 슬레이브 노드(130)의 태스크 트랙커(131)에 각각 맵태스크와 리듀스태스크로 할당하고, 맵태스크에서 생성된 중간 산출물을 리듀스태스크에 전달한다(S200).
상기 잡(job)이 완료된 슬레이브 노드(130)의 디바이스 장치와 슬레이브 노드(130)의 자원을 클라우드 관리서버(140)를 통해 VM 리소스풀(102)로 환원한다 (S300).
도 9를 참조하여 보다 구체적으로 슬레이브 노드(130)의 디바이스 장치와 슬레이브 노드(130)의 자원을 환원하는 방법을 설명하면, VM 정보 저장부(145)에 저장되어 있는 데이터에 기반하여 슬레이브 노드(130)에 연결되어 있는 디바이스 장치의 연결을 해지하고 슬레이브 노드(130)에 관한 할당을 해지하여 VM 노드로 환원한다(S310).
디바이스 장치의 연결 해지 정보를 VM 정보 저장부(145)에 기록한다(S320).
상기 VM 노드를 재사용할 예정이면, VM 노드 관리 정책에 따라 일정시간 휴면 VM 노드 상태로 유지 한다(S330).
상기 VM 노드를 재사용하지 않을 예정이면, VM 노드에 할당된 CPU, 메모리, HDD, 네트워크 자원을 회수하여 VM리소스풀(102)에 환원한다(S340).
상술한 바와 같이, 맵리듀스 연산이 완료 되지 않았으면, 맵태스크에서 생성된 중간 산출물을 입력으로 하여 리듀스태스크를 실행하고 그 결과 데이터를 슬레이브 노드(130)의 HDFS에 저장한다(S400).
맵리듀스 연산이 완료되면 프로세스를 종료한다.
이상, 본 발명의 바람직한 실시예에 대하여 설명하였으나, 본 발명은 이에 한정되지 않으며, 다음의 특허청구범위를 일탈하지 않고도 당분야의 통상의 기술자에 의해 여러 가지 변경 및 변형이 가능함은 자명한 것이다.
102: VM 리소스풀 104: 물리서버팜
110: 클라이언트 111: 잡 클라이언트
112: 통신 인터페이스 120: 마스터 노드
121: 잡 트랙커 121a: 잡 관리부
121b: 리소스 분석부 121c: 잡 분석부
122: 마스터 노드 관리부 123: 통신 인터페이스
130(130a~130g): 슬레이브 노드 130a-1~130g~1: 가상디스크
131: 태스크 트랙커 131a: 태스크 관리부
131b: 분할 관리부 132: 리소스 모니터부
133: 슬레이브 노드 관리부 134: HDFS
134a: 가상디스크 풀 135: 에이전트부
136: 통신 인터페이스 140: 클라우드 관리서버
141: VM 노드 연결부 142: 클러스터 관리부
143: 리소스풀 관리부 144: VM 디바이스 관리부
145: VM 정보 저장부 146: 통신 인터페이스
150: 클라우드 호스트서버 151: VM 노드 관리부
152: 가상화 관리부 153: 클러스터 에이전트부
154: 리소스 모니터부 155: VM 디바이스 연결부
156: 통신 인터페이스 160: 네트워크 통신망
160a: 스토리지 네트워크 통신망

Claims (8)

  1. 대용량 방송용 빅데이터 분산 병렬처리를 하는 동적 디바이스 연결 시스템으로서, 상기 동적 디바이스 연결 시스템은 클라우드 장치를 포함하고, 상기 클라우드 장치는: 잡(job)을 수행하는 잡 클라이언트를 포함하는 클라이언트와;
    상기 잡 클라이언트에서 요청된 잡(job)에 ID를 할당하며, 요청된 잡(job)을 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하고 평가된 상기 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당 관리하는 잡(job) 트랙커를 포함하는 마스터 노드와;
    태스크 트랙커를 포함하고, 상기 잡(job) 트랙커의 요청에 의해 할당된 잡(job)을 맵태스크와 리듀스태스크로서 상기 태스크 트랙커에 할당하고 태스크를 실행하는 적어도 하나의 슬레이브 노드와;
    상기 잡(job) 트랙커의 요청에 의해 VM 노드를 슬레이브 노드로 할당하고 상기 슬레이브 노드의 태스크 트랙커를 통해 맵태스크 또는 리듀스태스크를 실행시키고 상기 슬레이브 노드에 디바이스 장치를 할당해주는 클라우드 관리서버와;
    상기 클라우드 관리서버의 클러스터 관리부의 요청에 따라 VM 노드를 슬레이브 노드로 할당하여 VM(Virtual Machine)자원을 제공하고 상기 슬레이브 노드에 디바이스 장치를 연결해 주는 클라우드 호스트서버;
    를 구비하고,
    방송용 빅데이터 지식 트리플을 처리하는 하둡 시스템을 지원하기 위해 상기 클라우드 장치에 기반하여 상기 클라이언트가 요청한 잡(job)의 업무량을 컴파일 타임 또는 런타임에 실시간으로 분석하고 이에 필요한 클라우드 장치의 가상머신(virtual machine :VM) 리소스풀(resource pool)로부터 여유 가상 머신(VM)을 계산한 후 자동으로 VM 노드를 증감하여 잡(job)을 재할당할 때 상기 슬레이브 노드의 로컬데이터 영역을 가상 디스크로 마운트(mount)하여 맵 연산으로 생성되는 중간 데이터의 입출력 속도를 향상시키며,
    상기 클라우드 관리서버는,
    상기 클라우드 호스트서버에서 동작하는 VM 노드에 연결하여 제어하는 VM 노드 연결부와;
    상기 클라우드 호스트서버에서 동작하는 VM 노드의 생성/실행/삭제를 관리하는 클러스터 관리부와;
    상기 VM 노드가 사용하는 리소스풀을 관리하는 리소스풀 관리부와;
    상기 VM 노드에 연결할 가상디스크, VGPU(Virtual Graphic Process Unit), 프린터 중 적어도 하나를 포함하는 디바이스 장치를 VM 노드별로 구분하여 추가/삭제에 필요한 정보들을 관리하고 동작을 진행시키는 VM 디바이스 관리부와;
    상기 VM 노드의 정보와 디바이스 장치를 고유의 ID로 구분하여 추가/삭제에 필요한 정보를 저장하는 VM 정보 저장부와;
    상기 마스터 노드와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스부;
    를 포함하는 것을 특징으로 하는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템.
  2. 제 1항에 있어서,
    상기 마스터 노드는,
    상기 잡 클라이언트가 요청한 잡(job)을 슬레이브 노드의 태스크 트랙커에 맵태스크와 리듀스태스크로 할당 시키는 잡(job) 트랙커와;
    상기 슬레이브 노드의HDFS 디렉터리구조를 관리하고 상기 가상 디스크를 할당하기 위한 디스크 저장공간과 관련된 정보를 VM 디바이스 관리부에 전달하는 마스터 노드 관리부와;
    상기 슬레이브 노드와 통신 접속하여 데이터 통신을 수행하는 통신인터페이스;
    를 포함하는 것을 특징으로 하는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템.
  3. 제 1항에 있어서,
    상기 슬레이브 노드는,
    상기 잡(job) 트랙커의 잡 관리부가 우선순위에 따라 할당해준 맵태스크와 리듀스태스크를 관리하고 실행하는 태스크 트랙커와;
    상기 슬레이브 노드의 가용 리소스 정보를 마스터 노드의 리소스 분석부에 하트비트(heartbeat)로 전달하는 리소스 모니터부와;
    맵리듀스 연산을 실행하기 위한 실제 데이터가 저장되어 있는 HDFS와;
    상기 HDFS에 저장된 데이터를 관리하는 슬레이브 노드 관리부와;
    상기 클라우드 관리서버에 포함되어 있는 VM 디바이스 관리부의 요청에 따라 디바이스 장치의 추가/삭제에 필요한 정보전달을 수행 하거나 상기 VM 디바이스 관리부로부터 요청된 스크립트의 실행을 통해 디바이스 장치의 추가/삭제를 진행하는 에이전트부와;
    상기 마스터 노드와 통신 접속하여 데이터 통신을 수행하는 통신 인터페이스부;
    를 포함하는 것을 특징으로 하는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템.
  4. 삭제
  5. 제 1항에 있어서,
    상기 클라우드 호스트서버는,
    상기 클라우드 관리서버의 VM 노드 연결부의 요청에 따라 활성화된 VM 노드를 관리하는 VM 노드 관리부와;
    상기 VM 노드를 실행하는 환경을 구성하는 하이퍼바이저(Hypervisor) 엔진을 포함하고, 상기 하이퍼바이저 엔진을 통해 가상화에 필요한 모든 기능을 제공하는 가상화 관리부와;
    상기 클라우드 관리서버에 포함되어 있는 클러스터 관리부의 요청에 따라 필요한 VM 노드의 생성, 실행, 삭제 요청을 실행하는 클러스터 에이전트부와;
    상기 클라우드 호스트서버의 CPU, 메모리, 디스크 사용량, VM 노드의 사용량을 리소스풀 관리부에 전달하는 리소스 모니터부와;
    상기 클라우드 관리서버에 포함되어 있는 VM 디바이스 관리부를 통해 전달받은 VM 노드의 ID값과 디바이스 장치의 ID값을 사용하여 가상 디스크 또는 VGPU를 지정된 VM 노드에 연결해주는 VM 디바이스 연결부와;
    상기 클라우드 관리서버와 네트워크 통신망을 통해 데이터 통신을 수행하는 통신 인터페이스부;
    를 포함하는 것을 특징으로 하는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템.
  6. 클라우드 장치를 이용하여 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 방법으로서,
    상기 클라우드 장치는, 잡(job)을 수행하는 잡 클라이언트를 포함하는 클라이언트와; 상기 잡 클라이언트에서 요청된 잡(job)에 ID를 할당하며, 요청된 잡(job)을 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하고 평가된 상기 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당 관리하는 잡(job) 트랙커를 포함하는 마스터 노드와; 태스크 트랙커를 포함하고, 상기 잡(job) 트랙커의 요청에 의해 할당된 잡(job)을 맵태스크와 리듀스태스크로서 상기 태스크 트랙커에 할당하고 태스크를 실행하는 적어도 하나의 슬레이브 노드와; 상기 잡(job) 트랙커의 요청에 의해 VM 노드를 슬레이브 노드로 할당하고 상기 슬레이브 노드의 태스크 트랙커를 통해 맵태스크 또는 리듀스태스크를 실행시키고 상기 슬레이브 노드에 디바이스 장치를 할당해주는 클라우드 관리서버와; 상기 클라우드 관리서버의 클러스터 관리부의 요청에 따라 VM 노드를 슬레이브 노드로 할당하여 VM(Virtual Machine)자원을 제공하고 상기 슬레이브 노드에 디바이스 장치를 연결해 주는 클라우드 호스트서버;를 포함하고,
    상기 방법은,
    상기 잡 클라이언트에서 요청된 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당하고 슬레이브 노드에 필요한 디바이스 장치를 추가하는 단계와;
    상기 잡(job) 트랙커의 요청에 의해 할당된 잡(job)을 슬레이브 노드의 태스크 트랙커에 각각 맵태스크와 리듀스태스크로 할당하고, 맵태스크에서 생성된 중간 산출물을 리듀스태스크에 전달하는 단계와;
    상기 잡(job)이 완료된 슬레이브 노드의 디바이스 장치와 슬레이브 노드의 자원을 클라우드 관리서버를 통해 VM 리소스풀로 환원하는 단계와;
    맵리듀스 연산이 완료되지 않았으면, 맵태스크에서 생성된 중간 산출물을 입력으로 리듀스태스크를 실행하여 결과 데이터를 슬레이브 노드의 HDFS에 저장하는 단계를 구비하며,
    방송용 빅데이터 지식 트리플을 처리하는 하둡 시스템을 지원하기 위해 클라이언트가 요청한 잡(job)의 업무량을 컴파일 타임 또는 런타임에 실시간으로 분석하고 이에 필요한 클라우드 장치의 가상머신(virtual machine :VM) 리소스풀(resource pool)로부터 여유 가상 머신(VM)을 계산한 후 자동으로 VM 노드를 증감하여 잡(job)을 재할당할 때 상기 슬레이브 노드의 로컬데이터 영역을 가상디스크로 마운트(mount)하여 맵 연산으로 생성되는 중간데이터의 입출력 속도를 향상시키고,
    잡 클라이언트에서 요청된 잡(job)을 슬레이브 노드의 컴파일타임에 정적으로 또는 런타임에 동적으로 할당하고 슬레이브 노드에 필요한 디바이스 장치를 추가하는 단계는,
    클라이언트에서 요청된 잡(job)을 데이터 또는 프로세싱 관점에서 잡(job)의 크기를 평가하는 단계와;
    평가된 잡(job)의 크기에 따라 슬레이브 노드로 할당할 VM 노드를 클라우드 관리서버에 요청하는 단계와;
    활성화된 VM 노드가 없다면, 클라우드 관리서버에 포함되어 있는 클러스터 관리부의 요청에 따라 필요한 VM 노드의 생성 및 실행 요청을 수행하는 단계와;
    VM 노드를 슬레이브 노드로 할당하고 VM 노드의 ID값과 디바이스 장치의 ID값을 사용하여 가상 디스크, VGPU, 프린터 중 적어도 하나를 포함하는 디바이스 장치 중의 하나 이상을 슬레이브 노드에 연결해 주는 단계;
    를 포함하는 것을 특징으로 하는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 방법.
  7. 삭제
  8. 제 6항에 있어서,
    상기 잡(job)이 완료된 슬레이브 노드의 디바이스 장치와 슬레이브 노드의 자원을 클라우드 관리서버를 통해 VM 리소스풀로 환원하는 단계는,
    VM 정보 저장부에 저장되어 있는 데이터에 기반하여 슬레이브 노드에 연결되어 있는 디바이스 장치의 연결을 해지하고 슬레이브 노드 할당을 해지하여 VM 노드로 환원하는 단계와;
    디바이스 장치의 연결 해지 정보를 VM 정보 저장부에 기록하는 단계와;
    상기 VM 노드를 재사용할 예정이면, VM 노드 관리 정책에 따라 일정시간 휴면 VM 노드 상태로 유지하는 단계와;
    상기 VM 노드를 재사용하지 않을 예정이면, VM 노드에 할당된 CPU, 메모리, HDD, 네트워크 자원을 회수하여 VM 리소스풀에 환원하는 단계;
    를 포함하는 것을 특징으로 하는 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 방법.
KR1020160023130A 2016-02-26 2016-02-26 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법 KR101765725B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160023130A KR101765725B1 (ko) 2016-02-26 2016-02-26 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160023130A KR101765725B1 (ko) 2016-02-26 2016-02-26 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101765725B1 true KR101765725B1 (ko) 2017-08-23

Family

ID=59759100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160023130A KR101765725B1 (ko) 2016-02-26 2016-02-26 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101765725B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102067440B1 (ko) * 2018-07-11 2020-01-17 인하대학교 산학협력단 가상화 gpu 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법 및 장치
KR20200057409A (ko) * 2018-11-16 2020-05-26 네이버 주식회사 라이브 서비스를 위한 분산 파일 시스템 및 데이터 처리 방법
CN112394942A (zh) * 2020-11-24 2021-02-23 季明 基于云计算的分布式软件开发编译方法及软件开发平台
CN113031852A (zh) * 2019-12-25 2021-06-25 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及存储介质
CN113900774A (zh) * 2021-12-06 2022-01-07 浙江云针信息科技有限公司 云操作系统的虚拟机控制方法、装置以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101245994B1 (ko) * 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101245994B1 (ko) * 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102067440B1 (ko) * 2018-07-11 2020-01-17 인하대학교 산학협력단 가상화 gpu 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법 및 장치
KR20200057409A (ko) * 2018-11-16 2020-05-26 네이버 주식회사 라이브 서비스를 위한 분산 파일 시스템 및 데이터 처리 방법
KR102133840B1 (ko) 2018-11-16 2020-07-14 네이버 주식회사 라이브 서비스를 위한 분산 파일 시스템 및 데이터 처리 방법
CN113031852A (zh) * 2019-12-25 2021-06-25 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及存储介质
CN112394942A (zh) * 2020-11-24 2021-02-23 季明 基于云计算的分布式软件开发编译方法及软件开发平台
CN112394942B (zh) * 2020-11-24 2021-06-04 深圳君南信息系统有限公司 基于云计算的分布式软件开发编译方法及软件开发平台
CN113900774A (zh) * 2021-12-06 2022-01-07 浙江云针信息科技有限公司 云操作系统的虚拟机控制方法、装置以及存储介质

Similar Documents

Publication Publication Date Title
US11010407B2 (en) Resource provisioning systems and methods
US10635664B2 (en) Map-reduce job virtualization
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
JP6618614B2 (ja) 分散型ストリームベースのデータベーストリガ
US8656387B2 (en) Method and system for workload distributing and processing across a network of replicated virtual machines
Kc et al. Scheduling hadoop jobs to meet deadlines
KR101656360B1 (ko) 자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템
CN105144121B (zh) 高速缓存内容可寻址数据块以供存储虚拟化
CN110941481A (zh) 资源调度方法、装置及系统
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
US10356150B1 (en) Automated repartitioning of streaming data
US9323580B2 (en) Optimized resource management for map/reduce computing
WO2010137455A1 (ja) 計算機システム、方法、およびプログラム
US11175948B2 (en) Grouping of tasks for distribution among processing entities
KR101640231B1 (ko) 자동 분산병렬 처리 하둡 시스템의 지원을 위한 클라우드 구동 방법
US10387195B2 (en) Method, apparatus, and computer-readable medium for performing a data exchange on a data exchange framework
US10579419B2 (en) Data analysis in storage system
Kim et al. RIDE: real-time massive image processing platform on distributed environment
US11663026B2 (en) Allocation of accelerator resources based on job type
Bloch et al. Analysis and survey of issues in live virtual machine migration interferences
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
US20240160487A1 (en) Flexible gpu resource scheduling method in large-scale container operation environment
Kumar et al. Efficient Processing and recouping of data using combiners in Map Reduce framework
CN113934525A (zh) 一种基于正负反馈负载调度算法的Hadoop集群任务调度方法
CN113031852A (zh) 数据处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
GRNT Written decision to grant