본문 바로가기

하둡

(5)
[하둡] 맵리듀스(MapReduce) 이해하기 맵리듀스는 여러 노드에 태스크를 분배하는 방법으로 각 노드 프로세스 데이터는 가능한 경우, 해당 노드에 저장됩니다. 맵리듀스 태스크는 맵(Map)과 리듀스(Reduce) 총 두단계로 구성됩니다. 간단한 예를 들면 fork-join의 개념을 들 수 있습니다. 큰 작업에 대해 fork로 분할하고 또다시 fork로 분할합니다. 작은 작업을 다시 join하게 됩니다. 하둡에서는 큰 데이터가 들어왔을 때 64MB단위 블럭으로 분할합니다. 각각 블럭에 대한 연산을 합니다. 구글에는 많은 텍스트 파일이 존재합니다. Word1, Word2, Word3... 텍스트 안에 단어가 몇 번 나왔는가하는 것을 계산하는 작업을 수행하게 됩니다. 즉, 텍스트파일을 64MB 단위로 잘라내어 각 블럭에 대해서 특정 단어가 몇번 출현했..
[하둡] HDFS의 구현컨셉 및 설계 HDFS 기본 컨셉HDFS는 Java로 작성된 Google의 GFS 기반의 파일 시스템입니다. 기존의 파일 시스템(ext3, ext4 or xfs)의 상위에서 동작하게 됩니다. HDFS의 file 저장 방식1) File은 block 단위로 분할됩니다. (각 block은 기본적으로 64MB 또는 128MB 크기) - 만약 데이터가 180M라면 (64+64+64 총 3개의 블럭에 나눠 들어가게 됨)2) 데이터가 로드 될 때 여러 machine에 분산되어 저장됩니다. - 같은 file의 다른 block들은 서로 다른 machine에 저장됨 - 이를 통해 효율적인 MapReduce 처리가 가능3) Block들은 여러 machine에 복제되어 Data node에 저장됩니다. - 기본 replication은 3개 ..
[하둡] 하둡의 HDFS 사용법 하둡 HDFS 기본 사용법시스템과의 상호작용은 hadoop 이라는 명령어를 통해서 합니다. 만약 터미널을 열고, 인자 없이 명령어를 실행하면 도움말이 나옵니다. 이와 같이 실행하기 위해서, 아래 명령어를 실행합니다. $hadoop hadoop 명령어는 여러개의 서브 시스템으로 세분화 되어있습니다. 예를 들어, HDFS의 파일을 처리하기 위한 서브 시스템과 MapReduce Processing Job을 관리하고 실행하기 위한 서브 시스템이 있습니다. Step 1. Exploring HDFS하둡 프로그램에서 HDFS와 관련된 서브 시스템은 FsShell 이라고 합니다. 이 서브 시스템은 hadoop fs 명령어로 실행할 수 있습니다. 1. 데스크탑의 Terminal 아이콘을 더블클릭하여 Terminal을 실..
[하둡] 하둡 분산처리시스템 구성요소 분산 처리 시스템 하나의 작업에 여러대의 machine을 두고, MPI(Message Passing Interface)를 사용하는 시스템입니다. 하지만, 분산처리 시스템에도 문제가 있습니다. 분산 처리 시스템의 문제점- 복잡한 프로그래밍(데이터 프로세스의 sync 유지) : MPI가 프로그래밍 하기 굉장히 복잡합니다.- Partial failures : 수많은 컴퓨터를 사용하는 경우에 일부의 컴퓨터가 고장나는 경우 시스템이 동작하지 않습니다. GFS(구글파일시스템)과 MapReduce가 나오기전, 분산처리 시스템은 Message Passing Inteface가 너무 복잡하여 프로그래밍하기가 어려웠습니다. 또한, 수만대의 분산 컴퓨터들이 하나만 고장이나도 동작을 안하게 되는 문제가 있었습니다. 이 문제를 ..
[하둡] 아파치 하둡이란? 아파치 하둡이란? Apache Hadoop은 빅데이터를 저장, 처리, 분석할 수 있는 소프트웨어 프레임워크입니다. 아파치 하둡의 특징은 다음과 같습니다.- Distributed: 수십만대의 컴퓨터에 자료 분산 저장 및 처리 - Scalable: 용량이 증대되는 대로 컴퓨터 추가 - Fault-tolerant: 하나 이상의 컴퓨터가 고장나는 경우에도 시스템이 정상 동작 - Open source: 공개 소프트웨어 구글이 나오면서 굉장히 많은 데이터를 가져온 사례가 있었습니다. 구글에서 데이터들이 빅데이터가 되었고, 빅데이터를 분석하고 처리하는 프레임워크가 존재하지 않았습니다. 그래서 구글이 생각한게 데이터를 모아서 처리할 수 있는 프레임워크가 필요하다고 생각하였고, 실제 빅데이터를 처리할 수 있는 프레임워크..