일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- SSM
- 패턴인식
- 동아리
- 신경회로망
- Friendship
- NarwalFreo
- 삼성전자 소프트웨어멤버십 SSM
- BAM
- 신경망
- 파이썬
- hopfield network
- 물걸레로봇청소기추천
- 삼성
- 하이퍼바이저
- Bidirectional Associative Memory
- 가상화
- 갤럭시탭S8울트라
- 구글 앱 엔진
- 물걸레자동세척로봇청소기
- 증강현실
- 멤버십
- 고려대학교
- Neural Network
- Google App Engine
- Python
- 패턴 인식
- 삼성소프트웨어멤버십
- 인공지능
- 나르왈프레오
- 빅데이터
- Today
- Total
정보공간_1
[3기 신촌 윤기백] Hadoop의 이해 1편 - BigData와 HDFS 본문
[3기 신촌 윤기백] Hadoop의 이해 1편 - BigData와 HDFS
알 수 없는 사용자 2013. 2. 5. 13:28안녕하세요. 신촌멤버십 22-1기 윤기백입니다.
저는 Hadoop Map-Reduce에 대해서 제가 진행했던 프로젝트와 함께 소개해드리고자 합니다.
이전 글에 Hadoop에 대한 설치 및 운용에 관한 글이 있기에,
그 부분은 생략하고 Hadoop에서 중요한 부분인 HDFS와 Map-Reduce에 대한 설명을 하겠습니다.
연재식으로 진행할 예정이며, 우선 처음에는 Big Data의 정의와 HDFS에 대해서 설명하겠습니다.
1화 - BigData의 정의와 HDFS
2화 - Map-Reduce에 대한 소개 및 이해
3화 - 실제 프로젝트와 함께 적용해보는 Map-Reduce
4화 - Hadoop의 Eco System 및 정리(예정)
Big Data의 소개 |
|
우선 오픈소스인 Hadoop이 이슈화된 가장 큰 원인이라고 할 수 있는 Big Data에 대해서
설명드릴 필요가 있어서 간단히 소개하겠습니다.
Big Data란 기존의 방식으로 저장/관리/분석하기 어려울 정도로 큰 규모의 자료를 의미합니다.
예를 들어서 설명하자면, 뉴욕 증권 거래소의 하루 거래 데이터는 약 1테라바이트이며,
Facebook은 100억장의 사진(수 페타바이트),
통신사의 경우 시간당 10기가바이트이상의 통화데이터(하루 240기가바이트)를 생성하고 있습니다.
BigData는 두가지 바라보는 방향에 따라 정의가 되곤 합니다.
DB 규모에 초점을 맞추면,
“일반적인 데이터베이스 SW가 저장,관리,분석할 수 있는 범위를 초과하는 규모의 데이터”
를 의미하며(McKinsey, 2011),
업무수행에 초점을 맞추면
“다양한 종류의 대규모 데이터로부터 저렴한 비용으로 가치를 추출하고,
(데이터의) 초고속 수집,발굴,분석을 지원하도록 고안된 차세대 기술 및 아키텍쳐”
를 말합니다.(IDC, 2011)
정리하면 단순히 큰 데이터만 아니라, 분석 가치가 있는 큰 데이터와 그 것을 분석하는
도구, 플랫폼, 분석기법까지 포괄하는 용어가 Big Data입니다.
이러한 데이터를 분석하기 위해서는 기존의 방식으로는 엄청난 제원과 수의 서버가 필요하게 되며,
그렇기 때문에 Hadoop이 각광받게 된 것 입니다.
보통, 이러한 BigData는 4가지 순서에 의해서 처리/분석되어지곤 합니다.
1) SNS, 웹, 시스템 로그 데이터로부터 Collecting하는 작업을 진행합니다.
이러한 데이터 Mining하는 단계라고 생각하면 됩니다.
2) 이렇게 수집된 데이터는 서버의 대용량 데이터 저장소에 저장하는 Store 단계를 진행합니다.
이 때는 분석에 용이하기 위해 Hadoop은 HDFS로 관리하게 됩니다.
3) 그리고 저장된 데이터는 병렬처리를 통해 Analysis 과정을 거칩니다.
정보를 Clustering, Classification, Sentimental Analysis, Indexing하는 작업을
분산 병렬 처리 프레임워크를 통해 의미있는 결과데이터를 추출해냅니다.
4) 그리고 다양한 뷰(웹, 검색엔진, 그래프)등을 통해 Reporting/Searching할 수 있게 합니다.
Hadoop HDFS의 소개 |
|
하둡의 분석시스템을 이해하기 위해서는 우선 HDFS (Hadoop Distributed File System)에
대해서 아셔야 합니다.
HDFS는 대용량 파일 저장과 처리를 위한 솔루션입니다. HDFS는 하나의 서버에서만 동작 하는 게 아니라
여러 개의 서버에 설치되어서 서비스가 됩니다. HDFS만을 위한 별도의 스토리지가 필요 없고
일반 Linux 장비에 탑재되어 있는 local disk를 이용해 수 천 대 이상 확장 가능한 구조입니다.
기본적으로 HDFS은 파일을 64M 단위의 블럭으로 나누어서 저장하는 방식을 사용합니다.
블럭의 사이즈는 환경설정을 통해서 조정 가능합니다.
( hdfs-default.xml파일에서 환경설정이 가능합니다. dfs.blocksize는 default로 67108864로 설정되어
있습니다. 이는 개발자가 원하는 사이즈로 수정가능합니다.
관련 설명 : http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml)
사용자에게는 하나의 파일로 보이지만 실제로는 여러 장치에 나누어져 존재하게 됩니다. 하둡 분산 파일
시스템은 또한 사용자가 지정한 만큼의 복제를 해서 저장하게 되는데 일반적으로 3개의 복제를 만들어서
저장하게 됩니다..
HDFS클러스터는 마스터-워커 패턴으로 동작하는 두 종류의 노드를 가지는데, 하나의 네임노드 서버와 다수의 데이터 노드 서버들로 구성됩니다. 네임 노드는 파일시스템의 네임스페이스를 관리하면서 클라이언트의 파일 접근 요청을 처리합니다. 하둡 파일 시스템에서 파일 데이터는 블록 단위로 나뉘어 여러 데이터 노드에 분산되어 저장됩니다.
또한 값싼 하드웨어 장비를 사용하기 때문에 서버의 장애가 발생할 수 있기 때문에 복제를 통해 가용성을 보장합니다. 데이터 노드는 클라이언트의 데이터 입출력 요청을 처리하며, 데이터는 블록이라는 단위로 저장되게 됩니다.
HDFS의 이해가 되었으면, 이제 일반적인 파일시스템 연산을 수행해 봅시다.
User 영역에서 구현된 파일시스템이기 때문에 운영체제에서 제공하는 ls, cp, rm 과 같은 명령어와 호환이 되지
않습니다. 위의 명령어는 시스템 콜을 통해 Kernel 영역에 동작하는 파일시스템의 기능을 호출하기 때문인데, 대
신 HDFS 는 hadoop 명령어를 별도로 제공하여 User 영역에서 동작하는 파일시스템 데몬과 통신하여 사용자에
게 유사한 파일처리 기능을 제공합니다.
그 중에서 dfs(fs) 옵션을 통해서 HDFS의 기본 기능을 사용자가 쉘 형태로 이용할 수 있게 도와줍니다.
HDFS는 User영역의 파일시스템이므로, 로컬 파일시스템과 상호간 파일을 주고 받는 명령어가 필요합니다. put과 get 명령어가 이러한 기능을 제공하고, 사용은 다음과 같습니다.그외 다른 명령에 대한 상세한 도움은 hadoop fs –help를 실행하여 얻을 수 있습니다.
1) 파일 복사 명령
hadoop fs –copyFromLocal input/input1.txt hdfs://localhost/input/input1.txt
위 명령어는 하둡 파일시스템의 쉘 명령어 fs를 호출하게 됩니다. 위에서 사용한 copyFromLocal이란 명령어는 로컬파일 input1.txt를 HDFS 인스턴스의 /input/input1.txt로 복사하게 됩니다.
2) 폴더 생성
hadoop fs –mkdir input
3) 파일리스트 확인
hadoop fs –ls
4) 파일 넣기, 불러오기
아래 몇몇 예에서 확인할 수 있듯이, 우리가 사용하는 쉘 명령어와 비슷하다고 생각하시면 됩니다.
이와 같이 File System이 복잡하게 구성되는 이유는 다음부터 설명할 Map-Reduce 와 큰 연관이 있다고 할 수 있습니다. 물론 분석솔루션외에 안전성, 비용등 여러가지가 고려된 설계이기도 합니다.
다음에는 Hadoop의 Map-Reduce에 대해서 소개해보겠습니다.
참고 자료/사이트 : http://hadoop.apache.org/
http://bicdata.com
Hadoop 완벽가이드 - 한빛미디어
감사합니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[3기 대전 김재원] Linux Kernel Debugging - Dynamic Probes(2) (0) | 2013.02.05 |
---|---|
[3기 신촌 윤기백] Hadoop의 이해 2편 - MapReduce의 소개및 이해 (0) | 2013.02.05 |
[3기 전주 전환규] RAM을 이용한 Function-Simulation (0) | 2013.02.04 |
[3기 신촌 최기환] JAVA FX 소개 (0) | 2013.01.28 |
[3기 강북 김승현] Linux 2.6 Device Driver 개발환경 구축 (0) | 2013.01.28 |