KR101661475B1 - 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템 - Google Patents

이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템 Download PDF

Info

Publication number
KR101661475B1
KR101661475B1 KR1020150088625A KR20150088625A KR101661475B1 KR 101661475 B1 KR101661475 B1 KR 101661475B1 KR 1020150088625 A KR1020150088625 A KR 1020150088625A KR 20150088625 A KR20150088625 A KR 20150088625A KR 101661475 B1 KR101661475 B1 KR 101661475B1
Authority
KR
South Korea
Prior art keywords
map
servers
task
server
performance
Prior art date
Application number
KR1020150088625A
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 숭실대학교산학협력단
Application granted granted Critical
Publication of KR101661475B1 publication Critical patent/KR101661475B1/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
    • 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/505Allocation 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 load
    • G06F17/30194
    • 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

Landscapes

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

Abstract

이기종 클러스터 상에서 하둡 부하 분산 방법은, 각 서버의 CPU 코어수와 가용 메모리 크기에 기초하여 서버들의 성능을 평가하는 단계; 상기 서버들의 성능에 비례하여, 각 서버에서 최대로 수행 가능한 맵 태스크(Map Task)의 개수를 의미하는 맵 슬롯의 개수를 결정하는 단계; 상기 결정된 맵 슬롯의 개수에 따라, 각 서버에서 할당된 맵 태스크를 수행하는 단계; 및 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크(Reduce Task)를 수행할 서버를 결정하는 단계를 포함한다. 이에 따라, 서버 간 성능을 고려한 부하분산이 이루어지므로, 하둡 맵리듀스 실행의 성능을 향상시킬 수 있다.

Description

