KR20170097452A - 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법 - Google Patents

맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법 Download PDF

Info

Publication number
KR20170097452A
KR20170097452A KR1020160019230A KR20160019230A KR20170097452A KR 20170097452 A KR20170097452 A KR 20170097452A KR 1020160019230 A KR1020160019230 A KR 1020160019230A KR 20160019230 A KR20160019230 A KR 20160019230A KR 20170097452 A KR20170097452 A KR 20170097452A
Authority
KR
South Korea
Prior art keywords
rack
map
shuffling
reduction
policy
Prior art date
Application number
KR1020160019230A
Other languages
English (en)
Other versions
KR102592611B1 (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 KR1020160019230A priority Critical patent/KR102592611B1/ko
Priority to US15/408,160 priority patent/US10530707B2/en
Publication of KR20170097452A publication Critical patent/KR20170097452A/ko
Application granted granted Critical
Publication of KR102592611B1 publication Critical patent/KR102592611B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법이 개시된다. 일 실시 예에 따른 맵 리듀스 장치는, 맵 연산을 실행하는 맵 연산기와, 맵 연산기의 맵 결과를 집계축약하는 컴바이너와, 맵 리듀스 제어장치의 정책에 따라 동일한 랙 스위치에 연결된 맵 리듀스 장치 간의 맵 연산결과를 집계축약하는 랙 컴바이너와, 컴바이너 또는 랙 컴바이너의 집계축약 결과를 수신하여 리듀스 연산을 실행하는 리듀스 연산기를 포함한다.

Description

맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법 {Map reduce apparatus, controller for map reduce and method thereof}
본 발명은 대용량 데이터 처리를 위한 분산 병렬 컴퓨팅 기술에 관한 것이다.
맵 리듀스(Map Reduce)는 구글에서 정보검색을 위한 데이터 가공을 목적으로 개발된 분산환경에서의 병렬 데이터 처리 프로그래밍 모델로서, 대용량 데이터를 처리할 수 있는 방법을 제공한다. 맵 리듀스는 프로그래밍 언어에서 맵(map)과 리듀스(reduce)라는 함수의 개념을 차용하여 시스템의 분산구조를 감추면서 범용 프로그래밍 언어를 이용해 병렬 프로그래밍을 가능하게 한다.
맵 리듀스 처리과정은 맵(map) 연산 단계, 리듀스(reduce) 연산 단계, 맵의 결과를 리듀스하기 위해 데이터를 이동하는 셔플과 정렬단계(이하 '셔플 단계'라 칭함)로 구성된다. 맵 연산기는 레코드를 읽어 필터링하거나 다른 값으로 변환하여 새로운 키와 값을 가지는 레코드를 산출한다. 이를 중간 데이터(Intermediate data)라고 부르며, 맵 연산기의 로컬 디스크에 저장된다. 리듀스 연산기는 맵 과정을 통해 출력된 결과 값을 새로운 키 기준으로 그룹화(grouping)한 후 집계연산(Aggregation)을 실행한 결과를 출력한다. 셔플은 메모리에 저장돼 있는 맵 연산 결과를 파티셔닝을 통해 키 대역폭을 나누고 정렬을 해서 로컬 디스크에 저장한 후, 네트워크를 통해 리듀스 연산기의 입력 데이터로 전달되는 과정을 포함한다. 셔플 과정에서는 모든 리듀스 연산기들이 맵 연산 결과를 일정 키 대역폭으로 나누어 동시에 자신의 노드로 복사하기 때문에 순간적으로 네트워크 상의 부하가 집중된다.
컴바이너(combiner)는 맵 연산기와 리듀스 연산기 사이에 위치하는 것으로서 ‘미니 리듀서’라고 불리며, 선택적으로 적용함으로써 셔플 과정에서의 네트워크 부하를 감소시킨다. 컴바이너를 적용하면, 맵 연산을 실행하는 모든 맵 연산기에 대해 각각 컴바이너가 실행되어, 맵 연산기가 산출한 데이터를 입력받아 지정된 함수에 해당하는 작업을 실행하여 축약된 중간 데이터를 산출한다. 산출된 중간 데이터는 리듀스 연산기로 전송되어 리듀스 작업의 입력 데이터로 사용된다. 컴바이너의 적용에도 불구하고, 네트워크 계층 간의 대역폭의 차이와 클러스터 내의 노드 수의 증가에 따라 랙(rack)과 랙 사이, 즉 랙 간의 네트워크 병목문제는 피할 수 없다.
일 실시 예에 따라, 랙 단위의 집계방법을 이용한 네트워크 최적의 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법을 제안한다.
일 실시 예에 따른 맵 리듀스 장치는, 맵 연산을 실행하는 맵 연산기와, 맵 연산기의 맵 결과를 집계축약하는 컴바이너와, 맵 리듀스 제어장치의 정책에 따라 동일한 랙 스위치에 연결된 맵 리듀스 장치 간의 맵 연산결과를 집계축약하는 랙 컴바이너와, 컴바이너 또는 랙 컴바이너의 집계축약 결과를 수신하여 리듀스 연산을 실행하는 리듀스 연산기를 포함한다.
일 실시 예에 따른 랙 컴바이너는, 맵 리듀스 제어장치를 통해 결정된 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 맵 리듀스 장치의 수와, 노드 별로 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)와, 랙 컴바인을 실행할 맵 리듀스 장치에 대한 정책에 따라 랙 내 맵 연산결과를 집계축약한다.
일 실시 예에 따른 리듀스 연산기는, 랙 컴바이너의 랙 컴바인 실행이 종료되면 맵 리듀스 제어장치로부터 새로운 중간 데이터에 따른 새로운 키의 대역폭 정보를 수신하여 리듀스 연산을 실행한다.
다른 실시 예에 따른 맵 리듀스 제어장치는, 계층화된 네트워크로 구성된 클러스터 환경에서 리듀스를 수행할 파티션 정보와 랙 간 또는 랙 내의 네트워크 상황정보에 따라 랙 단위로 랙 내 맵 연산결과를 집계축약하도록 적어도 하나의 맵 리듀스 장치를 제어하여, 랙 간의 이동 데이터를 줄이는 랙 컴바인 정책기를 포함한다. 네트워크 상황정보는 랙 간 네트워크 대역, 랙 내 네트워크 대역, 랙 간 셔플할 데이터량 및 랙 내 셔플할 데이터량 정보를 포함할 수 있다.
일 실시 예에 따른 랙 컴바인 정책기는, 리듀스를 수행할 파티션 정보를 수신하는 파티션 정보 수신부와, 파티션 정보와 네트워크 상황정보를 이용하여 랙 단위로 랙 내 맵 연산결과를 집계축약하기 위한 랙 컴바인 정책을 결정하는 랙 컴바이닝 정책부와, 랙 컴바이닝 정책부의 결정 결과에 따라 리듀스 연산기에 대한 셔플링 정책을 결정하는 셔플링 정책부를 포함한다.
일 실시 예에 따른 랙 컴바이닝 정책부는 랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)과 다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을 계산하고, 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)과, 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)을 계산한다. 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)은, 랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)을, 랙 내 맵 리듀스 장치들의 네트워크 대역폭의 합(Brack)으로 나눈 값일 수 있다. 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)은, 다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을, 랙 스위치와 코어 스위치 간의 네트워크 대역폭(Bcore)으로 나눈 값일 수 있다.
일 실시 예에 따른 랙 컴바이닝 정책부는 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)이 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)보다 큰지를 판단하고, 크면(Sin<Sout) 랙 컴바인을 실행할 경우의 랙 간 셔플링의 예상 지연시간(Sout')을 계산하여, 랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r)보다 큰지를 판단한다. 이때, 랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r) 이상이면, 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 맵 리듀스 장치의 수와, 노드 별로 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)를 결정하고, 랙 컴바인을 실행할 맵 리듀스 장치를 결정한 후, 랙 컴바인의 실행을 해당 노드에 지시한다.
일 실시 예에 따른 랙 컴바이닝 정책부는 각 맵 리듀스 장치의 랙 컴바이너의 랙 컴바인 실행이 모두 종료됨을 수신하면, 셔플링 정책부를 통해 새로운 중간 데이터에 따른 새로운 키의 대역폭 정보를 각 맵 리듀스 장치의 리듀스 연산기에 전달하여 리듀스 연산 실행을 지시한다.
또 다른 실시 예에 따른 맵 리듀스 제어방법은, 맵 리듀스 제어장치가 리듀스를 수행할 파티션 정보를 수신하는 단계와, 파티션 정보와 네트워크 상황정보를 기초로 하여 랙 단위로 랙 내 맵 연산결과를 집계축약하기 위한 랙 컴바인 정책을 결정하는 단계와, 결정 결과에 따라 해당 맵 리듀스 장치에 랙 컴바인을 지시하는 단계를 포함한다.
일 실시 예에 따른 랙 컴바인 정책을 결정하는 단계는, 랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)과 다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을 계산하는 단계와, 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)을 계산하는 단계와, 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)을 계산하는 단계를 포함한다. 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)을 계산하는 단계에서, 랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)을, 랙 내 맵 리듀스 장치들의 네트워크 대역폭의 합(Brack)으로 나눌 수 있다. 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)을 계산하는 단계에서, 다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을, 랙 스위치와 코어 스위치 간의 네트워크 대역폭(Bcore)으로 나눌 수 있다.
일 실시 예에 따른 랙 컴바인 정책을 결정하는 단계는, 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)이 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)보다 큰지를 판단하는 단계와, 크면(Sin<Sout) 랙 컴바인을 실행할 경우의 랙 간 셔플링의 예상 지연시간(Sout')을 계산하는 단계와, 랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r)보다 큰지를 판단하는 단계를 포함한다. 이때, 랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r) 이상이면, 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 맵 리듀스 장치의 수와, 노드 별로 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)를 결정하는 단계와, 랙 컴바인을 실행할 맵 리듀스 장치를 결정하는 단계를 더 포함할 수 있다.
일 실시 예에 따른 맵 리듀스 제어방법은, 각 맵 리듀스 장치의 랙 컴바이너의 랙 컴바인 실행이 모두 종료됨을 수신하면, 새로운 중간 데이터에 따른 새로운 키의 대역폭 정보를 각 맵 리듀스 장치의 리듀스 연산기에 전달하여 리듀스 연산 실행을 지시하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 계층화된 네트워크에서 셔플 과정에서의 랙 간의 이동 데이터를 줄임으로써, 네트워크 링크의 병목현상을 완화하여 맵 리듀스의 연산처리 성능을 향상시킬 수 있다. 또한, 중간 데이터의 양이 감소함에 따라 셔플 과정 동안 맵 연산기의 디스크 입출력 오버헤드와 리듀스 연산기의 디스크 입출력량을 줄임으로써 맵 리듀스를 위한 전체적인 연산처리 성능을 향상시킬 수 있다. 나아가, 맵 리듀스 연산 구성을 변경하지 않고 플러그인 형식으로 구현함에 따라, 기존의 맵 리듀스 프레임워크를 그대로 이용할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 맵 리듀스를 실행하는 클러스터 환경에서의 맵 리듀스 시스템의 구성도,
도 2는 본 발명의 일 실시 예에 따른 랙 컴바이너를 포함하는 슬레이브 노드의 처리 흐름을 설명하기 위한 슬레이브 노드의 구성도,
도 3은 본 발명의 일 실시 예에 따른 랙 컴바인 정책기의 세부 구성도,
도 4는 본 발명의 일 실시 예에 따른 랙 컴바인 정책기의 동작 프로세스를 도시한 흐름도이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 맵 리듀스를 실행하는 클러스터 환경에서의 맵 리듀스 시스템의 구성도이다.
도 1을 참조하면, 맵 리듀스 시스템은 하나의 마스터 노드(1)와 하나 이상의 슬레이브 노드(21-1,21-2,22-1,22-2,23-1,23-2)가 네트워크로 연결된다. 도 1의 노드의 수 및 그 배치는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 이에 한정되지는 않는다. 슬레이브 노드(21-1,21-2,22-1,22-2,23-1,23-2)는 맵 연산과 리듀스 연산 중 적어도 하나를 수행하는 맵 리듀스 장치이고, 마스터 노드(1)는 앱 리듀스 장치를 제어하는 맵 리듀스 제어장치에 해당한다.
슬레이브 노드(21-1,21-2,22-1,22-2,23-1,23-2)는 각각 랙(2-1,2-2,2-3)에 나뉘어 위치할 수 있다. 예를 들어, 슬레이브 노드(21-1,21-2)는 랙(2-1)에 위치할 수 있다. 각 랙의 노드들은 하나 이상의 랙 스위치(304)에 연결된다. 예를 들어, 랙(201)의 슬레이브 노드(21-1,21-2)는 랙 스위치(3-1)에 연결된다. 각 랙 스위치(3-1,3-2,3-3)는 코어 스위치(4)에 연결되거나, 랙 스위치(3-1,3-2,3-3) 간에 서로 직접 연결될 수 있다. 이러한 스위치의 계층적인 연결은 하나 이상으로 구성될 수 있다.
마스터 노드(1)는 랙 컴바인 정책을 수립하는 랙 컴바인 정책기(10)를 포함한다. 랙 컴바인 정책기(10)는 별도의 시스템에서 실행될 수 있다. 랙 컴바인 정책기(10)는 마스터 노드(1)의 프로세서를 통해 구현될 수 있고, 프로세서의 동작 실행을 위한 데이터 또는 동작 시 생성되는 데이터가 메모리에 저장될 수 있다.
각 슬레이브 노드(21-1,21-2,22-1,22-2,23-1,23-2)는 맵 연산을 실행하는 맵 연산기(210-1,210-2,220-1,220-2,230-1,230-2)와, 리듀스 연산을 실행하는 리듀스 연산기(214-1,214-2,224-1,224-2,234-1,234-2)와, 맵 연산 결과에 대한 별도의 컴바인 요청시 실행되는 컴바이너(212-1,212-2,222-1,222-2,232-1,232-2)와, 랙 컴바이너(216-1,216-2,226-1,226-2,236-1,236-2)를 포함한다. 예를 들어, 랙(2-1)의 슬레이브 노드(21-1)는 맵 연산기(210-1), 리듀스 연산기(214-1), 컴바이너(212-1) 및 랙 컴바이너(216-1)를 포함한다. 맵 연산기(210-1,210-2,220-1,220-2,230-1,230-2), 리듀스 연산기(214-1,214-2,224-1,224-2,234-1,234-2), 컴바이너(212-1,212-2,222-1,222-2,232-1,232-2) 및 랙 컴바이너(216-1,216-2,226-1,226-2,236-1,236-2)는 각 슬레이브 노드(21-1,21-2,22-1,22-2,23-1,23-2)의 프로세서를 통해 구현될 수 있고, 프로세서의 동작 실행을 위한 데이터 또는 동작 시 생성되는 데이터가 메모리에 저장될 수 있다.
일 실시 예에 따른 맵 리듀스 시스템은 계층화된 네트워크로 구성된 클러스터 환경에서, 랙 컴바이너(216-1,216-2,226-1,226-2,236-1,236-2)를 통해 랙 내 맵 연산 결과를 집계축약한 후 리듀스 연산기(214-1,214-2,224-1,224-2,234-1,234-2)를 통해 리듀스 과정을 수행한다. 이에 따라, 셔플 과정에서의 랙 간의 이동 데이터를 줄임으로써, 네트워크 링크의 병목현상을 완화하여 맵 리듀스의 연산처리 성능을 향상시킬 수 있다. 또한, 중간 데이터의 양이 감소함에 따라 셔플 과정 동안 맵 연산기의 디스크 입출력 오버헤드와 리듀스 연산기의 디스크 입출력량을 줄임으로써 전체적인 맵 리듀스의 연산처리 성능을 향상시킬 수 있다. 나아가, 맵 리듀스 연산 구성에 수정을 가하지 않고 플러그인 형태로 구현함으로써, 기존의 맵 리듀스 프레임워크를 그대로 이용할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 랙 컴바이너를 포함하는 슬레이브 노드의 처리 흐름을 설명하기 위한 슬레이브 노드의 구성도이다.
도 2를 참조하면, 슬레이브 노드(21)의 맵 연산기(210)가 맵 연산을 실행하고, 컴바이너(212)가 맵 결과를 집계축약한다. 이어서, 마스터 노드의 랙 컴바인 정책기(10)가 랙 컴바인 실행 여부와 랙 컴바인을 실행할 노드를 결정하면, 랙 컴바인 정책기(10)의 지시에 따라 랙 컴바이너(216)가 동일 랙 스위치에 연결된 슬레이브 노드 간의 맵 연산결과를 집계축약한다. 셔플 과정 이후 리듀스 연산기(214)가 리듀스 연산을 실행한다.
도 3은 본 발명의 일 실시 예에 따른 마스터 노드의 랙 컴바인 정책기의 세부 구성도이다.
도 2 및 도 3을 참조하면, 마스터 노드의 랙 컴바인 정책기(10)는 파티션 정보 수신부(100), 랙 컴바이닝 정책부(110) 및 셔플링 정책부(120)를 포함한다.
랙 컴바인 정책기(10)는 계층화된 네트워크로 구성된 클러스터 환경에서 리듀스를 수행할 파티션 정보와 랙 간 또는 랙 내의 네트워크 상황정보에 따라 랙 단위로 랙 내 맵 연산결과를 집계축약하도록 적어도 하나의 슬레이브 노드를 제어하여, 랙 간의 이동 데이터를 줄인다. 이때, 네트워크 상황정보는 랙 간 네트워크 대역, 랙 내 네트워크 대역, 랙 간 셔플할 데이터량, 랙 내 셔플할 데이터량 정보를 포함한다. 이하, 도 3을 참조로 하여 랙 컴바인 정책기(10)의 세부 구성에 대해 후술한다.
랙 컴바인 정책기(10)의 파티션 정보 수신부(100)는 리듀스 연산기(214)에서 처리할 맵 결과에 대한 파티션 정보, 즉 어떤 리듀스 연산기(214)가 어디에 있는 어떤 키 값을 처리할 것인지에 대한 정보를 잡 트래커(job tracker)로부터 수신한다. 잡 트래커는 사용자의 맵 리듀스 작업 요청에 따라 각 슬레이브 노드에 맵 연산 또는 리듀스 연산을 분배하는 역할을 한다.
랙 컴바이닝 정책부(110)는 파티션 정보 수신부(100)를 통해 수신한 파티션 정보와 각 슬레이브 노드의 물리적인 위치 및 네트워크 대역폭정보를 이용하여 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)와, 랙 컴바인을 실행할 슬레이브 노드를 결정한다.
셔플링 정책부(120)는 랙 컴바이닝 정책부(110)의 결정 결과에 따라 리듀스 연산기(124)에 대한 셔플링 정책을 결정한다. 예를 들어, 셔플링 정책부(120)는 랙 컴바이닝 정책부(110)의 결정 결과에 따라 리듀스 연산기(214)에 대한 셔플링 지연 실행을 지시한다. 랙 컴바이닝 정책부(110)는 랙 컴바인을 실행할 슬레이브 노드의 랙 컴바이너(216)에 랙 컴바인을 실행할 키의 대역폭 정보와 함께 랙 컴바인 실행을 지시한다. 랙 컴바이닝 정책부(110)가 랙 컴바이너(216)의 랙 컴바인 실행이 모두 종료되었음을 수신하면, 셔플링 정책부(120)는 새로운 중간 데이터에 따른 새로운 키의 대역폭 정보를 각 리듀스 연산기(214)에 전달하고 리듀스 연산 실행을 지시한다.
도 4는 본 발명의 일 실시 예에 따른 랙 컴바인 정책기의 동작 프로세스를 도시한 흐름도이다.
도 4를 참조하면, 마스터 노드의 랙 컴바인 정책기는 리듀스 연산을 실행할 파티션 정보와 맵 결과 데이터 정보를 수신한다(400). 그리고 수신된 정보를 이용하여 랙 내 슬레이브 노드 간에 셔플링할 데이터량(Din)과 다른 랙의 슬레이브 노드로 셔플링할 데이터량(Dout)을 계산한다(402). 이어서, 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)을 계산하고, 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)을 계산한다(404). 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)은 랙 내 슬레이브 노드 간에 셔플링할 데이터량(Din)을, 랙 내 슬레이브 노드들의 네트워크 대역폭의 합(Brack)으로 나눈 값일 수 있다. 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)은 다른 랙의 슬레이브 노드로 셔플링할 데이터량(Dout)을, 랙 스위치와 코어 스위치 간의 네트워크 대역폭(Bcore)으로 나눈 값일 수 있다.
이어서, 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)이 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)보다 큰지를 판단한다(406). 판단 결과, Sin<Sout이면, 랙 컴바인을 실행할 경우의 랙 간 셔플링의 예상 지연시간(Sout')을 계산(408)하여, 랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r)보다 큰지를 판단한다(410). 판단 결과에 따라, Sout/Sout'이 임계 비율(r) 이상이면, 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 슬레이브 노드의 수와, 노드 별로 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)를 결정(412)하고, 랙 컴바인을 실행할 슬레이브 노드를 결정(414)한 후, 랙 컴바인의 실행을 해당 노드에 지시한다(416). 이후, 랙 컴바인이 모두 완료되었다는 신호를 수신하면, 마지막으로 리듀스 연산을 지시한다(418).
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (19)

  1. 맵 연산을 실행하는 맵 연산기;
    맵 연산기의 맵 결과를 집계축약하는 컴바이너;
    맵 리듀스 제어장치의 정책에 따라 동일한 랙 스위치에 연결된 맵 리듀스 장치 간의 맵 연산결과를 집계축약하는 랙 컴바이너; 및
    컴바이너 또는 랙 컴바이너의 집계축약 결과를 수신하여 리듀스 연산을 실행하는 리듀스 연산기;
    를 포함하는 것을 특징으로 하는 맵 리듀스 장치.
  2. 제 1 항에 있어서, 상기 랙 컴바이너는
    상기 맵 리듀스 제어장치를 통해 결정된 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 맵 리듀스 장치의 수와, 노드 별로 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)와, 랙 컴바인을 실행할 맵 리듀스 장치에 대한 정책에 따라 랙 내 맵 연산결과를 집계축약하는 것을 특징으로 하는 맵 리듀스 장치.
  3. 제 1 항에 있어서, 상기 리듀스 연산기는
    상기 랙 컴바이너의 랙 컴바인 실행이 종료되면, 상기 맵 리듀스 제어장치로부터 새로운 중간 데이터에 따른 새로운 키의 대역폭 정보를 수신하여 리듀스 연산을 실행하는 것을 특징으로 하는 맵 리듀스 장치.
  4. 계층화된 네트워크로 구성된 클러스터 환경에서 리듀스를 수행할 파티션 정보와 랙 간 또는 랙 내의 네트워크 상황정보에 따라 랙 단위로 랙 내 맵 연산결과를 집계축약하도록 적어도 하나의 맵 리듀스 장치를 제어하여, 랙 간의 이동 데이터를 줄이는 랙 컴바인 정책기;
    를 포함하는 것을 특징으로 하는 맵 리듀스 제어장치.
  5. 제 4 항에 있어서,
    상기 네트워크 상황정보는 랙 간 네트워크 대역, 랙 내 네트워크 대역, 랙 간 셔플할 데이터량 및 랙 내 셔플할 데이터량 정보를 포함하는 것을 특징으로 하는 맵 리듀스 제어장치.
  6. 제 4 항에 있어서, 상기 랙 컴바인 정책기는
    리듀스를 수행할 파티션 정보를 수신하는 파티션 정보 수신부;
    파티션 정보와 네트워크 상황정보를 이용하여 랙 단위로 랙 내 맵 연산결과를 집계축약하기 위한 랙 컴바인 정책을 결정하는 랙 컴바이닝 정책부; 및
    상기 랙 컴바이닝 정책부의 결정 결과에 따라 리듀스 연산기에 대한 셔플링 정책을 결정하는 셔플링 정책부;
    를 포함하는 것을 특징으로 하는 맵 리듀스 제어장치.
  7. 제 6 항에 있어서, 상기 랙 컴바이닝 정책부는
    랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)과 다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을 계산하고, 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)과, 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)을 계산하는 것을 특징으로 하는 맵 리듀스 제어장치.
  8. 제 7 항에 있어서,
    랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)은, 랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)을, 랙 내 맵 리듀스 장치들의 네트워크 대역폭의 합(Brack)으로 나눈 값인 것을 특징으로 하는 맵 리듀스 제어장치.
  9. 제 7 항에 있어서,
    랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)은, 다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을, 랙 스위치와 코어 스위치 간의 네트워크 대역폭(Bcore)으로 나눈 값인 것을 특징으로 하는 맵 리듀스 제어장치.
  10. 제 6 항에 있어서, 상기 랙 컴바이닝 정책부는
    랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)이 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)보다 큰지를 판단하고, 크면(Sin<Sout) 랙 컴바인을 실행할 경우의 랙 간 셔플링의 예상 지연시간(Sout')을 계산하여, 랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r)보다 큰지를 판단하는 것을 특징으로 하는 맵 리듀스 제어장치.
  11. 제 10 항에 있어서, 상기 랙 컴바이닝 정책부는
    랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r) 이상이면, 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 맵 리듀스 장치의 수와, 노드 별로 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)를 결정하고, 랙 컴바인을 실행할 맵 리듀스 장치를 결정한 후, 랙 컴바인의 실행을 해당 노드에 지시하는 것을 특징으로 하는 맵 리듀스 제어장치.
  12. 제 6 항에 있어서, 상기 랙 컴바이닝 정책부는
    각 맵 리듀스 장치의 랙 컴바이너의 랙 컴바인 실행이 모두 종료됨을 수신하면, 상기 셔플링 정책부를 통해 새로운 중간 데이터에 따른 새로운 키의 대역폭 정보를 각 맵 리듀스 장치의 리듀스 연산기에 전달하여 리듀스 연산 실행을 지시하는 것을 특징으로 하는 맵 리듀스 제어장치.
  13. 맵 리듀스 제어장치의 맵 리듀스 제어방법에 있어서, 상기 맵 리듀스 제어장치가:
    리듀스를 수행할 파티션 정보를 수신하는 단계;
    파티션 정보와 네트워크 상황정보를 기초로 하여 랙 단위로 랙 내 맵 연산결과를 집계축약하기 위한 랙 컴바인 정책을 결정하는 단계; 및
    상기 결정 결과에 따라 해당 맵 리듀스 장치에 랙 컴바인을 지시하는 단계;
    를 포함하는 것을 특징으로 하는 맵 리듀스 제어방법.
  14. 제 13 항에 있어서, 상기 랙 컴바인 정책을 결정하는 단계는
    랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)과 다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을 계산하는 단계;
    랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)을 계산하는 단계; 및
    랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)을 계산하는 단계;
    를 포함하는 것을 특징으로 하는 맵 리듀스 제어방법.
  15. 제 14 항에 있어서, 상기 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)을 계산하는 단계는
    랙 내 맵 리듀스 장치 간에 셔플링할 데이터량(Din)을, 랙 내 맵 리듀스 장치들의 네트워크 대역폭의 합(Brack)으로 나누는 것을 특징으로 하는 맵 리듀스 제어방법.
  16. 제 14 항에 있어서, 상기 랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)을 계산하는 단계는
    다른 랙의 맵 리듀스 장치로 셔플링할 데이터량(Dout)을, 랙 스위치와 코어 스위치 간의 네트워크 대역폭(Bcore)으로 나누는 것을 특징으로 하는 맵 리듀스 제어방법.
  17. 제 13 항에 있어서, 상기 랙 컴바인 정책을 결정하는 단계는
    랙 간 셔플링을 위한 네트워크 지연 예상시간(Sout)이 랙 내 노드 간 셔플링을 위한 네트워크 지연 예상시간(Sin)보다 큰지를 판단하는 단계;
    크면(Sin<Sout) 랙 컴바인을 실행할 경우의 랙 간 셔플링의 예상 지연시간(Sout')을 계산하는 단계; 및
    랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r)보다 큰지를 판단하는 단계;
    를 포함하는 것을 특징으로 하는 맵 리듀스 제어방법.
  18. 제 17 항에 있어서, 상기 랙 컴바인 정책을 결정하는 단계는
    랙 컴바인 실행 전과 실행 후의 랙 간 셔플링 예상시간의 비율(Sout/Sout')이 미리 설정된 임계 비율(r) 이상이면, 랙 컴바인을 실행할지에 대한 여부와, 랙 컴바인을 실행할 맵 리듀스 장치의 수와, 노드 별로 랙 컴바인을 실행할 중간 데이터 레코드의 범위(양)를 결정하는 단계; 및
    랙 컴바인을 실행할 맵 리듀스 장치를 결정하는 단계;
    를 더 포함하는 것을 특징으로 하는 맵 리듀스 제어방법.
  19. 제 13 항에 있어서, 상기 맵 리듀스 제어방법은
    각 맵 리듀스 장치의 랙 컴바이너의 랙 컴바인 실행이 모두 종료됨을 수신하면, 새로운 중간 데이터에 따른 새로운 키의 대역폭 정보를 각 맵 리듀스 장치의 리듀스 연산기에 전달하여 리듀스 연산 실행을 지시하는 단계;
    를 더 포함하는 것을 특징으로 하는 맵 리듀스 제어방법.
KR1020160019230A 2016-02-18 2016-02-18 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법 KR102592611B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160019230A KR102592611B1 (ko) 2016-02-18 2016-02-18 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법
US15/408,160 US10530707B2 (en) 2016-02-18 2017-01-17 Mapreduce apparatus, and mapreduce control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160019230A KR102592611B1 (ko) 2016-02-18 2016-02-18 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20170097452A true KR20170097452A (ko) 2017-08-28
KR102592611B1 KR102592611B1 (ko) 2023-10-23

Family

ID=59631277

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160019230A KR102592611B1 (ko) 2016-02-18 2016-02-18 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법

Country Status (2)

Country Link
US (1) US10530707B2 (ko)
KR (1) KR102592611B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070049961A (ko) * 2005-11-09 2007-05-14 인터내셔널 비지네스 머신즈 코포레이션 네트워크를 통해 전송된 데이터의 압축 여부 판정
US20100122065A1 (en) * 2004-06-18 2010-05-13 Jeffrey Dean System and Method for Large-Scale Data Processing Using an Application-Independent Framework
KR20130114577A (ko) * 2010-05-04 2013-10-17 구글 인코포레이티드 데이터 병렬 프로세싱
JP2014016700A (ja) * 2012-07-06 2014-01-30 Fujitsu Ltd 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP2015090688A (ja) * 2013-11-07 2015-05-11 株式会社日立製作所 MapReduceジョブ管理システム、MapReduceジョブ管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100946987B1 (ko) 2007-12-18 2010-03-15 한국전자통신연구원 분산 병렬 처리 시스템의 다중 맵 태스크 중간 결과 정렬 및 결합 장치, 및 방법
KR101285078B1 (ko) 2009-12-17 2013-07-17 한국전자통신연구원 스트림 데이터에 대한 점진적인 맵리듀스 기반 분산 병렬 처리 시스템 및 방법
US8499222B2 (en) * 2010-12-14 2013-07-30 Microsoft Corporation Supporting distributed key-based processes
US20140059552A1 (en) * 2012-08-24 2014-02-27 International Business Machines Corporation Transparent efficiency for in-memory execution of map reduce job sequences
KR102029285B1 (ko) 2013-04-01 2019-10-07 한국전자통신연구원 센서네트워크의 대규모 데이터 수집 장치 및 방법
KR101480867B1 (ko) 2013-05-31 2015-01-09 삼성에스디에스 주식회사 맵리듀스 연산 가속 시스템 및 방법
US11487771B2 (en) * 2014-06-25 2022-11-01 Microsoft Technology Licensing, Llc Per-node custom code engine for distributed query processing
US9910888B2 (en) * 2014-10-01 2018-03-06 Red Hat, Inc. Map-reduce job virtualization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100122065A1 (en) * 2004-06-18 2010-05-13 Jeffrey Dean System and Method for Large-Scale Data Processing Using an Application-Independent Framework
KR20070049961A (ko) * 2005-11-09 2007-05-14 인터내셔널 비지네스 머신즈 코포레이션 네트워크를 통해 전송된 데이터의 압축 여부 판정
KR20130114577A (ko) * 2010-05-04 2013-10-17 구글 인코포레이티드 데이터 병렬 프로세싱
JP2014016700A (ja) * 2012-07-06 2014-01-30 Fujitsu Ltd 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP2015090688A (ja) * 2013-11-07 2015-05-11 株式会社日立製作所 MapReduceジョブ管理システム、MapReduceジョブ管理方法

Also Published As

Publication number Publication date
US20170244650A1 (en) 2017-08-24
KR102592611B1 (ko) 2023-10-23
US10530707B2 (en) 2020-01-07

Similar Documents

Publication Publication Date Title
US20040019624A1 (en) Computing system and control method
US20160269247A1 (en) Accelerating stream processing by dynamic network aware topology re-optimization
US8638665B2 (en) Router, information processing device having said router, and packet routing method
US20140067992A1 (en) Computer product, communication node, and transmission control method
KR102663318B1 (ko) 지능형 경로 선택 및 부하 분산을 위한 시스템 및 방법
CN108768876B (zh) 一种面向机器学习框架的流量调度方法
US9294405B2 (en) Computer system, communications control device, and control method for computer system
JP5809189B2 (ja) 通信経路切替装置、通信経路切替方法、および通信経路切替プログラム
JP5854047B2 (ja) 通信システム、制御装置、転送ノード、通信制御方法およびプログラム
US20160065449A1 (en) Bandwidth-Weighted Equal Cost Multi-Path Routing
RU2628477C2 (ru) Устройство обработки пакета, способ конфигурирования записи потока и программа
CN107967164A (zh) 一种虚拟机热迁移的方法及系统
US8416702B2 (en) Network switch, path setting method, and program
WO2020170850A1 (ja) ネットワークコントローラ装置、ネットワーク制御システム、通信ネットワークの制御方法及びプログラム
US11088960B2 (en) Information processing apparatus and verification system
US8879390B2 (en) Method, communication network and datacenter for traffic management in a communication network
US10628201B2 (en) Analysis method and analysis apparatus
US8792503B2 (en) Path selection method, information processor, network system, and path selection program
KR20170097452A (ko) 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법
CN106506275B (zh) 一种预测交换节点目的端口传输时延的方法及装置
WO2020261393A1 (ja) 通信装置及び通信方法
KR20190120057A (ko) 로드 균형을 위한 확률 기반 적응형 라우팅 알고리즘
JP7272460B2 (ja) 分散深層学習システム
KR101496058B1 (ko) 회선 활용도 기반 네트워크 코딩 방식 결정 방법 및 장치
JP2013179483A (ja) トラヒック制御装置及びトラヒック制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant