Posts

Showing posts from June, 2012

Like children who playing on the seashore.

Image
The adults digs the sand for clams, the children builds sand castles. 
Pure sentiment. Sometimes I want to live like children who playing on the seashore.

Hadoop 1.0 뽀개기 (2) : MapReduce

Image
작성자: 윤진석 (Edward J. Yoon) 맵리듀스MapReduce는 HDFS에 분산 저장된 데이터에 스트리밍 접근을 요청하며 빠르게 분산 처리하도록 고안된 프로그래밍 모델이며, 또한 이를 지원하는 시스템을 말한다.

시스템 내부 구조는 작업Job 및 모니터링을 관리하는 잡 트래커JobTracker와 실질적인 연산 업무를 처리하는 태스크 트래커TaskTracker로 구성된다. 잡트래커는 HDFS에 의해 분할 된 각 데이터 조각의 지역 특성을 고려하여 각 태스크 트래커에 적절한 업무를 할당하는 방법으로 효과적인 분산 처리가 가능하도록 한다.

프로그래밍 모델

맵리듀스란 이름은 애초 Lisp와 같은 함수형 언어의 맵map과 리듀스Reduce 함수 모델을 차용하면서 유래되었다. 데이터의 집합에 맵 함수를 적용하여 새로운 집합intermediate data을 만들고 다시 리듀스 함수를 적용해서 하나의 결과로 취합하는 과정으로 구성된다.

일반적인 함수형 언어와의 차이점은 키밸류 데이터 집합을 또다른 키밸류 데이터 집합으로 제한된다는 점이다. 예를 들어, 다음과 같이 Map에서 한 쌍의 키밸류 데이터를 입력받아 새로운 (K2, V2) 셋을 만들고, Reduce에서 K2로 그룹핑grouping된 V2 리스트를 집계 연산한다.

Map (K1, V1) -> (K2, V2) Reduce (K2, sequence of V2) -> (K3, V3)
보통 Map의 역할이 데이터를 가공해서 분류하는데 있으므로 연산가공자Filter라 하고, Reduce의 역할은 분류된 데이터를 통합하는 데 있으므로 집계 연산자Aggregator라고도 한다. 하둡의 맵리듀스 프로그램은 이와 같이 두 함수의 구현을 통해 데이터 처리를 쉽게 병렬화 할 수 있고 범용적으로 활용 가능하다. 예를 들어, 웹 문서 URL과 내부 URL 링크셋 데이터가 있고, 자신을 링크하는 역 링크 URL 셋을 얻고자 한다. 그러면 Map에서 단지 거꾸로 데이터 셋을 가공하는 것으로 …

Hadoop 1.0 뽀개기

Image
작성자: 윤진석 (Edward J. Yoon) 이번 포스트는 하둡 1.0의 핵심 구성 요소 HDFS와 맵리듀스MapReduce, 그리고 대용량 준정형 데이터semi-structured data 저장소 HBase 데이터 모델의 기본 개념을 소개하겠다.

하둡 1.0 은 대용랑 파일을 저장할 수 있는 분산 파일시스템 HDFS와 이를 분산 처리 할 수 있는 맵리듀스 컴퓨팅 프레임워크로 구성되어 있다.맵리듀스 프로그래밍 모델은 복잡한 분산 컴퓨팅을 키/밸류 기반으로 단순화된 모델을 제공한다.HBase는 하둡 분산 파일시스템 기반에서 대용량 비정형 데이터 관리를 할 수 있게 하는 분산 스토리지이다.칼럼 패밀리와 시계열이 추가된 다차원 테이블 모델을 갖고 있으며, HBase의 칼럼 지향 아키텍처는 빠른 랜덤 억세스와 저장의 효율성을 보장한다.위 언급된 모든 시스템은 웹 기반 관리 도구와 장애 허용 능력Fault Tolerance Capability을 갖추고 있다.
1. 하둡 분산 파일 시스템, HDFSHDFS란?

하둡의 분산 파일 시스템, HDFSHadoop Distributed File System는 모든 기능의 밑 바탕이 되는 클러스터 기반 가상 파일 시스템이다. HDFS의 디자인은 대용량 데이터를 저가의 서버에 분산 저장하고 여러 번 읽기에 최적화된write-once-read-many 단순한 목적과 자동 복구 기능에 집중하고 있다. 이에 가장 두드러지는 특징이 바로 무한대의 선형 확장성이다. 파일과 디렉토리의 개수는 네임 노드의 메모리 크기에 제한을 받지만 최대 볼륨 크기, 파일 크기에는 제한이 없다. 그리고, 데이터를 여러 서버에 복제하여 각 서버에 고가의 RAID 구성을 필요로 하지 않고도 장애 복구Fail-over 가 가능하도록 하였다.

내부적으로 정확한 세부 사항은 상당히 다르지만 일반적인 파일 시스템의 자료구조와 상당히 유사한 구조를 지닌다. 즉 인덱스 노드와 데이터 블록이 중심 개념이며 전통적인 계층 구조의 파일시스템을 제공한…

IT crowd

Image
"If you're stuck on programming something, Call BBQ (chicken) store manager for technical details."

This is a joke between korean developers. Who should make the best use of their TALENT and taking full advantage of it?