이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템{LOAD BALANCING METHOD FOR IMPROVING HADOOP PERFORMANCE IN HETEROGENEOUS CLUSTERS, RECORDING MEDIUM AND HADOOP MAPREDUCE SYSTEM FOR PERFORMING THE METHOD}
본 발명은 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템에 관한 것으로서, 더욱 상세하게는 성능이 다양한 서버로 이루어진 이기종 클러스터 상에서 하둡 맵리듀스를 수행하는 경우 발생하는 성능 저하를 개선하기 위한 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템에 관한 것이다.
컴퓨터 시스템이 더욱 발달하고 통신 기술이 널리 통용됨에 따라 기업과 공공기관 등은 지난 수십 년간 수많은 데이터를 양산하였다. 또한, 소셜 네트워크 서비스(SNS)와 전자상거래의 사용량 증가는 사용자와 관련한 대량의 데이터를 만들어내고 있다. 이에 따라, 데이터를 분석하여 기업의 수익 창출에 활용하거나 더 나은 서비스를 제공하려는 연구가 이루어졌다.
하둡(Hadoop)은 대용량 데이터를 다수의 서버에서 분산 병렬처리 하기 위해 개발된 분산 파일 시스템이다. 하둡은 데이터를 보관하는 각 서버(데이터노드, Data node)에서 저장된 데이터를 처리하고 분석하기 위해 맵리듀스(MapReduce) 프로그래밍 모델을 사용한다. 사용자가 하나의 맵리듀스 작업(Job)을 수행시키면 이 작업은 복수의 맵 태스크(Map Task)와 리듀스 태스크(Reduce Task)로 나뉘어 각 서버에서 수행된다. 하둡은 이러한 맵리듀스 프로그래밍 모델을 이용해서 하나의 작업을 분산 수행시키므로, 데이터노드의 개수가 증가하면 그 수에 비례해서 성능이 향상되는 장점이 있다.
그러나, 클러스터를 구성하는 각 서버의 성능이 다양한 이기종 클러스터(heterogeneous clusters)를 구성할 경우, 전체 시스템 자원이 증가함에 비례하여 성능이 향상되지 않는 문제가 발생하고, 심지어 저성능 서버를 추가하는 경우에는 성능이 저하되는 문제가 발생하기도 한다. 이러한 문제를 해결하기 위해 최근 여러 연구가 진행되고 있다.
LATE 알고리즘 또는 LA(Load-Aware) 알고리즘과 같은 스케줄러를 개선하는 방식(비특허문헌 1, 비특허문헌 2)은 투기적 실행을 효율적으로 수행시켜 작업의 수행 시간을 감소시킨다. 그러나, 동일 기종으로 구성된 클러스터에서는 발생하지 않을 투기적 실행이 이기종 클러스터에서 나타나는 근본적인 문제를 해결하지는 못한다. 투기적 실행은 동일한 태스크를 다른 서버에서 중복해서 수행시키고 하나의 태스크가 완료되면 다른 태스크의 수행 결과는 버리는 방식으로 작동하므로, 수행 자체가 효율적이지 않다. 또한, 클러스터 내에 가용 슬롯(slot)이 부족한 경우에는 추론적 실행이 불가능한 문제도 있다.
Wei-Tsung Su 등은 맵리듀스를 수행할 최적의 데이터노드 개수와 태스크의 개수를 결정하는 방법(비특허문헌 3)을 제안하였다. 제안한 방법에서 요구되는 출력 데이터의 크기나 작업의 예상 수행시간 등은 정확이 떨어지는 값이 아니므로 계산이 필요하다. 그러나, 이러한 값을 얻기 위한 방법이나 공식 등을 제안하지는 못했다.
Jiong Xie 등은 데이터노드의 성능에 비례하여 데이터를 배치할 것을 제안(비특허문헌 4)하였다. 이 방식은 서버의 성능을 계산하기 위하여 각 데이터노드에서 기준 프로그램을 수행한 후 수행시간을 정규화하여 데이터노드의 성능을 수치화한다. 그러나, 기준 프로그램이 바뀌면 데이터노드의 성능도 다르게 계산되는 문제가 있다. 또한 데이터가 추가되는 경우, 데이터노드가 고장나는 경우, 데이터노드가 추가되거나 제거되는 경우, 다시 성능에 비례하여 데이터를 재배치해야 하는 등 추가적인 부하가 발생한다.
정대영 등은 하둡은 가상 클러스터 환경에서 구축한 후 성능이 저하되는 노드에 CPU시간을 더 할당하는 방식(비특허문헌 5)을 제안하였다. 그러나, 가상화 플랫폼이 아니면 적용이 불가능하고, 하나의 물리 서버에서 구축된 시스템끼리만 CPU를 주고받을 수 있다는 한계가 있다. 대규모 하둡 클러스터를 구축하는 경우 물리 서버의 개수 자체가 늘어나므로 제안한 방식의 효과는 감소한다.
이와 같이 종래 기술에서는 투기적 실행, 가상화, 데이터 재배치와 같은 추가적인 부하가 발생하거나 출력 데이터 크기, 프로그램 수행 시간 등 명확히 알 수 없는 수치를 예측해야 하므로 개선이 필요하다.
Matei Zaharia, Andy Konwinski, Anthony D. Joseph, Randy Katz, and Ion Stoica. Improving MapReduce Performance in Heterogeneous Environments. 8th USENIX Symposium on Operating Systems Design and Implementation, vol. 8, no. 4, 2008. Hsin-Han You, Chun-Chung Yang, and Jiun-Long Huang. A load-aware scheduler for MapReduce framework in heterogeneous cloud environments. In Proceedings of the 2011 ACM Symposium on Applied Computing, ACM, pp. 127-132, 2011. Wei-Tsung Su, and Wei-Fan Pan. An Adaptive Task Allocation Approach for MapReduce in a Heterogeneous Cloud. Communication Systems and Networks, 2011 Third International Conference on Computational Intelligence, IEEE, pp. 287-291, 2011. Jiong Xie, Shu Yin, Xiaojun Ruan, Zhiyang Ding, Yun Tian, James Majors, Adam Manzanares, and Xiao Qin. Improving mapreduce performance through data placement in heterogeneous hadoop clusters. Workshops and Phd Forum, 2010 IEEE International Symposium on Parallel & Distributed Processing, IEEE, pp. 1-9, 2010. 정대영, 남윤성, 이권용, 박성용. 가상 클러스터 환경에서 하둡 맵리듀스의 성능 향상을 위한 부하분산 기법. 정보과학회논문지: 컴퓨팅의 실제 및 레터 제19권 제12호, pp. 713-717, 2013.
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 이루어진 이기종 클러스터 상에서 하둡 맵리듀스 수행의 성능을 개선하기 위한 하둡 부하 분산 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 하둡 부하 분산 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 하둡 부하 분산 방법을 수행하기 위한 하둡 맵리듀스 시스템을 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 이기종 클러스터 상에서 하둡 부하 분산 방법은, 각 서버의 CPU 코어수와 가용 메모리 크기에 기초하여 서버들의 성능을 평가하는 단계; 상기 서버들의 성능에 비례하여, 각 서버에서 최대로 수행 가능한 맵 태스크(Map Task)의 개수를 의미하는 맵 슬롯의 개수를 결정하는 단계; 상기 결정된 맵 슬롯의 개수에 따라, 각 서버에서 할당된 맵 태스크를 수행하는 단계; 및 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크(Reduce Task)를 수행할 서버를 결정하는 단계를 포함한다.
본 발명의 실시예에서, 상기 서버들의 성능에 비례하여, 각 서버에서 최대로 수행 가능한 맵 태스크의 개수를 의미하는 맵 슬롯의 개수를 결정하는 단계는, 각 맵 태스크의 메모리 공간 할당 크기를 결정하는 단계; 및 각 맵 태스크의 셔플을 수행하기 위한 메모리 버퍼 크기를 결정하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계는, 상기 서버들을 맵 슬롯의 개수에 따라 정렬하는 단계; 및 상기 맵 슬롯의 개수에 따른 정렬 순서에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계를 포함할 수 있다.
본 발명의 실시예에서, 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계는, 상기 맵 슬롯의 개수가 동일한 서버들이 존재하는 경우, 순위가 중복되는 서버들을 CPU 코어수에 따라 정렬하는 단계; 및 상기 CPU 코어수에 따른 정렬 순서에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계는, 상기 CPU 코어수가 동일한 서버들이 존재하는 경우, 순위가 중복되는 서버들을 가용 메모리 크기에 따라 정렬하는 단계; 및 상기 가용 메모리 크기에 따른 정렬 순서에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계를 더 포함할 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 이기종 클러스터 상에서 하둡 부하 분산 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 하둡 맵리듀스 시스템은, 이기종 클러스터로 구성되어, 맵리듀스의 맵 태스크(Map Task)와 리듀스 태스크(Reduce Task)를 수행하는 다수의 서버들; 및 상기 각 서버의 CPU 코어수와 가용 메모리 크기에 기초하여 서버들의 성능을 평가하고, 상기 서버들의 성능에 비례하여, 각 서버에서 최대로 수행 가능한 맵 태스크의 개수를 의미하는 맵 슬롯의 개수를 결정하는 제어부를 포함한다.
본 발명의 실시예에서, 상기 제어부는, 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정할 수 있다.
본 발명의 실시예에서, 상기 제어부는, 상기 서버들을 맵 슬롯의 개수, CPU 코어수, 가용 메모리 크기를 차례로 비교하여 리듀스 태스크를 수행할 서버를 결정할 수 있다.
본 발명의 실시예에서, 상기 제어부는, 각 맵 태스크의 메모리 공간 할당 크기와 각 맵 태스크의 셔플을 수행하기 위한 메모리 버퍼 크기를 결정할 수 있다.
이와 같은 이기종 클러스터 상에서 하둡 부하 분산 방법에 따르면, 시스템 정보로부터 실시간으로 확인 가능한 CPU 코어 수와 현재 사용 가능한 메모리 크기 정보만을 사용하여 성능 측정에 사용하는 값을 얻기가 쉽고 알고리즘이 간단하므로 서버의 부하를 줄일 수 있다. 또한, 서버의 성능을 고려하여 부하 분산이 이루어지므로 수행 시간의 기복을 줄이고 빠른 수행을 가능하게 한다.
도 1은 본 발명의 일 실시예에 따른 하둡 맵리듀스 시스템의 블록도이다.
도 2는 하둡 맵리듀스의 대략적인 수행 과정을 보여주는 개념도이다.
도 3은 하둡 맵리듀스의 데이터 처리 과정을 보여주는 개념도이다.
도 4는 맵 슬롯 개수에 따른 수행시간의 비교를 위한 환경을 나타낸다.
도 5는 맵 슬롯의 개수별 WordCount 프로그램의 수행시간을 비교한 그래프이다.
도 6은 본 발명의 일 실시예에 따른 맵 슬롯 개수 결정 알고리즘을 나타낸다.
도 7은 본 발명의 일 실시예에 따른 각 맵 태스크 별 메모리 크기 할당 알고리즘을 나타낸다.
도 8은 도 6 및 도 7의 알고리즘을 설명하는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 리듀스 태스크를 수행할 데이터노드를 선택하는 알고리즘을 설명하는 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 하둡 맵리듀스 시스템의 블록도이다. 도 2는 하둡 맵리듀스의 대략적인 수행 과정을 보여주는 개념도이다. 도 3은 하둡 맵리듀스의 데이터 처리 과정을 보여주는 개념도이다.
본 발명은 이기종 클러스터 환경에서 하둡 맵리듀스 프로그램의 성능 저하 현상을 개선하기 위한 부하 분산 방법을 제안한다. 본 발명에 따른 하둡 부하 분산 방법은 각 데이터노드의 맵 슬롯 개수 및 메모리 크기를 결정하기 위하여 시스템의 CPU 코어수와 메모리 크기 정보를 이용하는 알고리즘과 리듀스 태스크 수행을 위한 데이터노드 선택 기법을 활용한다.
도 1을 참조하면, 본 발명에 따른 하둡 맵리듀스 시스템(1)은 하나의 네임노드(10, NameNode) 및 다수의 데이터노드들(20, 40, 60, DataNodes)를 포함한다. 도 1에서는 세 개의 데이터노드들을 도시하였으나, 이에 한정되지 않고 두 개 이상의 데이터 노드들을 포함할 수 있다.
하둡(Hadoop)은 대용량 데이터를 분산처리 할 수 있는 자바 기반의 소프트웨어이며, 파일을 저장하기 위해 하둡 파일 시스템(HDFS, Hadoop Distributed File System)을 사용하고, 저장한 파일을 처리하기 위해 맵리듀스 프로그래밍 모델(MapReduce Programming Model)을 활용한다.
상기 네임노드(10)는 하둡 파일 시스템의 메타데이터를 관리하고, 파일 시스템의 경로, 복제 수, 파일 저장 위치 등의 정보를 가지고 있다. 상기 네임노드(10)는 실제 데이터는 저장하고 있지 않는다. 상기 네임노드(10)는 데이터노드(20, 40, 60)의 성능에 따라 수행할 맵 태스크의 개수 및 리듀스 태스크를 수행할 데이터노드(20, 40, 60)를 결정하므로, 본 발명에서는 제어부라고도 불린다.
상기 데이터노드(20, 40, 60)는 실제 데이터를 저장하고 있으며, 본 발명에서 서버라고도 불리운다. 상기 데이터노드(20, 40, 60)는, 성능이 다양한 서버로 이루어진 이기종 클러스터로 형성되어 있다. 각 데이터는 여러 데이터노드에 걸쳐 중복 저장되어 있으므로, 하나의 데이터노드에서 고장이 발생하더라도 데이터 손실이 없다. 상기 하둡 맵리듀스 시스템(1)이 맵리듀스 작업을 수행하는 경우, 상기 데이터노드(20, 40, 60)에서 작업이 수행 된다.
상기 이기종 클러스터(heterogeneous clusters)란, 성능이 다양한 서버로 이루어진 클러스터를 의미한다. 이 때, ‘이기종’의 의미가 각 서버를 구성하는 하드웨어의 다양함을 의미할 수도 있고, 운영체제와 같은 소프트웨어의 다양함을 의미할 수도 있으나, 하둡은 항상 자바 가상 머신 위에서 작동하므로, 본 발명에서의 ‘이기종’은 환경의 구성과 상관없이 단순히 응용 수준에서의 성능 차이가 다양함을 의미한다.
본 발명에서, 작업(Job)은 사용자에 의해 요청된 작업은 하나 이상의 맵 태스크와 하나 이상의 리듀스 태스크로 나뉘어 상기 데이터노드(20, 40, 60)에서 수행되며, 나뉘어 수행한 모든 맵 태스크와 리듀스 태스크가 완료되어야 작업이 완료된다.
여기서, 맵 태스크(Map Task)는 맵리듀스 프로그램을 수행할 경우 수행되는 두 가지 종류의 태스크 먼저 수행되는 태스크이다. 동일한 기능을 하는 프로그램이 여러 데이터노드들에서 병렬적으로 데이터를 처리하며, 맵 태스크에서 수행한 출력 데이터는 리듀스 태스크의 입력 데이터로 사용된다. 리듀스 태스크(Reduce Task)는 맵 태스크를 수행한 후, 저장된 출력 데이터를 가져와 리듀스 작업을 수행한다.
도 2를 참조하면, 하둡 맵리듀스의 대략적인 수행 과정을 보여주는데, 사용자는 맵(map)과 리듀스(reduce) 함수를 정의하여 Key, Value 쌍으로 정의된 데이터를 입력으로 받아 대규모의 클러스터에서 병렬적으로 수행시키는 방식으로 대용량의 데이터를 효과적으로 처리할 수 있다.
맵 태스크는 데이터를 일정한 크기 단위(split)로 받아 Key, Value 형태로 읽고 처리 후 다시 Key, Value 형태의 데이터로 저장한다. 맵 태스크의 출력 데이터는 Key가 중복되어 있으므로, 셔플(Shuffle) 단계에서 Key 값을 기준으로 데이터를 정렬한 후 Key, list(Value) 형태로 정리한다. 리듀스 태스크는 정렬된 Key, list(Value) 형태의 데이터를 입력으로 받아 처리 후 그 결과를 저장한다. 사용자가 구현한 맵과 리듀스 함수는 Key, Value 형태의 서로 독립적인 데이터를 처리하므로 다수의 서버에서 병렬적으로 수행될 수 있다.
도 3을 참조하면, 하둡에서 맵리듀스의 데이터 처리 과정으로서, 맵리듀스가 실행되면 네임노드(10)에 있는 잡트래커(JobTracker)는 수행할 맵 태스크의 개수와 데이터노드 등을 결정한다. 선택된 데이터노드에 있는 태스크트래커(TaskTracker)는 해당 데이터를 이용하여 맵 태스크를 수행한다.
맵 태스크가 처리한 데이터는 메모리 상에서 각 데이터가 어떤 리듀스 태스크에 의해서 처리될 것인지에 따라 분류(Partitioning)되고, 각 파티션 내부에서 Key를 기준으로 정렬(Sorting)된다. 이렇게 정렬된 데이터는 데이터노드의 파일 시스템에 저장되고, 해당 파일의 경로가 네임노드(10)에게 알려진다. 리듀스 태스크를 수행할 노드의 태스크트래커는 네임노드(10)에서 맵 태스크의 결과가 저장된 경로를 파악하고, 데이터를 복사해 온 후 리듀스 태스크를 수행한다.
본 발명은 상기 네임노드(10)의 잡트래커가 맵 태스크의 개수와 데이터노드를 결정하는데 있어, 각 데이터노드의 코어 수와 메모리 크기를 고려한 맵 슬롯 할당 방법을 제안하고, 리듀스 태스크의 수행을 위한 데이터노드 선정 방법을 제안한다.
본 발명에서 제안하는 부하 분산 기법은, 서버의 성능을 정량적으로 평가하기 위해 각 서버의 CPU 코어 수와 메모리 크기를 고려한다. 또한, 성능에 비례하여 부하를 할당하기 위해 그 단위로 맵 슬롯(Map Slot)을 사용한다.
맵 슬롯의 개수는 각 데이터노드(20, 40, 60)가 동시에 수행 가능한 맵 태스크의 개수를 의미한다. 예를 들어, 기본 설정은 2이고, 이 것은 하나의 데이터노드에서 동시에 최대 2개의 맵 태스크가 수행 될 수 있음을 의미한다.
한편, 리듀스 슬롯(Reduce Slot)은 각 데이터노드(20, 40, 60)가 동시에 수행 가능한 리듀스 태스크의 개수를 의미한다. 예를 들어, 기본 설정은 2이고 이 것은 하나의 데이터노드에서 동시에 최대 2개의 리듀스 태스크가 수행 될 수 있음을 의미한다.
본 발명에서 부하를 분산시키기 위한 단위로 맵 슬롯을 사용하는 이유는, 하둡의 많은 연산이 리듀스 태스크보다는 맵 태스크에서 이루어지기 때문이다. 맵리듀스 프로그램 모델의 구조상 맵 태스크에서 처리한 데이터를 리듀스 태스크가 처리한다. 맵 태스크에서 리듀스 태스크로 전달하는 데이터의 양이 적을수록 네트워크 전송 부하가 감소하므로, 개발자는 리듀스에서 상대적으로 적은 데이터를 처리하도록 구현하게 된다. 일반적으로, 리듀스 태스크의 입력 데이터보다 맵 태스크의 입력 데이터가 4배 이상 많다고 알려져 있다.
본 발명에 따른 부하 분산 방법은 코어 수에 따른 최적의 맵 슬롯 개수를 아래의 수학식 1에 의해 결정한다.
Figure 112015060393517-pat00001
Figure 112015060393517-pat00002
Figure 112015060393517-pat00003
수학식 1은 도 4의 환경에서 수학식 2와 수학식 3의 성능을 비교하기 위해 WordCount 프로그램을 수행하는 실험을 통해 얻은 결과이다. 실험의 결과인 도 5를 통해 수학식 1이 가장 좋은 성능을 보여주는 것을 확인할 수 있다.
데이터노드의 코어 수가 많을수록 작업의 처리속도가 증가한다. 따라서, 메모리가 충분한 경우에는 수학식 1이 효과적이다. 그러나, 코어 수가 많음에도 불구하고 메모리가 부족한 경우에는 맵 태스크가 시스템의 스왑(Swap)공간을 사용하여 성능이 저하될 수 있다. 이러한 상황을 고려하여 하나의 맵 태스크가 최소한 200MB의 메모리를 사용할 수 있도록 개선한 방식은 아래의 수학식 4와 같다.
Figure 112015060393517-pat00004
여기서, MapByMem은 각 맵 슬롯에 최소 200MB를 할당하는 경우 최대 맵 슬롯 개수이며, Core는 각 데이터노드별 CPU 코어의 개수이다.
수학식 4에 따른 각 데이터노드(20, 40, 60)의 맵 슬롯 개수 결정 알고리즘은 도 6 및 도 8에 나타나 있다.
도 6 및 도 8을 참조하면, CPU 코어 개수를 MapByCore의 값으로 사용한다(단계 S11).
실험을 통해 메모리가 충분한 경우 맵 슬롯의 개수가 코어 수와 동일한 경우 가장 성능이 좋은 것을 확인하였다. 따라서, CPU 코어 개수를 MapByCore의 값으로 사용한다.
MapByMem은 하나의 맵 슬롯이 200MB의 메모리를 사용할 경우 현재 사용 가능한 총 메모리 크기로 수행 가능한 최대 맵 태스크의 개수를 사용한다(단계 S13). 200MB는 하둡에서 하나의 맵 태스크에 할당하는 최대 메모리 크기 기본 설정에 해당하나, 이는 필요에 따라 설정 가능하다.
즉, MapByMem는 사용 가능한 총 메모리 크기를 200MB로 나눈 정수 값이며, 이 정수값이 1보다 작은 경우(단계 S15), 해당 서버의 맵 슬롯 개수를 의미하는 MapSlots에 1을 할당한다(단계 S17).
반면, MapByMem가 1 이상인 경우, 각 데이터노드 별 CPU 코어의 수를 비교하여(단계 S16), MapByMem가 MapByMem보다 작거나 같은 경우, MapSlots에 MapByCore를 할당한다(단계 S18). 이와 다르게, MapByMem가 MapByMem보다 큰 경우, MapSlots에 MapByMem를 할당한다(단계 S19).
MapSlots은 이후, 서버의 맵 슬롯 개수로 사용되므로(단계 S26), 맵 슬롯을 각 서버의 성능에 비례하여 할당하게 되어 성능에 비례한 부하의 분산이 가능하다.
이와 같이 할당한 맵 슬롯의 개수에 따라, 각 데이터노드(20, 40, 60)는 할당된 맵 태스크를 수행한다. 따라서, 맵 슬롯 개수가 큰 데이터노드에서는 많은 수의 맵 태스크가 수행되고, 반대로 맵 슬롯 개수가 작은 데이터노드에서는 적은 수의 맵 태스크가 수행된다.
결과적으로, 각 서버에서 동시에 수행 가능한 맵 태스크의 개수를 의미하는 맵 슬롯의 개수를 서버의 성능에 비례하여 결정되고, 이를 통해 서버의 성능이 좋을수록 맵 슬롯의 개수를 많이 할당하게 되고 결국 동시에 수행하는 맵 태스크의 개수가 많아지므로 성능을 고려한 부하분산이 이루어지게 된다.
이하에서는, 도 7 및 도 8을 참조하여, 각 맵 태스크 별 메모리 크기 할당 알고리즘을 설명한다.
MapSlots에 1을 할당한 경우(단계 S17), 메모리 부족으로 성능저하가 발생하지 않도록 하기 위해 각 맵 태스크에게 사용 가능한 메모리를 최대한으로 제공한다. 즉, 해당 서버에서 수행할 각 맵 태스크가 사용 가능한 최대 메모리 크기를 의미하는 maxMapMemory에 상기 하둡 맵리듀스 시스템(1)의 사용 가능한 총 메모리 크기를 할당한다(단계 S21).
한편, MapSlots에 MapByCore를 할당한 경우(단계 S18) 및 MapSlots에 MapByMem를 할당한 경우(단계 S19)에는, maxMapMemory에 상기 하둡 맵리듀스 시스템(1)의 사용 가능한 총 메모리를 MapSlots으로 나눈 값을 할당한다(단계 S22).
또한, 맵 태스크가 수행되는 노드에서 셔플(Shuffle)을 수행하기 위한 메모리 버퍼에는 맵 태스크가 사용하는 메모리공간의 50%를 제공하여 메모리 부족으로 인한 디스크 입출력의 증가를 방지한다. 셔플은 맵 태스크와 리듀스 태스크 사이에 데이터가 전달되는 과정으로서, 맵 연산이 이루어진 후부터 리듀스 연산이 이루어지기 전까지 데이터가 정렬, 복사, 합병되는 과정을 의미한다.
구체적으로, 각 맵 슬롯별 메모리가 200MB 이상인 경우에는 셔플 메모리공간을 각 맵 슬롯의 50%로 비례하여 할당한다(단계 S24). ioSortMb는 해당 서버에서 수행할 각 맵 태스크가 사용 가능한 최대 메모리 중 셔플(Shuffle)에 사용할 버퍼의 크기를 의미한다.
반면, 메모리가 부족하여 맵 슬롯별 메모리가 200MB 이하인 경우에는 셔플 메모리 공간을 하둡의 기본 설정(io.sort.mb)인 100MB만을 할당한다(단계 S23).
아래의 수학식 5는 각 맵 태스크 별 메모리 공간 할당 크기를 결정하는 공식이고, 수학식 6은 각 맵 태스크 별 셔플을 수행하기 위한 메모리 버퍼 크기를 결정하는 공식이다.
Figure 112015060393517-pat00005
Figure 112015060393517-pat00006
여기서, available Mem은 남은 메모리 크기를 나타내고, MapByMem는 각 맵 슬롯에 최소 200MB를 할당하는 경우 최대 맵 슬롯 개수이며, Core는 각 데이터노드별 CPU 코어의 개수이다.
상기와 같은 알고리즘을 통해서, MapByCore와 MapByMem를 입력값으로 하여, MapSlots, maxMapMemory, ioSortMb을 출력값으로 한다. 구체적으로, MapSlots는 서버의 맵 슬롯 개수로 사용되고(단계 S26), maxMapMemory는 각 맵 슬롯의 최대 메모리 크기로 사용된다(단계 S27). 또한, ioSortMb는 각 맵 태스크에서 수행하는 셔플 메모리 버퍼 크기로 사용된다(단계 S28).
각 데이터노드(20, 40, 60)가 할당된 맵 태스크의 수행을 완료하면, 다음으로 상기 네임노드(10)의 잡트래커는 리듀스 태스크를 수행할 데이터노드(20, 40, 60)를 결정한다.
본 발명에서는 맵 태스크와 달리 리듀스 태스크에 대해서는 슬롯의 개수가 아닌 리듀스 태스크를 수행할 데이터노드(20, 40, 60)를 선택하는 방법을 제안한다. 리듀스 태스크를 고성능 데이터노드(20, 40, 60)에서 수행시키기 위해 맵 슬롯이 많이 할당된 데이터노드(20, 40, 60)에서 리듀스 태스크를 우선 수행시키는 것이다.
도 9를 참조하면, 리듀스 태스크를 수행할 데이터노드를 선택하기 위해 데이터노드의 우선순위를 결정하기 위한 알고리즘으로서, 데이터노드를 성능 순으로 정렬하기 위해 먼저 맵 슬롯 개수를 고려한다.
다시 말해, 리듀스 태스크가 시작되면, 서버들을 맵 슬롯 개수가 많은 순으로 정렬한다(단계 S31). 상기 맵 슬롯의 개수가 동일한 서버들이 존재하는 경우, 다음 우선순위 결정을 위해 CPU 코어수를 고려한다. 맵 슬롯 개수에 따라 정렬된 서버들 중 맵 슬롯 개수가 가장 많은 데이터노드가 리듀스 태스크를 수행할 데이터노드로 결정된다(단계 S40).
상기 맵 슬롯의 개수가 동일한 서버들이 존재하는 경우(단계 S33), 순위가 중복되는 서버들을 CPU 코어수에 따라 정렬 한다(단계 S35). 상기 CPU 코어수가 동일한 서버들이 존재하는 경우, 다음 우선순위 결정을 위해 가용 메모리 크기를 고려한다. CPU 코어수에 따라 정렬된 서버들 중 CPU 코어수가 가장 많은 데이터노드가 리듀스 태스크를 수행할 데이터노드로 결정된다(단계 S40).
상기 CPU 코어수가 동일한 서버들이 존재하는 경우(단계 S37), 순위가 중복되는 서버들을 가용 메모리 크기에 따라 정렬 한다(단계 S39). 가용 메모리 크기에 따라 정렬된 서버들 중 가용 메모리 크기가 가장 많은 데이터노드가 리듀스 태스크를 수행할 데이터노드로 결정된다(단계 S40). 본 발명은 리듀스 태스크를 고성능 서버에서 수행하도록 하므로, 태스크 수행 시간의 기복을 줄이고 빠른 수행이 가능하다.
각 노드의 맵 슬롯 개수가 하둡의 성능에 영향을 주는 것에 비해 리듀스 슬롯의 개수는 상대적으로 큰 영향을 주지 못한다. 맵 태스크에 비해 리듀스 태스크가 처리하는 데이터의 양이 적기 때문이다. 작업에 필요한 리듀스 태스크 개수 또한 맵 태스크에 비해 훨씬 적다. 이러한 이유로 본 발명에서는 리듀스 슬롯 개수가 아닌 리듀스 태스크를 수행할 데이터노드를 선택한다.
이를 위해, 맵 슬롯을 기준으로 데이터노드를 정렬하여 리듀스 태스크를 할당한다. 이와 같이 정렬하는 이유는 맵 슬롯 개수에 데이터노드의 성능이 반영되어 있기 때문이다. 또한, 맵 태스크가 많이 수행된 데이터노드에서 리듀스 태스크 수행 시 네트워크상의 데이터 전송 량이 감소하여 부하가 줄어들게 된다.
이와 같은, 이기종 클러스터 상에서 하둡 부하 분산 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
기존의 부하분산 방식에서는 프로그램의 결과 데이터 크기나 예상 수행 시간 등의 정확하지 않은 정보를 예측하여 사용하거나 데이터 재배치, 가상화 등의 추가적인 부하가 발생하였으나, 본 발명은 서버의 효율적인 부하분산을 통해, 수행시간을 줄이고 성능 저하를 개선하므로, 컴퓨터 시스템 분야 전반에 걸쳐 활용 가능할 것으로 기대된다.
1: 하둡 맵리듀스 시스템
10: 네임노드
20, 40, 60: 데이터노드

