+

KR20150093979A - 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치 - Google Patents

가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치 Download PDF

Info

Publication number
KR20150093979A
KR20150093979A KR1020140014684A KR20140014684A KR20150093979A KR 20150093979 A KR20150093979 A KR 20150093979A KR 1020140014684 A KR1020140014684 A KR 1020140014684A KR 20140014684 A KR20140014684 A KR 20140014684A KR 20150093979 A KR20150093979 A KR 20150093979A
Authority
KR
South Korea
Prior art keywords
name
nodes
node
performance
job
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020140014684A
Other languages
English (en)
Other versions
KR101654969B1 (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 KR1020140014684A priority Critical patent/KR101654969B1/ko
Publication of KR20150093979A publication Critical patent/KR20150093979A/ko
Application granted granted Critical
Publication of KR101654969B1 publication Critical patent/KR101654969B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

다수의 네임 노드가 존재하는 가상화 클러스터 환경에서 최적의 네임 노드를 선택하는 방법 및 장치가 개시된다. 가상화 클러스터 환경에서 네임 노드를 할당하는 방법은, 작업(job)을 수신하는 단계와, 가상화 클러스터에 포함된 적어도 두 개의 네임 노드들의 성능 또는 작업에 대한 처리 속도를 고려하여 적어도 두 개의 네임 노드들 중에서 작업을 할당할 네임 노드를 결정하는 단계를 포함한다. 따라서, 다수의 네임 노드를 활용하는 가상화 클러스터 환경에서 최적의 네임 노드를 효과적으로 선택할 수 있다.

Description

가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치{METHOD AND APPARATUS FOR ASSIGNING NAMENODE IN VIRTUALIZED CLUSTER ENVIRONMENTS}
본 발명은 대규모 데이터를 분산 처리하는 기술에 관한 것으로, 더욱 상세하게는 다수의 네임 노드가 존재하는 가상화 클러스터 환경에서 최적의 네임 노드를 선택하는 방법 및 장치에 관한 것이다.
최근 컴퓨터의 하드웨어 자원을 최대한 활용하기 위해 가상화 기술이 도입되어 널리 사용되고 있는 추세이다. 가상화란 물리적인 자원을 여러 개의 가상 자원들로 추상화시키는 기술로, 각 가상 자원마다 서로 다른 운영체제를 수행시켜 다중화된 컴퓨팅 자원의 이용률을 높이고 효율적인 프로비져닝을 제공한다. 또한 특정 가상 서버에 결함 발생 시 이를 고립시키고 다른 가상 서버를 통해 중단 없는 서비스를 제공할 수 있어 시스템의 가용성과 신뢰성을 높일 수 있다.
한편 데이터베이스 분야에서 최근 급증하는 대규모 데이터 처리를 위해 병렬, 분산 데이터베이스에 대한 연구가 활발하다. 즉, 매니코어 시스템이 제공하는 하드웨어 컴퓨팅 자원의 병렬성을 극대화하기 위한 소프트웨어 기술로 가상화 기술과 함께 최근 주목받고 있는 기술이 병렬 DB 기술이다.
병렬 DB 기술은 데이터를 키와 값의 쌍(Key-Value pair)으로 구성하고, 데이터를 병렬로 처리하여 처리 성능을 높인다. 대표적인 예가 구글의 GFS(Google File system)과 Bigtable, 그리고 공개 소스 진영의 Hadoop과 Hbase, Hive 이며, 프로그래밍 모델로는 Map-Reduce, DryadLINQ, MPI 등을 사용한다.
하둡(Hadoop)은 대량의 자료를 처리할 수 있도록 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 자바 소프트웨어 프레임워크로서, 크게 하둡 분산 파일 시스템(HDFS:HADOOP Distributed File System)과 맵리듀스(Map-Reduce)로 이루어진다.
종래의 하둡 분산 파일 시스템(HDFS)에 따라 Hadoop 클러스터를 구축할 경우 네임 노드(Name Node)는 단지 하나의 노드로만 되어 있으며 이로 인해 다양한 문제점이 발생하였다. 예를 들어, 네임 노드의 메모리의 한계로 네임 노드에서 관리하는 file과 directory의 개수에 제한이 있고, 네임 노드가 하나이기 때문에 파일 입출력에 관한 throughput에 제약이 있으며, 모든 사용자/응용프로그램이 하나의 네임 노드를 활용해야만 하는 문제점이 있다.
또한, 최근에는 다수의 독립된 네임 노드의 집합인 네임 노드 페더레이션(NameNode Federation)이라는 개념에 하둡에 적용되고 있으나, 이기종 컴퓨팅 특징을 가지고 있는 가상 머신 환경에서 네임 노드 페더레이션을 적용하였을 경우, 각각의 네임 노드의 성능이 서로 다르게 되고, 이로 인해 기존의 방법대로 작업(job)을 네임 노드에 할당하게 되면 성능 상의 불균형으로 인한 문제점이 발생한다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 가상화 클러스터 환경에서 네임 노드에 작업을 할당하는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 대규모 데이터를 병렬 분산 처리하는 시스템을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법은, 작업(job)을 수신하는 단계와, 가상화 클러스터에 포함된 적어도 두 개의 네임 노드들의 성능 또는 작업에 대한 처리 속도를 고려하여 적어도 두 개의 네임 노드들 중에서 작업을 할당할 네임 노드를 결정하는 단계를 포함한다.
여기에서, 상기 가상화 클러스터는, 다수의 물리 머신들의 각각에 존재하는 다수의 가상 노드들의 집합으로 구성될 수 있다.
여기에서, 상기 적어도 두 개의 네임 노드들의 각각은, 다수의 물리 머신들의 각각에 하나씩 위치할 수 있다.
여기에서, 상기 네임 노드 할당 방법은, 하둡 분산 파일 시스템(HDFS:HADOOP Distributed File System)에 기반하여 적용될 수 있다.
여기에서, 상기 작업을 할당할 네임 노드를 결정하는 단계는, 적어도 두 개의 네임 노드들의 중에서 두 개의 네임 노드를 랜덤하게(randomly) 선택하고, 선택된 두 개의 네임 노드의 성능 및 작업량을 고려하여 선택된 두 개의 네임 노드 중에서 작업을 할당할 네임 노드를 결정할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 대규모 데이터를 병렬 분산 처리하는 시스템은, 가상화 클러스터에 포함된 적어도 두 개의 네임 노드들의 집합으로 구성되는 네임 노드 페더레이션과, 네임 노드 페더레이션에 포함된 적어도 두 개의 네임 노드들의 성능 또는 작업(job)에 대한 처리 속도를 고려하여 적어도 두 개의 네임 노드들 중에서 작업을 할당할 네임 노드를 결정하는 네임 노드 제어부를 포함한다.
상기와 같은 본 발명에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 대규모 데이터를 병렬 분산 처리하는 시스템을 이용할 경우에는 다수의 네임 노드를 활용하는 가상화 클러스터 환경에서 최적의 네임 노드를 효과적으로 선택할 수 있다.
또한, 본 발명에 따르면 네임 노드의 성능 및 작업량에 대한 체크를 최소화하면서 일관된 성능을 유지하도록 할 수 있는 장점이 있다.
도 1은 분산 파일 시스템을 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따라 다수의 네임 노드가 적용된 클러스터를 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 대규모 데이터를 병렬 분산 처리하는 시스템을 설명하기 위한 개념도이다.
도 4는 본 발명의 실시예에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따라 다수의 네임 노드가 적용된 가상화 클러스터에서 작업이 할당되는 네임 노드의 빈도를 설명하기 위한 그래프들이다.
도 6은 본 발명의 실시예에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법을 적용하였을 경우에, 작업의 처리 시간을 비교하기 위한 그래프이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
먼저, 본 발명에서 사용하는 용어를 간략히 설명하면 다음과 같다.
하둡 분산 파일 시스템(HDFS)은 가격이 저렴한 하드웨어를 대량으로 이용하며, 고장 발생을 전제로 설계된 시스템이기 때문에, 항상 파일을 여러 개 복사하고 복사된 파일들을 분산하여 저장한다. 또한 파일의 내용과 위치에 대한 정보도 여러 개의 복사본으로 만들어져 분산 저장된다. 이렇게 파일의 내용과 정보가 여러 대의 컴퓨터에 분산 저장되기 때문에 검색 시간도 단축되고 여러 곳에서 동시에 검색이 이루어져도 어느 한 곳에 작업량이 집중되지 않는다.
맵리듀스(Map-Reduce)는 효율적인 데이터 처리를 위해 여러 대의 컴퓨터를 활용하는 분산 데이터 처리 기술로, 먼저, 맵(Map) 단계에서는 대규모 데이터를 여러 대의 컴퓨터에 분산해 병렬적으로 처리해 새로운 데이터(중간 결과)를 만들어내고, 리듀스(Reduce) 단계에서는 이렇게 생성된 중간 결과물을 결합해 최종적으로 원하는 결과를 생산한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 분산 파일 시스템을 설명하기 위한 개념도이다.
먼저, 본 발명의 기술적 특징을 보다 명확히 하기 위하여 종래의 분산 파일 시스템을 설명한다.
도 1을 참조하면, 하둡 분산 파일 시스템(HDFS)은 마스터 노드인 네임 노드(110)와 다수의 데이터 노드(120-1 내지 120-n)를 포함하여 구성된다. HDFS는 대용량의 파일 관리를 지원하고 다중 파일 복사본을 저장하여 가용성을 보장하는 구조를 가지고 있다. 데이터 노드(120-1 내지 120-n)는 파일 복사본을 저장하고, 네임 노드(110)는 파일의 메타 데이터(meta data)를 저장하고 있다.
상세하게는, 네임 노드(110)는 파일 시스템의 이름 공간을 관리하면서 클라이언트(130)로부터의 파일 접근 요청을 처리한다. HDFS에서 파일 데이터는 블록 단위로 나뉘어서 여러 데이터 노드(120-1 내지 120-n)에 분산되어 저장된다. 여기서, 클라이언트(130)는 다양한 타입의 사용자 단말을 의미할 수 있다.
데이터 노드(120-1 내지 120-n)는 클라이언트(130)로부터의 데이터 입출력 요청을 처리하고, 네임 노드(110)는 데이터 노드(120-1 내지 120-n)로부터 하트 비트(heartbit)를 주기적으로 받으면서 데이터 노드(120-1 내지 120-n)의 상태를 체크할 수 있다.
HDFS는 데이터의 가용성을 보장하기 위해서 관계형 데이터를 블록 단위로 나눈 후, 다시 데이터 노드(120-1 내지 120-n)에 복제(Replication)하여 분산 저장한다. 이는 한 개의 데이터를 n 개의 완전한 복사본으로 만들어 분산 저장하는 기법으로 전체 노드 중 단지 하나만 살아남아도 원래의 데이터를 완전하게 복구시킬 수 있으나, 가용성을 높이기 위해 복제가 많아질수록 스토리지가 증가한다.
다만, 도 1에 따른 HDFS는 하나의 네임 노드를 이용하여 데이터를 병렬 분산 처리함에 따른 다양한 문제점이 발생할 수 있음은 상술하였다.
도 2는 본 발명의 실시예에 따라 다수의 네임 노드가 적용된 클러스터를 설명하기 위한 개념도이다.
도 2를 참조하면, 하나의 클러스터(20)에 여러 개의 독립된 네임 노드들(210-1,...210-k,...210-n)이 존재하고 이러한 네임 노드들(210-1,...210-k,...210-n)은 각각의 고유한 네임 스페이스(NS: NameSpace)를 가질 수 있다.
또한, 블록 풀들(Block Pools)(230)은 클러스터(20) 전체의 블록에 대한 정보를 가지고 있고 각각의 네임 노드들(210-1,...210-k,...210-n)은 이러한 전체 블록 풀들(Block Pools)(230)의 특정 부분을 나누어 가질 수 있다. 예를 들어, NameNode 1(210-1)은 Pool 1(230-1)을 가지고, NameNode k(210-k)는 Pool k(230-k)를 가지며, NameNode n(210-n)은 Pool n(230-n)을 가질 수 있다.
예를 들어, 클러스터(20)는 N개의 네임 노드들(210-1,...210-k,...210-n)을 가질 수 있고, 각각의 네임 노드(210-1,...210-k,...210-n)는 네임 스페이스(namespace)를 가질 수 있다. 또한 클러스터(20)는 M개의 데이터 노드들(220-1,...220-k,...220-n)을 가질 수 있고, 데이터 노드들(220-1,...220-k,...220-n)은 네임 노드들과 연동할 수 있다.
여기서, 네임 스페이스(NS: NameSpace)은 파일(file) 및 디렉토리(directory)에 대한 생성(create), 삭제(delete), 수정(modify) 및 리스트(list) 등을 지원할 수 있는 개념적인 영역을 의미할 수 있다.
또한, 블록 스토리지(Block Storage)는 데이터 노드의 맴버쉽(membership)을 관리하며, 블록(block)에 대한 생성(create), 삭제(delete) 및 수정(modify) 등을 지원 및 관리할 수 있는 개념적인 영역을 의미할 수 있다. 여기서, 블록(block)은 다수의 데이터 노드들에 분산 저장되는 분할된 데이터의 단위를 의미할 수 있다.
한편, 다수의 독립된 네임 노드들의 집합을 “네임 노드 페더레이션(Name Node Federation)”으로 명명할 수 있다.
도 3은 본 발명의 실시예에 따른 대규모 데이터를 병렬 분산 처리하는 시스템을 설명하기 위한 개념도이다.
네임 노드 페더레이션(Name Node Federation)(310)이 Hadoop 클러스터가 물리 노드로만 구축된 클러스터 환경만을 고려하여 구현된 경우, 가상화 노드들을 가진 가상화 Hadoop 클러스터 환경에서는 성능 상의 문제점이 나타날 수 있다.
즉, 가상 노드들의 성능은 물리 노드의 성능에 영향을 가장 많이 받기 때문에, 가상화 Hadoop 클러스터는 각각의 물리 노드의 성능에 따라 가상 노드들의 성능이 다른 이기종 환경의 클러스터가 된다.
예를 들어, 네임 노드 페더레이션(310)에서 작업(job)을 배치할 경우, 모든 네임 노드(311)의 성능이 동일하다고 가정하여 작업(job)을 배치할 수 있다.
그러나 이기종 컴퓨팅 특징을 가지고 있는 가상 머신 환경에서 네임 노드 페더레이션(310)을 적용하였을 경우 각각의 네임 노드의 성능이 서로 다름으로 인하여 기존의 방법대로 작업(job)을 네임 노드에 할당하게 되면 성능 상의 불균형으로 인한 손해를 보게 된다.
이에 본 발명의 실시예에 따른 대규모 데이터를 병렬 분산 처리하는 시스템은 가상화 클러스터 환경에서 다수의 네임 노드에 작업(job)을 효과적으로 할당하기 위한 기술을 제공한다.
대규모 데이터를 병렬 분산 처리하는 시스템은 네임 노드 페더레이션(310) 및 네임 노드 제어부(330)를 포함하여 구성될 수 있다.
네임 노드 페더레이션(310)은 가상화 클러스터에 포함된 적어도 두 개의 네임 노드들의 집합으로 구성될 수 있다.
여기서, 가상화 클러스터는 다수의 물리 머신들의 각각에 존재하는 다수의 가상 노드들의 집합으로 구성될 수 있으며, 네임 노드들의 각각은 다수의 물리 머신들의 각각에 하나씩 위치할 수 있다.
네임 노드 제어부(330)는 네임 노드 페더레이션(310)에 포함된 적어도 두 개의 네임 노드들의 성능 또는 작업(job)에 대한 처리 속도를 고려하여 적어도 두 개의 네임 노드들 중에서 작업을 할당할 네임 노드를 결정할 수 있다.
상세하게는, 적어도 두 개의 네임 노드들의 중에서 두 개의 네임 노드를 랜덤하게(randomly) 선택하고, 선택된 두 개의 네임 노드의 성능 및 작업량을 고려하여 선택된 두 개의 네임 노드 중에서 작업을 할당할 네임 노드를 결정할 수 있다.
도 3을 참조하여, 하둡 분산 파일 시스템(HDFS)에 기반한 대규모 데이터를 병렬 처리하는 시스템을 설명하면 다음과 같다.
도 3에서 각각의 물리 머신(30)은 하나의 하둡 네임 노드(311)와 다수의 하둡 데이터 노드(321)를 포함하여 구성될 수 있다. 또한, 각각의 물리 머신(30)에 포함된 하둡 네임 노드(311)의 집합으로 네임 노드 페더레이션(310)을 구성할 수 있다.
네임 노드 제어부(330)는 네임 노드 페더레이션(310)에 포함된 하둡 네임 노드(311)들을 제어하고 관리할 수 있다.
High Ability NameNode로 명명될 수 있는 네임 노드 제어부(330)는 전체 네임 스페이스(namespace)와 전체 블록 pool에 대한 정보를 가지고 있으며 클러스터의 전반적인 관리와 제어를 수행할 수 있다.
예를 들어, 다수의 작업(job)이 실행될 경우, 네임 노드 제어부(330)가 각각 물리 노드들의 성능과 현재 작업량을 고려하여 하둡 네임 노드(311)를 선택하는 역할을 수행하며 선택된 하둡 네임 노드(311)에게 작업(job)을 할당해주는 역할 또한 수행할 수 있다.
하둡 네임 노드(311)는 물리 노드 별 한 개씩 존재하며 물리 노드 안의 가상의 하둡 데이터 노드(321)들이 가진 블록에 대한 정보와 개별적인 네임 스페이스(namespace)를 가질 수 있다.
네임 노드 제어부(330)가 하둡 네임 노드에 작업을 할당하는 예를 비교하여 설명하면 다음과 같다.
1) 전체 네임 노드들을 순차적으로 선택-(제1 기법)
제1 기법에 따르면 전체 네임 노드들에 작업(job)을 순차적으로 할당할 수 있다. 제1 기법은 기존 물리 환경의 네임 노드 페더레이션에서 작업(job)을 배치하는 방법으로 이 방법을 가상화된 Hadoop 클러스터에 적용할 경우 성능이 다른 Hadoop NameNode들의 불균형으로 인한 전체 클러스터 성능의 하락이 발생할 소지가 있다.
2) 전체 네임 노드들의 성능 및 작업량을 고려하여 선택-(제2 기법)
제2 기법에 따르면 전체 네임 노드들의 성능 및 작업량을 체크하여 작업(job)을 할당할 수 있다. 제2 기법은 성능의 일관성이 일정하게 잘 유지 되겠지만 Hadoop NameNode들의 성능 및 작업량을 체크하기 위한 비용이 발생하게 되며 이로 인한 성능 하락이 발생할 소지가 있다.
3) 전체 네임 노드들 중 하나를 랜덤하게 선택-(제3 기법)
제3 기법에 따르면 전체 네임 노드들 중에서 하나의 네임 노드를 랜덤하게 선택하여 작업(job)을 할당할 수 있다. 제3 기법은 제2 기법과 같은 성능 및 작업량을 체크하기 위한 비용 발생이 없지만, 제1 기법과 마찬가지로 Hadoop NameNode들의 불균형으로 인한 전체 클러스터 성능의 하락이 발생할 소지가 있다.
4) 전체 네임 노드들 중 2개를 랜덤하게 선택하여 성능 및 작업량을 고려하여 하나를 최종 선택-(제4 기법)
제4 기법에 따르면 전체 네임 노드들 중에서 2개의 네임 노드를 랜덤하게 선택하고, 선택된 2개의 네임 노드의 성능 및 작업량을 체크하여 최종 네임 노드를 결정하여 작업(job)을 할당할 수 있다. 제4 기법은 위의 제1 내지 3 기법에서 제기된 문제점들인 성능의 일관성과 체크 비용에 대한 합의점으로써 어느 정도 일관된 성능을 보여줄 수 있으며 체크 비용도 크게 줄일 수 있는 장점이 있다.
도 4는 본 발명의 실시예에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면, 본 발명의 실시예에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법은, 작업(job)을 수신하는 단계 및 작업을 할당할 네임 노드를 결정하는 단계를 포함하여 구성될 수 있다.
먼저, 클라이언트로부터 할당받은 작업(job)를 수신할 수 있다(S410).
가상화 클러스터에 포함된 적어도 두 개의 네임 노드들의 성능 또는 작업에 대한 처리 속도를 고려하여 적어도 두 개의 네임 노드들 중에서 작업을 할당할 네임 노드를 결정할 수 있다.
여기서, 가상화 클러스터는 다수의 물리 머신들의 각각에 존재하는 다수의 가상 노드들의 집합으로 구성될 수 있으며, 적어도 두 개의 네임 노드들의 각각은 다수의 물리 머신들의 각각에 하나씩 위치할 수 있다.
적어도 두 개의 네임 노드들 중에서 두 개의 네임 노드를 랜덤하게(randomly)하게 선택할 수 있다(S420).
선택된 두 개의 네임 노드 중에서 작업(job)을 할당할 네임 노드를 결정할 수 (S430). 즉, 선택된 두 개의 네임 노드의 성능 및 작업량을 고려하여 선택된 두 개의 네임 노드 중에서 작업(job)을 할당할 네임 노드를 최종 결정할 수 있다.
마지막으로, 최종 결정된 네임 노드에 작업을 할당할 수 있다(S440).
또한, 네임 노드 할당 방법은, 하둡 분산 파일 시스템(HDFS:HADOOP Distributed File System)에 기반하여 적용될 수 있으나, 이에 한정되는 것은 아니다.
도 5는 본 발명의 실시예에 따라 다수의 네임 노드가 적용된 가상화 클러스터에서 작업이 할당되는 네임 노드의 빈도를 설명하기 위한 그래프들이다.
즉, 도 5는 상술한 4가지 기법에 대한 성능을 비교할 수 있는 시뮬레이션 결과를 나타내는 그래프들이다.
시뮬레이션을 위한 가정(assumption)은 다음과 같다.
A) 가상화 Hadoop 클러스터에 Hadoop NameNode가 10개 있고 이중 NameNode 1 내지 5까지의 5개의 네임 노드는 성능이 좋지 않은 그룹으로, NameNode 6 내지 10까지의 5개의 네임 노드는 성능이 좋은 그룹 B로 구분한다.
B) 네임 노드 제어부에서 상술한 4가지 기법에 따라 Hadoop NameNode를 선택하여 전체 100개의 작업(job)을 분배한다. 그리고 클러스터 전체에서 모든 작업(job)이 처리되어 끝나는 시간을 계산한다.
C) 그룹 A의 Hadoop NameNode가 하나의 작업(job)을 처리하는 데 걸리는 시간을 2초, 그룹 B의 Hadoop NameNode가 하나의 작업(job)을 처리하는데 걸리는 시간을 1초로 가정한다.
D) Hadoop NameNode의 작업량 및 성능을 체크하는 데 드는 비용을 한 건당 0.01초로 가정한다.
도 5a는 제1 기법에 따르는 경우에 작업(job)이 네임 노드에 할당되는 빈도를 나타내고, 도 5b는 제2 기법에 따르는 경우에 작업(job)이 네임 노드에 할당되는 빈도를 나타내고, 도 5c는 제3 기법에 따르는 경우에 작업(job)이 네임 노드에 할당되는 빈도를 나타내며, 도 5d는 제4 기법에 따르는 경우에 작업(job)이 네임 노드에 할당되는 빈도를 나타낸다. 여기서, 랜덤 선택이 들어가 있는 제3 기법과 제4 기법은 총 3회 실시하였다.
도 5a를 보면, 네임 노드의 성능과 상관없이 모든 네임 노드에 균등하게 작업(job)이 할당되어 전체 클러스터 성능의 하락이 발생할 소지가 있다.
도 5b를 보면, 성능이 낮은 그룹 A에 작업(job) 할당 빈도가 낮은 것을 아 수 있다. 다만, 네임 노드들의 성능 및 작업량을 체크하기 위한 비용이 발생하게 되며 이로 인한 성능 하락이 발생할 소지가 있다.
도 5c를 보면, 작업(job)이 일관성 없이 네임 노드에 할당되는 것을 알 수 있다. 즉, 네임 노드의 성능과 상관없이 랜덤하게 작업(job)이 할당되기 때문에 전체 클러스터 성능의 하락이 발생할 소지가 있다.
도 5d를 보면, 성능이 낮은 그룹 A에 작업(job)이 할당 빈도가 낮은 것을 알 수 있다. 또한, 랜덤하게 선택된 두 개의 네임 노드의 성능 및 작업량 만을 비교하기 때문에 추가되는 비용이 많지 않을 것으로 예상된다.
도 6은 본 발명의 실시예에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법을 적용하였을 경우에, 작업의 처리 시간을 비교하기 위한 그래프이다.
도 6은 도 5에서 상술한 가정(assumption)에 기반하여 상술한 4가지 기법에 따라 100개의 작업(job)을 처리하는데 소요되는 시간을 나타낸다.
도 6을 참조하면, 제4 기법에 따를 경우 가장 짧은 처리 시간이 소요되고, 제3 기법에 따를 경우 가장 긴 처리 시간이 소요되는 것을 알 수 있다.
즉, 제4 기법은 성능의 일관성과 체크 비용을 절충하는 방법으로, 어느 정도 일관된 성능을 보여줄 수 있으며 체크 비용도 크게 줄일 수 있는 장점이 있다.
상술한 본 발명의 실시예에 따른 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 대규모 데이터를 병렬 분산 처리하는 시스템은 다수의 네임 노드를 활용하는 가상화 클러스터 환경에서 최적의 네임 노드를 효과적으로 선택할 수 있도록 한다. 즉, 네임 노드의 성능 및 작업량에 대한 체크를 최소화하면서 일관된 성능을 유지하도록 할 수 있는 장점이 있다.
따라서, 본 발명은 가상화 클러스터의 전체적인 성능 향상에 기여할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 네임 노드 할당 방법에 있어서,
    작업(job)을 수신하는 단계; 및
    가상화 클러스터에 포함된 적어도 두 개의 네임 노드들의 성능 또는 상기 작업에 대한 처리 속도를 고려하여 상기 적어도 두 개의 네임 노드들 중에서 상기 작업을 할당할 네임 노드를 결정하는 단계를 포함하는 가상화 클러스터 환경에서 네임 노드를 할당하는 방법.
  2. 청구항 1에 있어서,
    상기 가상화 클러스터는,
    다수의 물리 머신들의 각각에 존재하는 다수의 가상 노드들의 집합으로 구성되는 것을 특징으로 하는 가상화 클러스터 환경에서 네임 노드를 할당하는 방법.
  3. 청구항 1에 있어서,
    상기 적어도 두 개의 네임 노드들의 각각은,
    상기 다수의 물리 머신들의 각각에 하나씩 위치하는 것을 특징으로 하는 가상화 클러스터 환경에서 네임 노드를 할당하는 방법.
  4. 청구항 1에 있어서,
    상기 네임 노드 할당 방법은,
    하둡 분산 파일 시스템(HDFS:HADOOP Distributed File System)에 기반하여 적용되는 것을 특징으로 하는 가상화 클러스터 환경에서 네임 노드를 할당하는 방법.
  5. 청구항 1에 있어서,
    상기 작업을 할당할 네임 노드를 결정하는 단계는,
    상기 적어도 두 개의 네임 노드들의 중에서 두 개의 네임 노드를 랜덤하게(randomly) 선택하고,
    상기 선택된 두 개의 네임 노드의 성능 및 작업량을 고려하여 상기 선택된 두 개의 네임 노드 중에서 상기 작업을 할당할 네임 노드를 결정하는 것을 특징으로 하는 가상화 클러스터 환경에서 네임 노드를 할당하는 방법.
  6. 대규모 데이터를 처리하는 시스템에 있어서,
    가상화 클러스터에 포함된 적어도 두 개의 네임 노드들의 집합으로 구성되는 네임 노드 페더레이션; 및
    상기 네임 노드 페더레이션에 포함된 상기 적어도 두 개의 네임 노드들의 성능 또는 작업(job)에 대한 처리 속도를 고려하여 상기 적어도 두 개의 네임 노드들 중에서 상기 작업을 할당할 네임 노드를 결정하는 네임 노드 제어부를 포함하는 대규모 데이터를 병렬 분산 처리하는 시스템.
  7. 청구항 6에 있어서,
    상기 가상화 클러스터는,
    다수의 물리 머신들의 각각에 존재하는 다수의 가상 노드들의 집합으로 구성되는 것을 특징으로 하는 대규모 데이터를 병렬 분산 처리하는 시스템.
  8. 청구항 6에 있어서,
    상기 적어도 두 개의 네임 노드들의 각각은,
    상기 다수의 물리 머신들의 각각에 하나씩 위치하는 것을 특징으로 하는 대규모 데이터를 병렬 분산 처리하는 시스템.
  9. 청구항 6에 있어서,
    상기 대규모 데이터를 병렬 분산 처리하는 시스템은,
    하둡 분산 파일 시스템(HDFS:HADOOP Distributed File System)에 기반하는 것을 특징으로 하는 대규모 데이터를 병렬 분산 처리하는 시스템.
  10. 청구항 6에 있어서,
    상기 네임 노드 제어부는,
    상기 적어도 두 개의 네임 노드들의 중에서 두 개의 네임 노드를 랜덤하게(randomly) 선택하고,
    상기 선택된 두 개의 네임 노드의 성능 및 작업량을 고려하여 상기 선택된 두 개의 네임 노드 중에서 상기 작업을 할당할 네임 노드를 결정하는 것을 특징으로 하는 대규모 데이터를 병렬 분산 처리하는 시스템.
