하둡 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
[[파일:하둡 로고.png|썸네일|200픽셀|'''하둡'''(Hadoop) 로고]]
 
[[파일:하둡 글자.png|썸네일|300픽셀|'''하둡'''(Hadoop) 로고와 글자]]
 
 
 
'''하둡'''(Hadoop)은 여러 개의 저렴한 [[컴퓨터]]를 마치 하나인 것처럼 묶어 대용량 데이터를 처리할 수 있는 자바(Java)기반의 [[오픈소스]] 소프트웨어 [[프레임워크]]이다.정식 명칭은 '''아파치 하둡'''(Apache Hadoop)이다. 하둡(Hadoop)이라는 말은 High-Availability Distributed Object-Oriented Platform의 약자라는 말도 있고, 개발자인 [[더그 커팅]](Doug Cutting)의 아들이 가지고 놀던 코끼리 인형의 이름이라는 말도 있다.
 
'''하둡'''(Hadoop)은 여러 개의 저렴한 [[컴퓨터]]를 마치 하나인 것처럼 묶어 대용량 데이터를 처리할 수 있는 자바(Java)기반의 [[오픈소스]] 소프트웨어 [[프레임워크]]이다.정식 명칭은 '''아파치 하둡'''(Apache Hadoop)이다. 하둡(Hadoop)이라는 말은 High-Availability Distributed Object-Oriented Platform의 약자라는 말도 있고, 개발자인 [[더그 커팅]](Doug Cutting)의 아들이 가지고 놀던 코끼리 인형의 이름이라는 말도 있다.
 
==개요==
 
==개요==
7번째 줄: 4번째 줄:
 
==역사==
 
==역사==
 
하둡은 오픈소스 웹 검색엔진인 아파치 너치Apache Nutch에서 개발되었고, 그것 자체는 루씬 프로젝트의 일부이다.
 