Claims (10)

  1. 제어부가 각 서버의 CPU 코어수와 가용 메모리 크기에 기초하여 서버들의 성능을 평가하는 단계;
    상기 제어부가 상기 서버들의 성능에 비례하여, 각 서버에서 최대로 수행 가능한 맵 태스크(Map Task)의 개수를 의미하는 맵 슬롯의 개수를 결정하는 단계;
    상기 제어부가 상기 결정된 맵 슬롯의 개수에 따라, 각 서버에서 할당된 맵 태스크를 수행하는 단계; 및
    상기 제어부가 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크(Reduce Task)를 수행할 서버를 결정하는 단계를 포함하고,
    상기 서버들의 성능에 비례하여, 각 서버에서 최대로 수행 가능한 맵 태스크의 개수를 의미하는 맵 슬롯의 개수를 결정하는 단계는,
    각 맵 태스크의 메모리 공간 할당 크기를 결정하는 단계; 및
    각 맵 태스크의 셔플을 수행하기 위한 메모리 버퍼 크기를 결정하는 단계를 더 포함하는, 이기종 클러스터 상에서 하둡(Hadoop) 부하 분산 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계는,
    상기 서버들을 맵 슬롯의 개수에 따라 정렬하는 단계; 및
    상기 맵 슬롯의 개수에 따른 정렬 순서에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계를 포함하는, 이기종 클러스터 상에서 하둡 부하 분산 방법.
  4. 제3항에 있어서, 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계는,
    상기 맵 슬롯의 개수가 동일한 서버들이 존재하는 경우, 순위가 중복되는 서버들을 CPU 코어수에 따라 정렬하는 단계; 및
    상기 CPU 코어수에 따른 정렬 순서에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계를 더 포함하는, 이기종 클러스터 상에서 하둡 부하 분산 방법.
  5. 제4항에 있어서, 상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계는,
    상기 CPU 코어수가 동일한 서버들이 존재하는 경우, 순위가 중복되는 서버들을 가용 메모리 크기에 따라 정렬하는 단계; 및
    상기 가용 메모리 크기에 따른 정렬 순서에 따라, 리듀스 태스크를 수행할 서버를 결정하는 단계를 더 포함하는, 이기종 클러스터 상에서 하둡 부하 분산 방법.
  6. 제1항, 제3항 내지 제5항 중 어느 하나의 항에 따른 이기종 클러스터 상에서 하둡 부하 분산 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  7. 이기종 클러스터로 구성되어, 맵리듀스의 맵 태스크(Map Task)와 리듀스 태스크(Reduce Task)를 수행하는 다수의 서버들; 및
    상기 서버들 각각의 CPU 코어수와 가용 메모리 크기에 기초하여 서버들의 성능을 평가하고, 상기 서버들의 성능에 비례하여, 각 서버에서 최대로 수행 가능한 맵 태스크의 개수를 의미하는 맵 슬롯의 개수를 결정하는 제어부를 포함하고,
    상기 제어부는,
    각 맵 태스크의 메모리 공간 할당 크기와 각 맵 태스크의 셔플을 수행하기 위한 메모리 버퍼 크기를 결정하는, 하둡(Hadoop) 맵리듀스 시스템.
  8. 제7항에 있어서, 상기 제어부는,
    상기 서버들의 성능에 따르는 우선순위에 따라, 리듀스 태스크를 수행할 서버를 결정하는, 하둡 맵리듀스 시스템.
  9. 제8항에 있어서, 상기 제어부는,
    상기 서버들을 맵 슬롯의 개수, CPU 코어수, 가용 메모리 크기를 차례로 비교하여 리듀스 태스크를 수행할 서버를 결정하는, 하둡 맵리듀스 시스템.
  10. 삭제