KR1020140014684A 2014-02-10 2014-02-10 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치 Active KR101654969B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140014684A KR101654969B1 (ko) 2014-02-10 2014-02-10 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140014684A KR101654969B1 (ko) 2014-02-10 2014-02-10 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150093979A true KR20150093979A (ko) 2015-08-19
KR101654969B1 KR101654969B1 (ko) 2016-09-06

Family

ID=54057559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140014684A Active KR101654969B1 (ko) 2014-02-10 2014-02-10 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101654969B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019189963A1 (ko) * 2018-03-28 2019-10-03 주식회사 리얼타임테크 분산 클러스터 관리 시스템 및 그 방법
US11451645B2 (en) 2016-09-06 2022-09-20 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051930A (ko) * 2001-12-20 2003-06-26 한국전자통신연구원 클러스터 시스템의 고 가용성 구현장치 및 방법
KR20110024508A (ko) * 2009-09-02 2011-03-09 한양대학교 산학협력단 고성능 클러스터를 제공하는 가상화 서비스 관리 시스템 및 방법 그리고 가상화 서비스 시스템 및 가상화 서비스 제공 방법
KR20130048093A (ko) * 2011-11-01 2013-05-09 한국전자통신연구원 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
KR20130060136A (ko) * 2011-11-29 2013-06-07 건국대학교 산학협력단 분산 오디오 검색 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051930A (ko) * 2001-12-20 2003-06-26 한국전자통신연구원 클러스터 시스템의 고 가용성 구현장치 및 방법
KR20110024508A (ko) * 2009-09-02 2011-03-09 한양대학교 산학협력단 고성능 클러스터를 제공하는 가상화 서비스 관리 시스템 및 방법 그리고 가상화 서비스 시스템 및 가상화 서비스 제공 방법
KR20130048093A (ko) * 2011-11-01 2013-05-09 한국전자통신연구원 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
KR20130060136A (ko) * 2011-11-29 2013-06-07 건국대학교 산학협력단 분산 오디오 검색 시스템 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451645B2 (en) 2016-09-06 2022-09-20 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
US11811895B2 (en) 2016-09-06 2023-11-07 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
WO2019189963A1 (ko) * 2018-03-28 2019-10-03 주식회사 리얼타임테크 분산 클러스터 관리 시스템 및 그 방법
KR20190113366A (ko) * 2018-03-28 2019-10-08 주식회사 리얼타임테크 분산 클러스터 관리 시스템 및 그 방법

Also Published As

Publication number Publication date
KR101654969B1 (ko) 2016-09-06

Similar Documents

Publication Publication Date Title
US12314285B2 (en) Resource management systems and methods
US11847098B2 (en) Metadata control in a load-balanced distributed storage system
US10356150B1 (en) Automated repartitioning of streaming data
US20170024251A1 (en) Scheduling method and apparatus for distributed computing system
CN115774599A (zh) 用于使用容器编排服务管理的集群的分布式数据网格路由
KR101654969B1 (ko) 가상화 클러스터 환경에서 네임 노드를 할당하는 방법 및 장치
Kurt et al. A fault-tolerant environment for large-scale query processing
Shabeera et al. A novel approach for improving data locality of mapreduce applications in cloud environment through intelligent data placement
AU2024204134A1 (en) Cloud database storage system

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20140210

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20150421

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20140210

Comment text: Patent Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20160216

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20160830

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20160831

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20160831

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20190702

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20190702

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20200625

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20210628

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20220812

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20230829

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20240502

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20250421

Start annual number: 10

End annual number: 10

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载