본문 바로가기
바삭한 인공지능

바삭한 인공지능(분산처리기술)

by Oceanlighth AI 2023. 1. 11.

목차

1. 머리글

2. 분산처리기술이란?

3. 분산처리기술을 사용하는 이유

4. 하둡(Hadoop)이란?

5. 하둡 분산형 파일시스템(HDFS)

6. HDFS의 특징

7. HDFS의 아키텍처(Architecture)

8. 맵리듀스(Map Reduce)

9. 마치며

안녕하세요. 오션라이트에이아이 백승기연구원입니다. 

 

머리글

오늘은 분산처리기술에 대해서 알아보겠습니다.

 

분산처리기술이란?

 

분산처리기술은 많은양의 데이터, 즉 빅데이터의 처리를 하기 위해 발전한 기술입니다. 

 

분산처리기술은 하나의 업무를 수행하기 위해서 서로다른 장소에 위치한 컴퓨터시스템에 기능과 자원을 분산시켜 협력하게 만드는 시스템입니다.

 

물리적으로는 떨어져 있는 컴퓨터들이 네트워크를 통해서 협력하며 이전보다 빠르고 정확한 데이터 처리업무를 수행할 수 있게 되었습니다.

 

분산처리기술을 사용하는 이유

그렇다면 분산처리기술을 왜 사용하는지에 대해서 얘기해 보도록 하겠습니다.

 

1) 비용절약을 할 수 있다

분산처리기술을 구현하는 비용은 비싸다고 할 수 있느나 한번 구축해서 장기간 사용하면 오히려 비용절감에 효과적이라고 할 수 있습니다.

 

2) 효율성을 높일 수 있다

다수의 컴퓨터 시스템을 활용하더라도 각각의 시스템은 독립적으로 처리를 하기때문에 많은양의 업무를 효과적으로 처리할 수 있습니다. 따라서 사용자의 시간 또한 절약할 수 있습니다.

 

3) 사용자는 더 많은 업무를 위해 하나의 시스템 성능을 개선할 필요가 없다

만약 사용자가 현재 진행하는 업무의 성능향상을 하고싶다면 사용자의 컴퓨터시스템을 개선할 필요가 없이 네트워크를 통해 시스템을 연결하여 할당할 수 있습니다. 분산처리기술을 이용하면 시스템을 연결하는것에 제한이 없기 때문에 이러한 연결을 쉽게 확장할 수 있습니다.

 

4)  신뢰성을 높일 수 있다

하나의 업무를 하나의 시스템이 맡아서 처리할 때 만약 문제가 발생하게 된다면 그 업무를 처리할 수 없습니다.

하지만 분산업무를 할 경우에는 하나의 시스템에 문제가 발생하더라도 다른 시스템에는 영향을 주지 않기 때문에 문제에 대한 대처를 유연하게 할 수 있습니다.

 

이러한 이점들을 토대로 분산처리기술은 빅데이터의 처리에 많이 사용되고 있습니다.

 

다음으로는 분산처리기술중 하나인 하둡(Hadoop)에 대해서 알아보도록 하겠습니다.

 

하둡(Hadoop)이란?

하둡(High - Availability Distributed Object - Oriented Platform)은 확장성이 좋고 안정적인 분산컴퓨팅을 위한 오픈소스 소프트웨어 입니다. 

그림 1. 하둡(Hadoop)

하둡은 대용량의 적은비용으로도 데이터 처리와 분석을 빠르게 수행할 수 있기 때문에 빅데이터를 처리하기 위해서 많이 사용되고 있습니다. 

 

하둡은 크게 저장을 담당하는 하둡 분산형 파일시스템 (Hadoop Distributed File System, HDFS)과 계산을 담당하는 맵 리듀스(Map Reduce)로 이루어져 있습니다.

 

하둡 분산형 파일시스템(HDFS)

하둡 분산형 파일시스템은 하둡 네트워크에 연결된 기기에 데이터를 저장하는 분산형 파일 시스템입니다. HDFS는 여러 기계에 대용량 파일을 나눠서 중복저장하기 때문에 안정성을 가지고 있습니다. 

 

기존에 사용하던 대용량 파일시스템은 하나의 서버에 데이터를 저장하기 위해 고성능의 서버나 대용량의 외장 스토리지가 필요하였고, 그로 인해 비용이 많이 발생하였습니다.

 

하지만 HDFS를 이용하면 수십대에서 수백 대의 웹서버를 묶어서 하나의 스토리지처럼 사용할 수 있게 됩니다. 

 

HDFS의 특징

1. HDFS는 데이터를 블록 단위로 나누어서 저장합니다.  블록이란 한 번 읽고 쓸 수 있는 데이터의 최대량 이며 HDFS에서는 블록을 128Mb단위로 나누어서 사용합니다. 그리고 파일 사이즈가 하나의 블록 사이즈보다 작더라도 블록사이즈 전체를 차지하지 않고 파일 사이즈만큼만 차지합니다.

 

2. HDFS는 블록을 복제하여 저장합니다. 하나의 파일을 이루는 각 블록이 복제되어 여러 노드에 저장되어 있고, 파일을 읽을 때 가장 가까운 노드로부터 읽어들여서 최적화를 합니다.

 

3. HDFS의 데이터는 한번 저장된 후 수정할 수 없으며, 읽기만 가능하기 때문에 데이터 무결성을 유지할 수 있습니다. 

 

다음은 HDFS의 아키텍처에 대해서 알아보겠습니다.

HDFS의 아키텍처(Architecture)

그림 2. HDFS Architecture (https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html)

그림 2.는 HDFS 의 기본적인 아키텍처 입니다. HDFS 클러스터는 하나의 네임노드(마스터노드)와 하나 이상의 데이터노드(슬래이브노드)로 구성되어 있습니다. 

 

네임노드는 파일시스템의 네임스페이스를 관리하고있으며 파일시스템의 트리와 트리에 존제하는 모든 파일과 디렉토리를 다룹니다.

 

데이터노드는 파일시스템의 실제 저장 노드로 블록을 요청받았을 때 블록을 저장, 삭제, 송신하고 가지고 있는 블록 리스트를 네임노드에 주기적으로 보고합니다. 

 

맵리듀스(Map Reduce)

맵 리듀스는 대용량의 데이터가 들어왔을 때, 데이터를 블록으로 나누고 각 블록에 대해 Map Task와 Reduce Task를 수행합니다.

 

그림 3. MapReduce WorldCount Execution Example (Aris Gkoulalas-Divanis ,  Abderrahim Labbi : Large-Scale Data Analytics.)

그림 3.은 MapReduce가 단어를 어떻게 나누는지에 대한 예시입니다.

 

Map Task는 Input 데이터를 가공하여 데이터를 연관성 있는 데이터들로 분류하는 작업을 합니다. 이때, 데이터의 분류는 Key/Value의 형태로 분류합니다. 

 

Reduce Task는 Map에서 출력된 데이터에서 중복되는 데이터를 제거하고 원하는 데이터를 추출하는 작업을 말합니다. 

 

MapReduce 작업이 끝나면 HDFS에 파일이 쓰여지고(Write), MapReduce 작업을 시작할때는 HDFS로부터 파일을 가져오는(Read)작업이 수행됩니다.

 

마치며

이번글에서는 분산처리기술과 Hadoop에 관하여 알아보았습니다.

다음글부터는 머신러닝(ML)에 대하여 조금 더 자세히 알아보겠습니다.

댓글