KR1020150088625A 2015-06-10 2015-06-22 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템 KR101661475B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150081894 2015-06-10
KR20150081894 2015-06-10

Publications (1)

Publication Number Publication Date
KR101661475B1 true KR101661475B1 (ko) 2016-09-30

Family

ID=57079618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150088625A KR101661475B1 (ko) 2015-06-10 2015-06-22 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템

Country Status (1)

Country Link
KR (1) KR101661475B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109638A (ko) 2018-03-05 2019-09-26 울산과학기술원 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
CN110618865A (zh) * 2019-09-20 2019-12-27 中国银行股份有限公司 Hadoop任务调度方法及装置
CN115269203A (zh) * 2022-09-26 2022-11-01 环球数科集团有限公司 一种基于MapReduce模型的分布式并行计算编程***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070032441A (ko) * 2005-09-16 2007-03-22 성균관대학교산학협력단 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법
US20130318538A1 (en) * 2011-02-02 2013-11-28 Abhishek Verma Estimating a performance characteristic of a job using a performance model
KR20150050689A (ko) * 2013-10-30 2015-05-11 삼성전자주식회사 데이터 분산 처리 시스템의 병목 현상 분석 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070032441A (ko) * 2005-09-16 2007-03-22 성균관대학교산학협력단 퍼지 그룹핑 기반의 로드 밸런싱 시스템 및 그 로드 밸런싱방법
US20130318538A1 (en) * 2011-02-02 2013-11-28 Abhishek Verma Estimating a performance characteristic of a job using a performance model
KR20150050689A (ko) * 2013-10-30 2015-05-11 삼성전자주식회사 데이터 분산 처리 시스템의 병목 현상 분석 장치 및 방법

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Hsin-Han You, Chun-Chung Yang, and Jiun-Long Huang. A load-aware scheduler for MapReduce framework in heterogeneous cloud environments. In Proceedings of the 2011 ACM Symposium on Applied Computing, ACM, pp. 127-132, 2011.
Jiong Xie 외 7명. 'Improving MapReduce performance through data placement in heterogeneous Hadoop clusters.' 2010 IEEE International Symposium on Parallel & Distributed Processing, 2010.04.23., pp.1-9.
Jiong Xie 외 7명. 'Improving MapReduce performance through data placement in heterogeneous Hadoop clusters.' 2010 IEEE International Symposium on Parallel & Distributed Processing, 2010.04.23., pp.1-9. *
Jiong Xie, Shu Yin, Xiaojun Ruan, Zhiyang Ding, Yun Tian, James Majors, Adam Manzanares, and Xiao Qin. Improving mapreduce performance through data placement in heterogeneous hadoop clusters. Workshops and Phd Forum, 2010 IEEE International Symposium on Parallel & Distributed Processing, IEEE, pp. 1-9, 2010.
Matei Zaharia, Andy Konwinski, Anthony D. Joseph, Randy Katz, and Ion Stoica. Improving MapReduce Performance in Heterogeneous Environments. 8th USENIX Symposium on Operating Systems Design and Implementation, vol. 8, no. 4, 2008.
Wei-Tsung Su, and Wei-Fan Pan. An Adaptive Task Allocation Approach for MapReduce in a Heterogeneous Cloud. Communication Systems and Networks, 2011 Third International Conference on Computational Intelligence, IEEE, pp. 287-291, 2011.
정대영, 남윤성, 이권용, 박성용. 가상 클러스터 환경에서 하둡 맵리듀스의 성능 향상을 위한 부하분산 기법. 정보과학회논문지: 컴퓨팅의 실제 및 레터 제19권 제12호, pp. 713-717, 2013.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109638A (ko) 2018-03-05 2019-09-26 울산과학기술원 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
CN110618865A (zh) * 2019-09-20 2019-12-27 中国银行股份有限公司 Hadoop任务调度方法及装置
CN110618865B (zh) * 2019-09-20 2022-07-05 中国银行股份有限公司 Hadoop任务调度方法及装置
CN115269203A (zh) * 2022-09-26 2022-11-01 环球数科集团有限公司 一种基于MapReduce模型的分布式并行计算编程***