하둡은 오픈소스 웹 검색엔진인 아파치 너치Apache Nutch에서 개발되었고, 그것 자체는 루씬 프로젝트의 일부이다.
*2002년 : 너치가 개발되었고, 실행 가능한 [[크롤러]](Chrawler)와 검색 엔진 시스템을 빠르게 개발
+
*2002년 : 너치가 개발되었고, 실행 가능한 [[크롤러(Chrawler]]와 검색 엔진 시스템을 빠르게 개발
*2004년 : 구글은 맵리듀스를 소개하는 논문을 출판했다. 2005년 초기에 너치 개발자들은 너치에 맵리듀스를 구현하였고, [[NDFS]](Nutch Distributed FileSystem)이라는 너치 분산 파일 시스템을 오픈소스로 구현해 보기로 했다.
+
*2004년 : 구글은 맵리듀스를 소개하는 논문을 출판했다. 2005년 초기에 너치 개발자들은 너치에 맵리듀스를 구현하였고, [[NDFS(Nutch Distributed FileSystem)]]이라는 너치 분산 파일 시스템을 오픈소스로 구현해 보기로 했다.
 
*2005년 중반까지 모든 주요 너치 알고리즘들이 맵리듀스와 NDFS를 사용하기 위하여 포팅되었고,너치 내부에 NDFS와 맵리듀스 구현은 검색 분야를 뛰어넘어 응용될 수 있다.
 
*2005년 중반까지 모든 주요 너치 알고리즘들이 맵리듀스와 NDFS를 사용하기 위하여 포팅되었고,너치 내부에 NDFS와 맵리듀스 구현은 검색 분야를 뛰어넘어 응용될 수 있다.
 
*2006년 2월 : NDFS와 맵리듀스는 하둡이라고 명명된 루씬의 독립 서브프로젝트를 구성하기 위하여 Nutch 밖으로 빠져나왔다. 비슷한 시기에, 더그 커팅은 [[Yahoo]]에 합류하였고, 하둡은 웹 규모의 시스템으로 전환하기 위하여 전용 팀과 리소스들을 제공하였다.
 
*2006년 2월 : NDFS와 맵리듀스는 하둡이라고 명명된 루씬의 독립 서브프로젝트를 구성하기 위하여 Nutch 밖으로 빠져나왔다. 비슷한 시기에, 더그 커팅은 [[Yahoo]]에 합류하였고, 하둡은 웹 규모의 시스템으로 전환하기 위하여 전용 팀과 리소스들을 제공하였다.
14번째 줄: 11번째 줄:
 
*2008년 4월 : 하둡은 테라바이트 데이터 정렬을 위한 가장 빠른 시스템으로서 세계 기록을 경신했다. 910개의 노드의 클러스터와 함께 하둡은 전년도 우승자의 297초를 제치며 1테라비이트를 209초만에 정렬했다.
 
*2008년 4월 : 하둡은 테라바이트 데이터 정렬을 위한 가장 빠른 시스템으로서 세계 기록을 경신했다. 910개의 노드의 클러스터와 함께 하둡은 전년도 우승자의 297초를 제치며 1테라비이트를 209초만에 정렬했다.
 
*2008년 11월 : 구글은 하둡의 맵리듀스 구현이 1테라바이트를 68초만에 정렬했다고 보고했다.
 
*2008년 11월 : 구글은 하둡의 맵리듀스 구현이 1테라바이트를 68초만에 정렬했다고 보고했다.
*2009년 5월 : 야후는 하둡을 사용하여 62초만에 1테라바이트 정렬하였다고 공표하였다.<ref> 비령, 〈[http://blog.naver.com/PostView.nhn?blogId=hero1014&logNo=20187445062 하둡의 역사 ]〉, 《네이버 블로그》, 2013-05-11 </ref>
+
*2009년 5월 : 야후는 하둡을 사용하여 62초만에 1테라바이트 정렬하였다고 공표하였다.<ref> 비령, 〈[http://blog.naver.com/PostView.nhn?blogId=hero1014&logNo=20187445062]〉, 《네이버 블로그》, 2013-05-11 </ref>
 
 
 
==버전==
 
==버전==
 
*2011년 : 하둡v1
 
*2011년 : 하둡v1
 
*2012년 : 하둡v2
 
*2012년 : 하둡v2
 
*2017년 : 하둡v3
 
*2017년 : 하둡v3
===하둡v1 특징===
+
===하둡v1의 특징===
 
*분산저장(HDFS)
 
*분산저장(HDFS)
 
*네임노드, 데이터 노드가 처리
 
*네임노드, 데이터 노드가 처리
28번째 줄: 24번째 줄:
 
*작업 처리를 슬롯(slot) 단위로 처리
 
*작업 처리를 슬롯(slot) 단위로 처리
 
*맵, 리듀스 슬롯을 구분하여 처리
 
*맵, 리듀스 슬롯을 구분하여 처리
===하둡v2 특징===
+
===하둡v2의 특징===
 
*클러스터 관리
 
*클러스터 관리
 
*작업 관리
 
*작업 관리
34번째 줄: 30번째 줄:
 
*클러스터당 1만개 이상의 노드 등록 가능
 
*클러스터당 1만개 이상의 노드 등록 가능
 
*작업 처리를 컨테이너(container) 단위로 처리
 
*작업 처리를 컨테이너(container) 단위로 처리
===하둡v3 특징===
+
===하둡v3의 특징===
 
*이레이져 코딩 도입
 
*이레이져 코딩 도입
 
*YARN 타입라인 서비스 v2 도입
 
*YARN 타입라인 서비스 v2 도입
40번째 줄: 36번째 줄:
 
*JAVA8 지원
 
*JAVA8 지원
 
*네이티브 코드 최적화
 
*네이티브 코드 최적화
*고가용성을 위해 2개 이상의 네임노드 지원 <ref name="하둡"> 위키독스 공식 홈페이지 - https://wikidocs.net/ </ref>
+
*고가용성을 위해 2개 이상의 네임노드 지원<ref name="하둡"> 위키독스 공식 홈페이지 - https://wikidocs.net/ </ref>
 
 
 
==특징==
 
==특징==
하둡은 빅데이터 분산시키는 프로그램이기 때문에 각각의 빅데이터 플랫폼에서 좋은 혹평을 듣고 있다. 단일서버에서 많은 머신으로 확장할 수 있게 제작되었으며 각 머신은 계산, 정리 등 할 수 있다. 하둡 자체에는 높은 가용성을 제공하기 위해 하드웨어만 쓰는게 아니라 여러 응용프로그램 계층도 사용할 수 있다.응용프로그램 계층은 오류를 감지하거나 처리를 할 수 있고, 에러가 발생한 클러스터는 해결방안을 제시한다. 또, 일반적인 스토리지는 초기에 애플리케이션에서 사용할 용량을 예측하여 미리 스토리지 용량을 확보한 상태에서 시스템이 오픈되나, 하둡 파일 시스템을 이용할 경우에는 서비스 초기에 필요한 수준으로만 스토리지 용량을 확보해 시스템을 오픈한 후 스토리지 증가 추이를 보면서 용량을 추가하는 방식으로 진행 할 수 있다. (기존의 방법보다 관리가 용이함)
+
하둡은 빅데이터 분산시키는 프로그램이기 때문에 각각의 빅데이터 플랫폼에서 좋은 혹평을 듣고 있다. 단일서버에서 많은 머신으로 확장할 수 있게 제작되었으며 각 머신은 계산, 정리 등 할 수 있다. 하둡 자체에는 높은 가용성을 제공하기 위해 하드웨어만 쓰는게 아니라 여러 응용프로그램 계층도 사용할 수 있다.응용프로그램 계층은 오류를 감지하거나 처리를 할 수 있고, 에러가 발생한 클러스터는 해결방안을 제시한다.
뿐만 아니라 글로벌 네임 스페이스를 제공하기 때문에 시스템 간의 파일 데이터에 대한 중복 저장 등 파일공유 등의 문제를 쉽게 해결할 수 있다.
+
====선형적인 확장성 제공====
 +
*일반적인 스토리지는 초기에 애플리케이션에서 사용할 용량을 예측하여 미리 스토리지 용량을 확보한 상태에서 시스템이 오픈되나, 하둡 파일 시스템을 이용할 경우에는 서비스 초기에 필요한 수준으로만 스토리지 용량을 확보해 시스템을 오픈한 후 스토리지 증가 추이를 보면서 용량을 추가하는 방식으로 진행 할 수 있다. (기존의 방법보다 관리가 용이함)
 +
글로벌 네임 스페이스 제공
 +
*시스템 간의 파일 데이터에 대한 중복 저장 등 파일공유 등의 문제를 쉽게 해결할 수 있다.
 
===전체처리 용량증가===
 
===전체처리 용량증가===
분산된 서버의 디스크를 이용하기 때문에 네트워크, 디스크 I/O등이 각 서버로 분산된다. 따라서 동일한 용량의 스토리지 솔루션을 구축 할 경우 전체 처리 용량은 증가한다.
+
*분산된 서버의 디스크를 이용하기 때문에 네트워크, 디스크 I/O등이 각 서버로 분산된다. 따라서 동일한 용량의 스토리지 솔루션을 구축 할 경우 전체 처리 용량은 증가한다.
 
===데이터 분석 처리에 활용===
 
===데이터 분석 처리에 활용===
분석용 데이터를 하둡파일시스템에 저장하고, 맵리듀스라는 분산/병렬 처리 프레임워크를 이용해 바르게 분석하는데 사용.
+
*분석용 데이터를 하둡파일시스템에 저장하고, 맵리듀스라는 분산/병렬 처리 프레임워크를 이용해 바르게 분석하는데 사용.
 
===응용프로그램 기반의 파일 시스템===
 
===응용프로그램 기반의 파일 시스템===
일반적인 파일시스템처럼 운영체제에서 제공하는 파일처리 명령을 이용할 수 없고, 하둡 분산 파일 시스템을 이용하는 애플리케이션은 하둡에서 제공하는 명령어나 프로그램API를 이용해야 한다.
+
*일반적인 파일시스템처럼 운영체제에서 제공하는 파일처리 명령을 이용할 수 없고, 하둡 분산 파일 시스템을 이용하는 애플리케이션은 하둡에서 제공하는 명령어나 프로그램API를 이용해야 한다.
 
===불변파일만 저장===
 
===불변파일만 저장===
파일은 한번 써지면 변경되지 않는다고 가정하기 때문에 하둡분산파일 시스템은 파일을 저장하고 저장된 파일에 대해 스트리밍 방식의 읽기 요청 위주인 응용이나 배치 작업 등에 적합하다. 이런 제약 때문에 파일 처리를 주로 하는 기존 솔루션이나 시스템을 수정없이 하둡 분산 파일 시스템을 적용 할 수는 없다.
+
*파일은 한번 써지면 변경되지 않는다고 가정한다.
 +
*하둡분산파일 시스템은 파일을 저장하고 저장된 파일에 대해 스트리밍 방식의 읽기 요청 위주인 응용이나 배치 작업 등에 적합하다. 이런 제약 때문에 파일 처리를 주로 하는 기존 솔루션이나 시스템을 수정없이 하둡 분산 파일 시스템을 적용 할 수는 없다.
 
===네임스페이스 관리를 네임 노드 메모리에 저장===
 
===네임스페이스 관리를 네임 노드 메모리에 저장===
파일 시스템의 네임스페이스 정보를 네임노드의 메모리상에서 관리하기 때문에 하둡에 저장할 수 있는 파일과 디렉토리의 개수는 네임노드의 메모리 크기에 제한을 받는다.
+
*파일 시스템의 네임스페이스 정보를 네임노드의 메모리상에서 관리하기 때문에 하둡에 저장할 수 있는 파일과 디렉토리의 개수는 네임노드의 메모리 크기에 제한을 받는다.
 
===네임노드 이중화 문제===
 
===네임노드 이중화 문제===
네임노드가 SPOF(Single Point Of Failre)다. 네임노드에 문제가 발생하면 파일시스템 전체 클러스터에 장애가 발생한다. <ref> 하동하동, 〈[https://m.blog.naver.com/PostView.nhn?blogId=cookatrice&logNo=50107835245&proxyReferer=https%3A%2F%2Fwww.google.com%2F Hadoop의 특징과 장단점], 《네이버 블로그》, 2011-03-23 </ref>
+
*네임노드가 SPOF(Single Point Of Failre)다. 네임노드에 문제가 발생하면 파일시스템 전체 클러스터에 장애가 발생한다. <ref> 하동하동, 〈[https://m.blog.naver.com/PostView.nhn?blogId=cookatrice&logNo=50107835245&proxyReferer=https%3A%2F%2Fwww.google.com%2F〉], 《네이버 블로그》, 2011-03-23</ref>
하둡은 패키지가 있다. 패키지에는 4개의 주요 구성요소가 자리잡고 있다. Hadoop Common, Hadoop HDFS, Hadoop YARN, Hadoop Mapreduce 이렇게 4가지 구성요소가 있다. 각각의 주요 구성요소의 특징은 이렇게 나와 있다.
+
하둡은 패키지가 있다. 패키지에는 4개의 주요 구성요소가 자리잡고 있다. [[Hadoop Common]], [[Hadoop HDFS]], [[Hadoop YARN]], [[Hadoop Mapreduce]] 이렇게 4가지 구성요소가 있다. 각각의 주요 구성요소의 특징은 이렇게 나와 있다.
*Hadoop Common : 하둡의 다른 모듈을 지원하기 위한 공통 컴포넌트 모듈
+
===Hadoop Common===
*Hadoop HDFS : 분산저장을 처리하기 위한 모듈, 여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장, 하드웨어가  동작오류 나면 빨리 자동으로 복구, 하나의 인스턴스에서 수천만여 파일을 지원, 시간당 처리량 극대화
+
*하둡의 다른 모듈을 지원하기 위한 공통 컴포넌트 모듈
* Hadoop YARN : 병렬처리를 위한 클러스터 자원관리 및 스케줄링 담당
+
===Hadoop HDFS===
* Hadoop Mapreduce : 분산되어 저장된 데이터를 병렬 처리할 수 있게 해주는 분산 처리 모듈이다. <ref name="하둡"></ref> 빅데이터 플랫폼, Yahoo, Facebook 같은 경우에는 HDFS, Maperduced 두가지 구성요소를 자주 쓰고 있다.
+
*분산저장을 처리하기 위한 모듈
 +
*여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장
 +
*하드웨어가  동작오류 나면 빨리 자동으로 복구
 +
*하나의 인스턴스에서 수천만여 파일을 지원
 +
*시간당 처리량 극대화
 +
===Hadoop YARN===
 +
*병렬처리를 위한 클러스터 자원관리 및 스케줄링 담당
 +
===Hadoop Mapreduce===
 +
*분산되어 저장된 데이터를 병렬 처리할 수 있게 해주는 분산 처리 모듈 <ref name="하둡"> </ref>
  
 +
이렇게 여러가지로 표현이 되어 있다. 하지만 여러 사용자들이나 빅데이터 플랫폼, Yahoo, Facebook 같은 경우에는 HDFS, Maperduced 두가지 구성요소를  자주 쓰고 있다.
 
==장단점==
 
==장단점==
 
===장점===
 
===장점===
71번째 줄: 79번째 줄:
 
*오프라인 배치 프로세싱에 최적화
 
*오프라인 배치 프로세싱에 최적화
 
===단점===  
 
===단점===  
*HDFS에 저장된 데이터를 변경 불가
+
HDFS에 저장된 데이터를 변경 불가
 
*실시간 데이터 분석 같이 신속하게 처리해야 하는 작업에는 부적합
 
*실시간 데이터 분석 같이 신속하게 처리해야 하는 작업에는 부적합
 
*너무 많은 버전과 부실한 서포트
 
*너무 많은 버전과 부실한 서포트
 
*설정의 어려움
 
*설정의 어려움
 
 
==향후 전망==
 
==향후 전망==
하둡은 이제 더 이상 하둡파일스템과 맵리듀스만을 의미하지는 않는다. 이를 기반으로 거대한 하둡 생태계가 구성됐다. 써드파티 관리 소프트웨어나 HBASE같은 운영 DB, 임팔라 타조 등의 SQL 온 하둡, 피그 테즈 하마 등의 프레임워크, 분석 애플리케이션 등이 하둡과 함께 하고 있다. 현재 25개 이상의 컴포넌트들이 하둡 생태계 안에 들어와 있다. 이생태계는 앞으로 더욱 확장될 것이다. 하둡의 지난 10년은 빅데이터 시대를 이끌었다. 앞으로 하둡은 실시간 분석 등 더 다양한 기능으로 확대될 것으로 전망된다.<ref> 심재석, 〈[https://byline.network/2016/01/1-47/ 하둡 10년, 빅데이터의 역사를 이끌다]〉《Byline Network》2016-01-27
+
*하둡은 이제 더 이상 하둡파일스템과 맵리듀스만을 의미하지는 않는다. 이를 기반으로 거대한 하둡 생태계가 구성됐다. 써드파티 관리 소프트웨어나 HBASE같은 운영 DB, 임팔라 타조 등의 SQL 온 하둡, 피그 테즈 하마 등의 프레임워크, 분석 애플리케이션 등이 하둡과 함께 하고 있다. 현재 25개 이상의 컴포넌트들이 하둡 생태계 안에 들어와 있다. 이생태계는 앞으로 더욱 확장될 것이다. 하둡의 지난 10년은 빅데이터 시대를 이끌었다. 앞으로 하둡은 실시간 분석 등 더 다양한 기능으로 확대될 것으로 전망된다.<ref> 심재석, 〈[https://byline.network/2016/01/1-47/]〉《Byline Network》2016-01-27 </ref>
</ref>
 
 
 
{{각주}}
 
  
 
==참고 자료==
 
==참고 자료==
 
*아파치 하둡 공식홈페이지 - https://hadoop.apache.org/
 
*아파치 하둡 공식홈페이지 - https://hadoop.apache.org/
*PLAY wuth EXEM, 〈[https://m.post.naver.com/viewer/postView.nhn?volumeNo=4122596&memberNo=30800755&navigationType=push BigData 만화 | 빅 앤 데이라 1화 - 하둡이 뭐임?]〉, 《네이버 포스트》 2016-04-27
+
*PLAY wuth EXEM, 〈[https://m.post.naver.com/viewer/postView.nhn?volumeNo=4122596&memberNo=30800755&navigationType=push]〉, 《네이버 포스트》 2016-04-27
*비령, 〈[http://blog.naver.com/PostView.nhn?blogId=hero1014&logNo=20187445062 하둡의 역사 ]〉, 《네이버 블로그》, 2013-05-11
+
*비령, 〈[http://blog.naver.com/PostView.nhn?blogId=hero1014&logNo=20187445062]〉, 《네이버 블로그》, 2013-05-11
 
*위키독스 공식 홈페이지 - https://wikidocs.net/
 
*위키독스 공식 홈페이지 - https://wikidocs.net/
*하동하동, 〈[https://m.blog.naver.com/PostView.nhn?blogId=cookatrice&logNo=50107835245&proxyReferer=https%3A%2F%2Fwww.google.com%2F Hadoop의 특징과 장단점]〉, 《네이버 블로그》, 2011-03-23
+
*하동하동, 〈[https://m.blog.naver.com/PostView.nhn?blogId=cookatrice&logNo=50107835245&proxyReferer=https%3A%2F%2Fwww.google.com%2F]〉, 《네이버 블로그》, 2011-03-23
*심재석, 〈[https://byline.network/2016/01/1-47/ 하둡 10년, 빅데이터의 역사를 이끌다]〉《Byline Network》2016-01-27
+
*심재석, 〈[https://byline.network/2016/01/1-47/]〉《Byline Network》2016-01-27
 
 
 
== 같이 보기 ==
 
== 같이 보기 ==
 
* [[더그 커팅]]
 
* [[더그 커팅]]
 
* [[아파치재단]]
 
* [[아파치재단]]
  
{{솔루션|검토 필요}}
+
{{프로그래밍|토막글}}

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)