[여러가지 시도]/빅데이터

빅데이터 분석 대표 프로그램 (하둡 & R)

시간 확보러 2017. 12. 28. 09:18
728x90

안녕하세요.  아프락사쓰입니다.

 

빅데이터 분석할 때 대표적으로 사용되는 하둡 과 R프로그램에 대해 알아 보도록 하겠습니다.

(다음 내용들은 위키백과에서 발췌했습니다.)

 

 

1. 아파치 하둡 (Apache HaDoop, High-Availability Distributed Object-Oriented Platform)

아파치 하둡은 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크이다. 원래 너치의 분산 처리를 지원하기 위해 개발된 것으로, 아파치 루씬의 하부 프로젝트이다. 분산처리 시스템인 구글 파일 시스템을 대체할 수 있는 하둡 분산 파일 시스템(HDFS : Hadoop Distributed File System)과 맵리듀스를 구현한 것이다.

 

1.1 역사

하둡은 2006년 더그 커팅과 마이크 캐퍼렐라가 개발하였다. 당시 커팅은 야후에서 일하고 있었으며, 이후 하둡은 아파치 재단으로 넘어가 공개 소프트웨어로 개발되고 있다. 하둡은 구글의 분산 파일 시스템(GFS) 논문이 공개된 후, 그 구조에 대응하는 체계로 개발되었다. 하둡의 로고는 노랑색 아기 코끼리로 표시한다. 이는 하둡의 개발자인 더그 커팅이 자신의 아이가 가지고 놀던 장난감 코끼리의 이름을 따라 하둡이라는 이름을 지었기 때문이다. 코끼리는 빅데이터를 상징하는 동물이다. 2011년 오프 소스 아파치 하둡 사업을 위해 야후에서 분사한 기업의 이름을 지을 때도, 코끼리가 주인공인 동화에 나오는 코끼리 이름인 호튼을 따와서 호튼윅스라고 회사명을 지었다.

 

1.2 하둡 분산 파일 시스템

하둡 분산 파일 시스템은 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템이다. HDFS는 여러 기계에 대용량 파일들을 나눠서 저장을 한다. 데이터들을 여러 서버에 중복해서 저장을 함으로써 데이터 안정성을 얻는다. 따라서 호스트에 RAID 저장장치를 사용하지 않아도 된다

하둡 분산 파일 시스템은 다음과 같은 시스템에서 잘 동작하는 것을 목표로 하고 있다.

 

1) 하드웨어 오동작

2) 스트리밍 자료 접근

3) 큰 자료 집합

4) 간단한 결합 모델

5) 자료를 옮기는 것보다 계산 작업을 옮기는 것이 비용이 적게 든다.

6) 다른 종류의 하드웨어와 소프트웨어 플랫폼과의 호환성

 

 

2. R (프로그래밍 언어)

R 프로그래밍 언어(줄여서 R)는 통계 계산과 그래픽을 위한 프로그래밍 언어이자 소프트웨어 환경이다. 뉴질랜드 오클랜드 환경이다. 뉴질랜드 오클랜드 대학의 로버트 젠틀맨과 로스 이하카에 의해 시작되어 현재는 R 코어 팀이 개발하고 있다. R은 GPL 하에 배포되는 S 프로그래밍 언어의 구현으로 GNU S라고도 한다. R은 통계 소프트웨어 개발과 자료 분석에 널리 사용되어 있으며, 패키지 개발이 용이하여 통계학자들 사이에서 통계 소프트웨어 개발에 많이 쓰이고 있다.

 

2.1 소개

R의 문법과 통계처리 부분은 AT&T 벨 연구소가 개발했던 S를 참고했고, 데이터 처리부분은 스킴으로부터 영향을 받았다.

R은 다양한 통계 기법과 수치 해석 기법을 지원한다. R은 사용자가 제작한 패키지를 추가하여 기능을 확장할 수 있다. 핵심적인 패키지는 R과 함께 설치되며, CRAN을 통해 2016년 현재 10,300개 이상의 패키지를 내려 받을 수 있다.

R의 또다른 강점은 그래픽 기능으로 수학 기호를 포함할 수 있는 출판물 수준의 그래프를 제공하는 것이다.

R은 통계 계산과 소프트웨어 개발을 위한 환경이 필요한 통계학자와 연구자들 뿐만 아니라, 행렬 계산을 위한 도구로서도 사용도리 수 있으며 이 부분에서 GNU Octave나 MATLAB에 견줄 만한 결과를 보여준다.

R은 윈도, 맥 OS 및 리눅스를 포함한 UNIX 플랫폼에서 이용 가능하다.

 

2.2 처리속도

인터프리터 언어라는 이유로 처리속도가 낮다는 평가를 받는 경우가 많다. 그러나 실제로는 S의 상용판인 S-PLUS보다 많은 경우 속도가 빠를 뿐만 아니라, 범용 행렬계 언어의 표준과도 같은 MATLAB과 그 파생어인 GNU Octave, Scilab보다도 종합적으로 빠르다는 평가가 있다.

 

 

결론적으로, 하둡은 대용량을 여러기계에 분산시켜 처리하는 프로그램이고 R은 통계 처리 및 시각화하는데 사용되고 있다.

그래서 먼저 R을 공부하여 사용하고, 대용량을 다룰 때 하둡을 같이 사용하면 좋을 듯 하다.

 

728x90