Similar Documents

Publication Publication Date Title
Chowdhury et al. Implementation and performance analysis of various VM placement strategies in CloudSim
Shakarami et al. Data replication schemes in cloud computing: a survey
Lee et al. Topology-aware resource allocation for data-intensive workloads
JP5929196B2 (ja) 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
Bryk et al. Storage-aware algorithms for scheduling of workflow ensembles in clouds
US10356150B1 (en) Automated repartitioning of streaming data
Ramanathan et al. Towards optimal resource provisioning for Hadoop-MapReduce jobs using scale-out strategy and its performance analysis in private cloud environment
US10616134B1 (en) Prioritizing resource hosts for resource placement
Wang et al. DCCP: an effective data placement strategy for data-intensive computations in distributed cloud computing systems
CN112948279A (zh) 管理存储***中的访问请求的方法、设备和程序产品
KR101661475B1 (ko) 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템
CN112506650A (zh) 资源分配方法、***、计算机设备和存储介质
Manikandan et al. Virtualized load balancer for hybrid cloud using genetic algorithm
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN112805683A (zh) 使用流借用的流分配
Kim et al. A parallel migration scheme for fast virtual machine relocation on a cloud cluster
Farzaneh et al. A novel virtual machine placement algorithm using RF element in cloud infrastructure
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US11080092B1 (en) Correlated volume placement in a distributed block storage service
US11336519B1 (en) Evaluating placement configurations for distributed resource placement
Gao et al. A load-aware data migration scheme for distributed surveillance video processing with hybrid storage architecture
CN112805684A (zh) 使用恢复借用的资源分配
CN112823338A (zh) 使用分布式分段处理借用的资源分配
Nabavinejad et al. Data locality and VM interference aware mitigation of data skew in hadoop leveraging modern portfolio theory
CN117311910B (zh) 一种高性能虚拟密码机运行方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 4