KR101826029B1 - 대용량 데이터의 클러스터 결과 분석 시스템 및 방법 - Google Patents

대용량 데이터의 클러스터 결과 분석 시스템 및 방법 Download PDF

Info

Publication number
KR101826029B1
KR101826029B1 KR1020170009683A KR20170009683A KR101826029B1 KR 101826029 B1 KR101826029 B1 KR 101826029B1 KR 1020170009683 A KR1020170009683 A KR 1020170009683A KR 20170009683 A KR20170009683 A KR 20170009683A KR 101826029 B1 KR101826029 B1 KR 101826029B1
Authority
KR
South Korea
Prior art keywords
data
cluster
record
blocks
sum
Prior art date
Application number
KR1020170009683A
Other languages
English (en)
Other versions
KR20170010883A (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 KR1020170009683A priority Critical patent/KR101826029B1/ko
Publication of KR20170010883A publication Critical patent/KR20170010883A/ko
Application granted granted Critical
Publication of KR101826029B1 publication Critical patent/KR101826029B1/ko

Links

Images

Classifications

    • G06F19/24
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B40/00ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30194
    • G06F17/30539
    • G06F17/30598
    • G06F17/30705
    • G06F19/707
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/70Machine learning, data mining or chemometrics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/70ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Abstract

본 발명은 대용량 데이터의 클러스터 결과 분석 시스템 및 방법에 관한 것으로, 대용량 데이터의 클러스터의 결과를 평가할 수 있는 유의성 검증 지표인 실루엣 계수를 계산하기 위하여, 하둡이라는 오픈 소스 맵리듀스(mapreduce) 프레임워크를 이용하였으며, 이를 구현하기 위해, 클러스터링된 데이터를 블럭으로 나누고, 모든 블럭에 대하여 인풋 스플리트를 생성한 후, 생성된 인풋 스플리트를 다량의 컴퓨터에 할당하여, 각각의 컴퓨터는 할당받은 인풋 스플리트에 포함된 블럭의 데이터만을 메모리에 저장하여 레코드별 실루엣 계수를 계산하고, 계산된 실루엣 계수만을 지표 계수 연산 장치에 제공하여, 클러스터에 대한 실루엣 계수를 구하도록 함으로써, 대용량 데이터에 대한 클러스터링 결과를 빠르고 객관적으로 분석할 수 있다는 효과가 있다.

Description

대용량 데이터의 클러스터 결과 분석 시스템 및 방법{SYSTEM AND METHOD FOR ANALYZING CLUSTER RESULT OF MASS DATA}
본 발명은 대용량 데이터의 클러스터 결과 분석 시스템 및 방법에 관한 것으로서, 더욱 상세하게는 하둡(hadoop)이라는 오픈 소스 맵리듀스(map reduce) 프레임워크를 이용하여, 대용량 데이터를 클러스터링한 결과를 신뢰성 높게 자동으로 분석하기 위한 대용량 데이터의 클러스터 결과 분석 시스템 및 방법에 관한 것이다.
웹문서의 양이 급격히 넘쳐나는 오늘날에는 기존의 정보 검색 시스템에서 사용자의 질의에 대한 긴 검색 결과목록으로는 정보를 정열하고 유용한 지식을 획득하기에는 많은 시간과 노력을 필요로 한다.
따라서 사용자의 요구에 적합한 검색결과를 가공한 후 결과들 사이의 관계 및 생각지도 못한 유용한 지식을 획득하는 클러스터링 기법이 문제 해결 방법의 하나로 등장하였다. 클러스터링은 다량의 데이터를 유사한 데이터들끼리 그룹화하여 특정 주제 아래 자동 분류하는 것으로서 사용자가 특정 정보에 대한 검색 요구를 하였을 때 모든 문서를 검색하는 대신 사용자의 요구와 가장 가까운 주제의 클러스터 내의 문서만을 검색함으로써 정보 탐색 시간을 절약할 수 있고, 검색의 효율을 향상시킬 수 있다.
클러스터링 기법에서 가장 많이 사용되는 kmeans 알고리즘을 살펴보면, 우선 kmeans 알고리즘은 사용자가 k개의 클러스터 개수를 정해주면, 각 클러스터의 중심(center)을 정하고 그 중심에 가까운 점들을 찾은 다음 그 점들을 가지고 다시 중심(center)을 갱신하는 과정을 반복하여 이 중심이 변하지 않을 때까지 그룹핑하는 알고리즘이다.
도 1은 x, y 좌표 위에 2차원의 데이터를 나타낸 모습이다. 도 1의 x, y 좌표 위의 데이터를 살펴보면, c1, c2, c3를 중심으로 하는 세 개의 클러스터로 나누는 것이 이상적이라는 것은 직관적으로 판단할 수 있다.
하지만 실제 데이터는 대부분 3차원 이상이며, 도 1의 그래프와 같이 직관적으로 클러스터 결과를 판단할 수 있는 경우는 별로 없다. 이렇게 직관적으로 판단할 수 없는 대부분의 클러스터링 결과를 분석하기 위해 클러스터 결과의 유의성을 검증할 수 있는 지표로 실루엣 계수를 들 수 있다.
이러한 실루엣 계수는 대상 데이터와 그 외의 모든 데이터 간의 거리를 구해야 하므로 데이터 수가 n개라고 가정하면, 데이터마다 (n-1)번씩의 계산이 필요하며, 거리는 대칭되므로 총 n(n-1)/2번의 계산이 필요하다. 즉 계산 복잡도는 데이터 크기의 제곱에 비례한다.
따라서, 대용량 데이터에 대해서는 계산량이 방대해져 일반적인 방법론으로는 계산할 수 없다.
또한 대상 데이터가 속한 클러스터 및 대상 데이터가 속하지 않은 클러스터들과의 평균 거리를 구하는 단순 평균 계산이 클러스터의 수만큼 필요하다. 대용량 데이터의 클러스터 결과의 경우 실질적으로 한 컴퓨터에서 모든 데이터를 메모리에 올려놓고 작업하는 것은 불가능하다.
본 발명은 상기의 문제점을 해결하기 위해 창안된 것으로서, 하둡을 응용하여 대용량 데이터의 클러스터링 결과를 객관적으로 분석하기 위한 실루엣 계수를 계산하여 제공하는 시스템 및 방법을 제공함에 그 목적이 있다.
본 발명의 다른 목적은 클러스터링 결과를 분석에 있어서 여러 대의 컴퓨터를 이용하여 대용량 데이터에 있어서도 빠르고 신뢰도 높게 계산하여 분석 지표를 제공하는 데 있다.
이를 위하여, 본 발명의 제1 측면에 따르면, 본 발명에 따른 대용량 데이터의 클러스터 결과 분석 시스템은, 클러스터링된 대상 파일을 미리 지정된 크기의 블럭으로 분할하고 상기 분할된 블럭을 조합하여 인풋 스플리트(input split)를 생성하는 작업 관리 장치; 상기 인풋 스플리트를 할당받아, 상기 인풋 스플리트에 포함된 블럭에서 각 레코드의 거리 합을 구하는 하나 이상의 거리 연산 장치; 상기 거리 연산 장치에서 전달받은 각 레코드의 거리 합을 이용하여 레코드별 실루엣 계수를 구하는 하나 이상의 지표 계수 연산 장치; 및 상기 레코드별 실루엣 계수의 평균을 구하여 해당 클러스터의 최종 실루엣 계수를 구하는 분석 장치를 포함하는 것을 특징으로 한다.
본 발명의 제2 측면에 따르면, 본 발명에 따른 대용량 데이터의 클러스터 결과 분석에 이용되는 작업 관리 장치는, HDFS(Hadoop Distribute File System)에 등록되어 있는 클러스터링된 대상 파일을 지정된 크기의 블럭으로 분할하는 블럭 생성부; 상기 분할된 블럭을 조합하여 인풋 스플리트를 생성하는 인풋 스플리트 생성부; 및 상기 생성된 인풋 스플리트를 동일 네트워크 상에서 인지되는 적어도 하나 이상의 거리 연산 장치에 따라 할당하는 인풋 스플리트 할당부를 포함하는 것을 특징으로 한다.
본 발명의 제3 측면에 따르면, 본 발명에 따른 대용량 데이터의 클러스터 결과 분석에 이용되는 거리 연산 장치는, 인풋 스플리트를 할당받아 상기 인풋 스플리트에 포함된 블럭의 모든 레코드를 HDFS(Hadoop Distribute File System)로부터 읽어들이는 데이터 획득부; 상기 획득된 블럭의 모든 레코드를 저장하는 메모리부; 상기 블럭에서 각 레코드의 거리 합을 구하여 상기 메모리에 저장하는 연산부; 및 상기 각 레코드의 거리 합을 출력하는 데이터 출력부를 포함하는 것을 특징으로 한다.
본 발명의 제4 측면에 따르면, 본 발명에 따른 대용량 데이터의 클러스터 결과 분석 방법은, 클러스터링된 대상 파일을 미리 지정된 크기의 블럭으로 분할하는 블럭 분할 단계; 상기 분할된 블럭을 조합하여 인풋 스플리트(input split)를 생성하는 인풋 스플리트 생성 단계; 상기 인풋 스플리트에 포함된 블럭의 모든 레코드를 메모리에 저장하고 각 레코드에 대한 거리 합을 출력하는 거리 계산 단계; 상기 각 레코드에 대한 거리 합을 이용하여, 레코드별 실루엣 계수를 구하는 레코드 실루엣 계수 계산 단계; 및 상기 레코드별 실루엣 계수의 평균을 구하여 실루엣 계수 계산 단계를 포함하는 것을 특징으로 한다.
본 발명의 제5 측면에 따르면, 본 발명에 따른 대용량 데이터의 클러스터 결과 분석에 이용되는 거리 연산 장치는, 인풋 스플리트를 할당받아, 상기 인풋 스플리트에 포함된 블럭 쌍 내의 각 레코드 별로, 상기 블록 쌍 내 다른 블록의 각 레코드와의 거리 합을 구하여 상기 메모리에 저장하는 연산부; 및 상기 각 레코드의 거리 합을 외부 장치로 출력하여, 상기 외부 장치에서 상기 각 레코드의 거리 합을 이용하여 레코드별 실루엣 계수를 구하고 상기 레코드별 실루엣 계수의 평균을 구하여 해당 클러스터의 최종 실루엣 계수를 구할 수 있게 하는 데이터 출력부를 포함한다.
본 발명에 따르면, 대용량 데이터에 대한 클러스터 결과에 대해 객관적으로 분석하는 지표를 제공하는 효과가 있다.
또한, 다량의 컴퓨터에서 각각 메모리에 올려서 계산함으로써 속도가 빠르며, 컴퓨터 사양에 따라 한 번에 메모리에 올라가는 데이터의 양을 동적으로 조절할 수 있다는 효과가 있다.
도 1은 데이터의 클러스터링 결과를 그래프로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 대용량 데이터의 클러스터 결과 분석 시스템의 기능적 구성도이다.
도 3은 본 발명의 일 실시예에 따른 대용량 데이터의 클러스터 결과 분석에 이용되는 작업 관리 장치의 기능적 구성도이다.
도 4는 본 발명의 일 실시예에 따른 대용량 데이터의 클러스터 결과 분석에 이용되는 거리 연산 장치의 기능적 구성도이다.
도 5는 본 발명의 일 실시예에 따른 대용량 데이터의 클러스터 결과 분석 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 클러스터 결과 분석을 위해 입력 데이터를 블럭으로 나눈 방법을 설명하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 클러스터 결과 분석을 위한 인풋 스플리트 생성 방법을 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 클러스터 결과 분석 시스템을 통해 출력된 레코드별 실루엣 계수를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세하게 설명한다. 본 발명의 구성 및 그에 따른 작용 효과는 이하의 상세한 설명을 통해 명확하게 이해될 것이다. 본 발명의 상세한 설명에 앞서, 동일한 구성요소에 대해서는 다른 도면 상에 표시되더라도 가능한 동일한 부호로 표시하며, 공지된 구성에 대해서는 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 구체적인 설명은 생략하기로 함에 유의한다.
발명의 설명에 앞서, 클러스터 기법에 대해 살펴본다.
클러스터란 유사한 데이터들의 집합으로서, 일반적인 군집화 방법론에서 모든 데이터는 반드시 하나의 클러스터에 속하게 된다.
클러스터링이 잘 되었다는 것은 자신이 속한 클러스터에 응집력 있게 위치하면서도 자신이 속하지 않은 클러스터로부터 잘 분리되는 것을 의미하며, 이를 객관적인 지표로 나타낸 것을 실루엣 계수(silhouette coefficient)라고 한다. 실루엣 계수는 자신이 속한 클러스터에 가장 응집력 있게 위치하면서도 자신이 속하지 않는 클러스터로부터 잘 분리될수록 높은 값을 가진다. 그러므로 군집 분석의 목적에 부합하는 유의성 검증 지표이다.
실루엣 계수를 구하기 위해 먼저, 응집도와 분리도를 구해야 하는데, 응집도는 특정 클러스터에 속한 데이터들이 해당 클러스터 중심에 얼마나 가까이 위치하는지를 측정하기 지표이며 흔히 클러스터 중심으로부터의 거리 제곱들의 합으로 계산한다. 여기서 클러스터 중심은, 도 1의 c1, c2, c3와 같이 각 클러스터를 대표하는 데이터로써 해당 클러스터에 속하는 데이터들의 평균적인 위치이다.
분리도는 각 클러스터가 다른 클러스터들로부터 얼마나 잘 분리되어 떨어져 있는지를 측정하는 지표이며, 흔히 클러스터 중심들 간의 거리 제곱들의 합으로 계산한다.
이렇게 구해진 실루엣 계수는 레코드가 자신이 속한 클러스터에 가장 응집력 있게 위치하면서도 자신이 속하지 않는 클러스터로부터 잘 분리될수록 높은 값을 가진다. 그러므로 군집 분석의 목적에 부합하는 유의성 검증 지표이다.
개별 데이터에 대한 실루엣 계수는 응집도와 분리도를 모두 고려하여 아래와 같이 계산된다.
1. 데이터 Di에 대하여 Di가 속한 클러스터에 있는 모든 데이터들과의 거리를 구하고 이것의 평균을 ai 라고 정의한다.
2. 데이터 Di에 대하여 Di 가 속하지 않는 각 클러스터 별로, 해당 클러스터에 속한 모든 데이터와의 평균 거리를 구하고 그 중 최소값을 bi 라고 정의한다. 즉, 자신이 속하지 않은 클러스터 중 가장 가까운 클러스터와의 평균 거리를 bi 라고 정의한다.
3. Di 의 실루엣 계수 Si 값은 수학식 1과 같이 계산된다.
Figure 112017007113598-pat00001
이렇게 계산된 실루엣 계수 값은 -1과 1 사이의 값을 가지며, 실루엣 계수가 클수록 자신이 속한 클러스터의 중심에 가깝고, 다른 클러스터로부터 떨어져 있는, 클러스터 분석의 목적에 부합하는 바람직한 값이다.
실루엣 계수는 계산 방법 상 단위가 없는 값으로, 데이터 셋 전체의 이동 (transition), 회전 (rotation), 확대 및 축소(scaling)에 대해 변하지 않고 오직 데이터 분포에 따른 클러스터의 수나 구조에 의해서만 영향을 받는다는 특징이 있다.
이러한 실루엣 계수는 대상 데이터와 그 외의 모든 데이터 간의 거리를 구해야 하므로 데이터 수가 n개라고 가정하면, 데이터마다 (n-1)번씩의 계산이 필요하며, 거리는 대칭되므로 총 n(n-1)/2번의 계산이 필요하다. 즉 계산 복잡도는 데이터 크기의 제곱에 비례한다.
또한 대상 데이터가 속한 클러스터 및 대상 데이터가 속하지 않은 클러스터들과의 평균 거리를 구하는 단순 평균 계산이 클러스터의 수만큼 필요하다. 대용량 데이터의 클러스터 결과의 경우 계산량이 방대하여 실질적으로 한 컴퓨터에서 모든 데이터를 메모리에 올려놓고 작업하는 것은 불가능하며 여러 대의 컴퓨터를 활용하여 효율적으로 계산할 수 있어야 한다.
이러한 실루엣 계산을 여러 대의 컴퓨터를 활용하여 효율적으로 계산하기 위해 본 발명의 일 실시예에서는 하둡을 이용한다.
하둡(hadoop)은 구글에서 분산 컴퓨팅을 지원하기 위한 목적으로 제작하여 발표한 맵리듀스(mapreduce) 프레임워크의 오픈소스 버전을 말한다. 이 프레임워크는 페타바이트 이상의 대용량 데이터를 신뢰할 수 없는 컴퓨터로 구성된 클러스터 환경에서 병렬처리를 지원하기 위해 개발되었다.
HDFS(Hadoop Distribute File System) 상에서의 일반적인 맵리듀스 작업은 먼저 입력되는 인풋 파일을 인풋 스플리트(input split)라고 불리는 고정 크기 조각들로 나눈다. 하둡은 각 스플리트 마다 하나의 맵 태스크를 생성하고, 그 스플릿에 있는 각 데이터를 사용자 정의 맵 함수로 처리한다.
인풋 스플리트를 하나의 맵 태스크로 할당하면, 맵 태스크(Map task)는 주로 입력 파일의 데이터를 필터링하고 필요한 정보를 추출하고, 변환시키는 역할을 하고, 맵 태스크의 결과로, 각 데이터 레코드(data record) 별로 (key, value)를 생성하여 리듀서(reducer)에 전달한다.
다음, 단계에서는 맵 태스크의 결과로 전송된 (key, value)들을 키(key)를 기준으로 각각의 리듀스 태스크로 적절하게 분배(partitioning)하고, 리듀스 태스크에서는 전송된 (key, value)들을 키(key) 순으로 정렬하고, 리듀스(reduce) 함수를 수행한다.
리듀스 태스크(Reduce task) 결과는 각각 HDFS에 파일로 저장한다.
위에서 설명한, 일반적인 하둡의 맵리듀스 작업을 통해 실루엣 계수를 계산하게 되면, 맵 태스크와 리듀스 태스트 간의 트래픽이 너무 많아지게 되므로, 대용량 데이터를 처리할 수 없다.
도 2를 참조하여, 본 발명의 일 실시예에 따른 하둡을 이용한 효율적인 지표 계수를 계산하기 위한 시스템을 설명한다.
대용량 데이터의 클러스터 결과 분석 시스템은 작업 관리 장치(200), 거리 연산 장치(210), 지표 계수 연산 장치(220), 분석 장치(230)를 포함한다.
작업 관리 장치(200)는 클러스터링 작업을 위해 필요한 여러 가지 데이터를 입력받고, 다른 장치에 작업을 할당하는 등의 역할을 한다. 보다 구체적으로는 사용자 지정 값 등을 설정하며, 클러스터링 결과 데이터의 위치 정보를 입력받아 저장하고, 클러스터링 결과 데이터를 블럭으로 분할하여 모든 블럭을 대상으로 실루엣 계산 맵 리듀스 작업을 위한 인풋 스플리트를 생성한다.
거리 연산 장치(210)는 작업 관리 장치(200)로부터 할당받은 인풋 스플리트의 두 블럭 정보를 이용하여, 각각의 블럭의 내용을 HDFS로부터 읽고, 모든 읽은 레코드들을 메모리에 저장하고, 두 블럭 간의 레코드들 사이의 거리를 모두 계산하고, 계산된 거리의 합을 계산한다.
거리 연산 장치(210)와 지표 계수 연산 장치(220)는 작업 관리 장치(200)와 동일한 네트워크 상에 존재하고, 하나 이상을 구비하며, 여러 대를 병렬적으로 연결하여 작업의 시간을 줄일 수 있다.
지표 계수 연산 장치(220)는 거리 연산 장치(210)의 결과값을 이용하여 각 레코드 별 ai, bi, si 값을 계산한다.
여기에서, ai는 해당 레코드가 속해 있는 클러스터의 식별번호(record cluster id라 칭함)와, 거리의 합을 계산한 상대 레코드가 속해 있는 클러스터의 식별번호(operand cluster id라 칭함)가 동일한 데이터의 거리 합을 카운트의 합으로 나누어 구한다.
bi는 해당 레코드가 속해 있는 클러스터의 식별번호(record cluster id라 칭함)와, 거리의 합을 계산한 상대 레코드가 속해 있는 클러스터의 식별번호(operand cluster id라 칭함)가 다른 데이터를 대상으로 하여, 상대 레코드가 속해 있는 클러스터의 식별번호(operand cluster id) 별로 거리의 평균을 각각 계산한 다음, 계산된 클러스터의 식별번호 별 거리의 평균 중에서 최소값을 취하여 그 값을 bi라고 한다.
상기 계산된 ai, bi를 수학식 1에 적용하여 레코드별 실루엣 계수 si를 구한다.
분석장치(230)는 상기 지표 계수 연산 장치(220)에서 계산된 Si를 이용하여 모든 데이터 레코드의 실루엣 계수 값의 평균을 구한다. 또한, 실루엣 계수가 가장 큰 클러스터 개수를 보여준다.
도 3을 참고하여, 도 2의 작업 관리 장치의 구성에 대해 설명한다.
작업 관리 장치(200)는 블럭 생성부(202), 인풋 스플리트 생성부(204), 인풋 스플리트 할당부(206)를 포함한다.
블럭 생성부(202)는 HDFS(Hadoop Distribute File System)에 등록되어 있는 클러스터링된 대상 파일을 지정된 크기의 블럭으로 분할한다. 이때, 클러스터링된 대상 파일은 레코드 식별번호, 상기 레코드가 속한 클러스터 식별번호, 좌표값을 포함하고 있다.
인풋 스플리트 생성부(204)는 상기 분할된 블럭을 조합하여 인풋 스플리트를 생성한다.
인풋 스플리트 할당부(206)는 상기 인풋 스플리트 생성부(204)에서 생성된 인풋 스플리트를 동일 네트워크 상에서 인지되는 적어도 하나 이상의 거리 연산 장치에 할당하는 역할을 한다. 이때, 거리 연산 장치의 사양을 고려하여 인풋 스플리트를 할당한다.
도 4를 참조하여, 도 2의 거리 연산 장치(210)의 구성에 대해 설명한다.
거리 연산 장치(210)는 데이터 획득부(212), 메모리부(214), 연산부(216), 데이터 제공부(218)를 포함한다.
데이터 획득부(212)는 인풋 스플리트를 할당받으면 상기 인풋 스플리트에 포함된 블럭의 모든 레코드를 HDFS(Hadoop Distribute File System)로부터 읽어들인다.
메모리부(214)는 데이터 획득부(212)가 읽어들인 블럭의 모든 레코드를 저장해 둔다.
연산부(216)는 인풋 스플리트에 따라 조합된 블럭에서 각 레코드의 거리 합을 구하여 메모리부(214)에 저장한다.
데이터 출력부(218)는 각 레코드의 거리 합을 출력하며, 이 때 출력되는 데이터는 레코드 식별번호, 상기 레코드가 속한 클러스터 식별번호(C1), 상대 레코드가 속한 클러스터 식별번호(C2), 상기 레코드 식별번호와 상대 레코드 식별번호가 동일한 경우의 수, 거리 합을 포함한다.
도 5를 참고하여 본 발명의 실시예에 따라 하둡을 이용하여 클러스터 실루엣 계수를 계산하는 방법을 설명한다.
먼저 클러스터링 결과를 분석하기 위해, 입력된 파일들을 다수의 블럭으로 나눈다(S310). 이때 블럭의 단위(예컨대, 2MB)는 사용자가 환경에 따라 조절 가능하다. 도 6의 예에서는, 입력된 데이터가 순서대로 B1~B5의 5개의 블럭으로 나뉘어진 것을 볼 수 있다. 각 블럭의 데이터의 포맷은 앞에서부터 레코드 식별 번호, 그 레코드가 속한 클러스터 식별번호, 레코드의 좌표값을 포함한다. B1의 첫번째 데이터에서 레코드 식별번호는 1이고, 이 데이터 레코드가 속한 클러스터는 0이고, 이 데이터 레코드의 의 좌표값은 2이다.
*다음, 도 7과 같이, 모든 블럭을 대상으로, 2개씩 조합(combination)을 생성하고, 하나의 조합에 대해 하나의 인풋 스플리트(input split)를 생성한다. 그리고 동일 블럭의 쌍에 대해서도 인풋 스플리트를 생성한다. 인풋 스플리트 생성이 완료되고 난 다음, 작업 관리 장치(200)는 하나의 인풋 스플리트 당 하나의 맵 태스크를 생성하고, 각각의 맵 태스크를 거리 연산 장치에 할당한다. (S320)
총 m개의 블럭이 있을 경우, {m*(m-1)/2}+m 개의 인풋 스플리트 및 맵 태스크가 생성된다.
도 6의 경우, B1 ~ B5의 5개의 블럭이 있을 경우, 5*4/2+5=15 개의 인풋 스플리트 및 맵 태스크가 생성된다. 15개의 인풋 스플리트와 맵 태스크는 다음과 같다.
M1(B1, B1), M2(B1, B2), M3(B1, B3), M4(B1,B4), M5(B1,B5), M6(B2, B2), M7(B2, B3), M8(B2, B4), M9(B2, B5), M10(B3, B3), M11(B3, B4), M12(B3, B5), M13(B4, B4), M14(B4, B5), M15(B5, B5)
거리 연산 장치(210)는 인풋 스플리트의 두 블럭에서 읽은 모든 데이터를 메모리에 저장하고, 두 블럭 간의 데이터들의 거리를 모두 계산하고, 계산된 거리의 합과 계산한 데이터의 개수를 지표 계수 연산 장치(220)에 전달한다(S330).
만약, 거리 연산 장치(210)가 3대 연결되어 있는 경우, 작업 관리 장치(200)가 15개의 맵 태스크를 3 대의 거리 연산 장치(210)에게 할당하게 된다. 이 때, 작업 관리 장치(200)는 데이터들의 위치 및 각 작업 관리 장치(200)의 태스크 처리 현황 및 리소스 여유량을 감안하여, 실시간으로 작업을 할당하게 된다.
각각의 거리 연산 장치(210)는 작업 관리 장치(200)로부터 맵 태스크를 할당받아, 레코드들 사이의 거리를 계산하고, 처리하던 맵 태스크가 정상적으로 종료되면, 작업 관리 장치(200)에게 맵 태스크의 처리 상태를 알리고, 다음 태스크를 할당 받아 처리한다. 모든 맵 태스크가 정상적으로 종료되면, 리듀스 태스크가 시작된다.
*하나의 거리 연산 장치(210)가 맵 태스크 M2(B1, B2)를 할당 받은 경우, 작업 관리 장치(200)로부터 블럭 B1과 B2에 관한 메타정보(블럭이 속한 파일의 이름 및 위치, 오프셋 정보 등)를 읽고, 이를 이용하여 실제 블럭 B1과 B2의 데이터를 읽은 다음, 거리 연산 장치(210)의 메모리에 저장한 후, 인풋 스플리트에 저장된 두 블럭의 데이터들 간의 거리를 모두 계산한다.
도 7을 참조하여, (B1, B2)에 속한 데이터들의 거리를 계산하는 과정을 살펴보면, B1에 속한 레코드 식별번호 1,3,4,5,9,10,11와 B2에 속한 레코드 식별번호 12,14,16,18,20,23,27,28 과의 거리를 모두 계산한다. 인풋 스플리트 (B1, B2)의 첫번째 레코드 식별 번호 1에 대한 결과값을 살펴보면 B2의 상대 레코드 개수는 8이고, 상대 레코드들(식별번호 12,14,16,18,20,23,27,28)과의 거리의 합은 33이 된다.
맵 태스크의 출력 데이터의 포맷은 레코드 식별 번호, 레코드가 속한 클러스터 식별번호, 상대 레코드가 속한 클러스터 식별번호, 거리를 계산한 상대 레코드의 개수, 거리의 합을 포함한다.
이렇게, 인풋 스플리트에 따른 블럭 간 레코드들의 거리 계산은 하나의 네트워크 상에 연결된 여러 대의 컴퓨터(거리 연산 장치)에서 동시에 이루어질 수 있게 되므로 연산 시간이 줄어들고, 계산한 결과 값만을 지표 계수 연산 장치(220)에 전달하므로, 지표 계수 연산 장치(220)의 부하 및 전체적인 네트워크 트래픽이 줄어들게 된다.
지표 계수 연산 장치(220)는 각각의 거리 연산 장치(210)의 결과값을 전달받아, 레코드별 ai, bi, si 값을 각각 계산한다(S340).
지표 계수 연산 장치(220) 역시 한 대 이상이 될 수 있는데, 정확한 계산을 위해서는 하나의 레코드에 대한 지표는 하나의 지표 계수 연산 장치(220)에서 계산되어야 한다. 이를 위해, 맵 태스크에서 리듀스 태스크로 결과를 분배할 때, 동일한 레코드 식별 번호는 동일한 지표 계수 연산 장치(220)로 가도록 하고, 하나의 계수 연산 장치(220)에 지나치게 많은 데이터가 몰리지 않도록, 레코드 식별 번호를 해싱(hashing)한 뒤, 지표 계수 연산 장치(220)의 개수로 모듈러 연산을 하고, 그 결과를 이용하여, 지표 계수 연산 장치(220)를 고른다.
ai는 레코드가 속한 클러스터 식별번호와 상대 레코드가 속한 클러스터 식별번호가 동일한 데이터의 카운트와 거리의 합을 이용하여 계산하고, bi는 레코드가 속한 클러스터 식별번호와 상대 레코드가 속한 클러스터 식별번호가 다른 데이터의 경우, 상대 레코드가 속한 클러스터 식별번호 별로 거리의 평균을 각각 계산한 다음, 계산된 값 중 최소값을 bi로 취한다. 계산된 ai, bi를 상기 수학식 1에 적용하여 si를 계산한다.
도 8은 레코드별 최종 지표 계수값을 예시하는 도면이다.
각 레코드별 실루엣 계수를 알 수 있다.
상기 레코드별 실루엣 계수 값의 평균을 구하여 해당 클러스터의 최종 실루엣 계수를 알 수 있다(S350).
표 1은 레코드별 최종 지표 계수값을 도시한 테이블이다. 각각의 데이터 레코드는 16차원의 값을 가지고 있으며, 각 데이터 레코드는 네 개의 센터를 중심으로 가우시안(Gaussian) 분포를 따르는 랜덤한 값으로 배정하여, 10대의 기계를 사용하여 구성된 하둡 클러스터(hadoop cluster)에서 계산하여 얻은 결과이다.
데이터 카운트 클러스터개수 지표 계수값 처리 시간
10만 건 3 0.648267665 5분
10만 건 4 0.859464031 6분
10만 건 5 0.654348892 10분
10만 건 6 0.449449654 11분
50만 건 3 0.557022375 15분
50만 건 4 0.835179601 15분
50만 건 5 0.641800977 15분
50만 건 6 0.431964095 15분
100만 건 3 0.687824356 1시간 18분
100만 건 4 0.869303911 1시간 19분
100만 건 5 0.660883303 1시간 29분
100만 건 6 0.659735986 1시간 26분
표 1을 살펴보면, 지표 계수값이 가장 높은 경우는 클러스터의 개수가 4개 일 때임을 알 수 있다. 또한, 100만건의 데이터를 1시간 30분 이내에 처리하였음을 알 수 있다.
본 발명에 따른 자동화된 클러스터링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것 일수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상의 설명은 본 발명을 예시적으로 설명한 것에 불과하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술적 사상에서 벗어나지 않는 범위에서 다양한 변형이 가능할 것이다. 따라서 본 발명의 명세서에 개시된 실시 예들은 본 발명을 한정하는 것이 아니다. 본 발명의 범위는 아래의 특허청구범위에 의해 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술도 본 발명의 범위에 포함되는 것으로 해석해야 할 것이다.
200 : 작업 관리 장치
210 : 거리 연산 장치
220 : 지표 계수 연산 장치
230 : 분석 장치

Claims (2)

  1. 인풋 스플리트를 할당받아, 상기 인풋 스플리트에 포함된 블록 쌍 내의 각 레코드 별로, 상기 블록 쌍 내 다른 블록의 각 레코드와의 거리 합을 구하여 메모리에 저장하는 연산부; 및
    상기 각 레코드의 거리 합을 외부 장치로 출력하여, 상기 외부 장치에서 상기 각 레코드의 거리 합을 이용하여 레코드별 실루엣 계수를 구하고 상기 레코드별 실루엣 계수의 평균을 구하여 해당 클러스터의 최종 실루엣 계수를 구할 수 있게 하는 데이터 출력부를 포함하며;
    상기 인풋 스플리트는,
    클러스터링된 대상 파일을 지정된 크기의 블록으로 분할하고, 상기 분할한 블록 모두에 대하여 동일한 블록 2개를 조합 및 서로 다른 블록 2개를 조합한 블록 쌍을 생성하고, 상기 각 블록 쌍에 대한 인풋 스플리트를 생성하여, 상기 생성한 인풋 스플리트를 동일 네트워크 상에서 인지되는 거리 연산 장치의 사양을 고려하여 적어도 하나 이상의 거리 연산 장치에 할당하는 작업 관리 장치로부터 할당받는, 대용량 데이터의 클러스터 결과 분석에 이용되는 거리 연산 장치.
  2. 삭제
KR1020170009683A 2017-01-20 2017-01-20 대용량 데이터의 클러스터 결과 분석 시스템 및 방법 KR101826029B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170009683A KR101826029B1 (ko) 2017-01-20 2017-01-20 대용량 데이터의 클러스터 결과 분석 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170009683A KR101826029B1 (ko) 2017-01-20 2017-01-20 대용량 데이터의 클러스터 결과 분석 시스템 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020120035995A Division KR101700340B1 (ko) 2012-04-06 2012-04-06 대용량 데이터의 클러스터 결과 분석 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20170010883A KR20170010883A (ko) 2017-02-01
KR101826029B1 true KR101826029B1 (ko) 2018-03-22

Family

ID=58109466

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170009683A KR101826029B1 (ko) 2017-01-20 2017-01-20 대용량 데이터의 클러스터 결과 분석 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101826029B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256230A1 (en) * 2007-04-10 2008-10-16 Handley John C Method and system for detecting an anomalous networked device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256230A1 (en) * 2007-04-10 2008-10-16 Handley John C Method and system for detecting an anomalous networked device

Also Published As

Publication number Publication date
KR20170010883A (ko) 2017-02-01

Similar Documents

Publication Publication Date Title
KR101700340B1 (ko) 대용량 데이터의 클러스터 결과 분석 시스템 및 방법
US10726356B1 (en) Target variable distribution-based acceptance of machine learning test data sets
KR100996443B1 (ko) 고집적인덱스 데이터베이스 및 쿼리 데이터의 검색과 연산기능 분할에 의한 그래픽 프로세서 기반 병렬분산 처리 시스템 및 방법
CN102725753B (zh) 优化数据访问的方法及装置、优化数据存储的方法及装置
JP2014002519A (ja) 時空間データ管理システム、時空間データ管理方法、及びそのプログラム
CN103309975B (zh) 一种重复数据删除方法和设备
US10795862B2 (en) Identification of high deduplication data
JP7082147B2 (ja) エンティティを推奨する方法及び装置、電子機器、コンピュータ読み取り可能な媒体
CN104572785B (zh) 一种分布式创建索引的方法和装置
CN111507479A (zh) 特征分箱方法、装置、设备及计算机可读存储介质
US10048991B2 (en) System and method for parallel processing data blocks containing sequential label ranges of series data
KR101428649B1 (ko) 맵 리듀스 기반의 대용량 개인정보 암호화 시스템 및 그의 동작 방법
CN110874366A (zh) 数据处理、查询方法和装置
KR101826029B1 (ko) 대용량 데이터의 클러스터 결과 분석 시스템 및 방법
US20130218916A1 (en) File management apparatus, file management method, and file management system
CN114077492A (zh) 云计算基础设施资源的预测模型训练、预测方法和系统
CN112783417A (zh) 数据缩减的方法、装置、计算设备和存储介质
US9135300B1 (en) Efficient sampling with replacement
KR20160100224A (ko) 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치
US20160147838A1 (en) Receiving node, data management system, data management method and strage medium
CN110427390B (zh) 数据查询方法及装置、存储介质、电子装置
JP2001022621A (ja) 多次元データベース管理システム
KR101772955B1 (ko) 맵리듀스 기반의 분산 처리 시스템에서 인덱스를 이용하여 레코드를 처리하는 방법
CN113868267A (zh) 注入时序数据的方法、查询时序数据的方法及数据库系统
CN111209284A (zh) 基于元数据的分表方法及装置

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