메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

Hadoop을 이용한 분산 데이터 처리, Part 1: 시작

단순 클러스터 설치 및 구성하기

M. Tim Jones, Consultant Engineer, Emulex Corp.
M. Tim Jones는 임베디드 펌웨어 아키텍트이자 Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming(현재 2판), AI Application Programming(현재 2판) 및 BSD Sockets Programming from a Multilanguage Perspective의 저자이다. 정지 위성을 위한 커널 개발에서 시작해 임베디드 시스템 아키텍처와 네트워크 프로토콜 개발에 이르기까지 다양한 분야에 대한 공학 지식을 가지고 있다. 콜로라도주 롱몬트 소재의 Emulex Corp.에서 컨설턴트 엔지니어로 활약하고 있다.

요약:  Hadoop에 대해 다루는 시리즈의 첫 번째 기사인 이 기사에서는 HDFS(Hadoop file system)와 일반적으로 사용되는 노드 유형과 같은 기본 요소를 포함한 Hadoop 프레임워크에 대해 살펴봅니다. 단일 노드 Hadoop 클러스터를 설치 및 구성하는 방법을 설명한 후 MapReduce 애플리케이션에 대해 자세히 설명합니다. 마지막으로 Hadoop의 핵심 웹 인터페이스를 사용하여 Hadoop을 모니터링 및 관리하는 방법에 대해 살펴봅니다.

원문 게재일:  2010 년 5 월 18 일 번역 게재일:   2010 년 6 월 15 일
난이도:  중급 영어로:  보기 PDF:  A4 and Letter (60KB | 12 pages)Get Adobe® Reader®
페이지뷰:  17323 회
의견:  


Tim과 연락하기

Tim은 developerWorks의 가장 유명한 다작 저자 중 한 명이다. developerWorks에 실린 Tim의 모든 기사를 살펴보자. Tim의 프로파일을 확인하고 Tim과 다른 저자 및 My developerWorks의 동료 독자와 연락을 해보자.

Hadoop은 일부 대형 검색 엔진에서 데이터 축소를 위한 핵심 기능으로도 사용되고 있기는 하지만 분산 데이터 처리를 위한 프레임워크라는 설명이 더 잘 어울린다. 단순한 데이터가 아니라 검색 엔진에 필요한 데이터 및 검색 엔진에서 수집한 데이터 등과 같은 대용량 데이터의 분산 처리에 적합한 프레임워크이다. 많은 애플리케이션에서는 분산 프레임워크인 Hadoop을 통해 병렬 데이터 처리를 효과적으로 수행할 수 있다.

이 기사는 Hadoop 및 아키텍처를 소개하기 위한 것이 아니라 간단한 Hadoop 설정을 보여 주기 위한 것이다. 참고자료 섹션에서 Hadoop 아키텍처, 컴포넌트 및 작동 원리에 대한 자세한 정보를 볼 수 있다. 해당 면책사항을 검토한 후 Hadoop 설치 및 구성 과정을 살펴보자.

초기 설정

Hadoop의 기원

Apache Hadoop 프로젝트는 Google의 초기 작업에서 아이디어를 얻어서 개발되었다. Google에서 이 대용량 데이터 처리 방법에 대한 특허를 보유하고 있기는 하지만 Hadoop을 위해 라이센스를 관대하게 제공했다. 자세한 정보는 참고자료 섹션을 참조한다.

이 데모에서는 Cloudera Hadoop 배포판을 사용한다. 이 배포판에는 다양한 Linux® 배포판을 위한 지원이 있으므로 시작하기에 이상적이다.

이 기사에서는 시스템에 Java™ 기술(릴리스 1.6 이상)과 cURL이 설치되어 있는 것으로 가정한다. 그렇지 않은 경우에는 이러한 항목을 먼저 추가해야 한다. 이 설치에 대한 자세한 정보를 보려면 참고자료 섹션을 참조한다.

필자는 Ubuntu(Intrepid 릴리스)에서 실행 중이므로 apt 유틸리티를 사용하여 Hadoop 배포판을 가져왔다. 이 프로세스는 매우 단순하며 소스를 다운로드 및 빌드하는 추가 과정 없이 2진 패키지를 가져올 수 있다. 먼저 apt에게 Cloudera 사이트를 알려준다. 그런 다음 /etc/apt/sources.list.d/cloudera.list에 새 파일을 작성하고 다음 텍스트를 추가한다.

deb http://archive.cloudera.com/debian intrepid-cdh3 contrib
deb-src http://archive.cloudera.com/debian intrepid-cdh3 contrib

Jaunty 또는 다른 릴리스를 실행 중인 경우에는 intrepid를 특정 릴리스 이름으로 바꾼다. (현재 지원되는 릴리스로는 Hardy, Intrepid, Jaunty, Karmic 및 Lenny가 있다.)

그런 다음 Cloudera의 apt-key를 가져와서 다운로드된 패키지의 유효성을 검증한다.

$ curl -s http://archive.cloudera.com/debian/archive.key | \
sudo apt-key add - sudo apt-get update

그런 다음 단일 호스트에서 모든 Hadoop 디먼이 실행되는 가상 분산 구성을 위한 Hadoop을 설치한다.

$ sudo apt-get install hadoop-0.20-conf-pseudo
$

이 구성에는 약 23MB가 사용된다(apt가 가져오지만 없을 수도 있는 다른 패키지를 포함하지 않음). 이 설치는 Hadoop을 사용하고 해당 요소 및 인터페이스를 배우는 데 이상적이다.

마지막으로 비밀번호 문구(passphrase)를 사용하지 않는 SSH를 설정한다. ssh localhost를 사용할 때 비밀번호 문구가 요청되면 다음 단계를 수행해야 한다. 이 단계에서는 몇 가지 보안 개념이 적용되므로 전용 Hadoop 상자라고 가정한다(Listing 1 참조).


Listing 1. 비밀번호 문구를 사용하지 않는 SSH 설정하기
	
$ sudo su -
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

마지막으로 사용자의 호스트에 데이터 노드(캐시)에 사용할 저장 공간이 충분히 있는지 확인해야 한다. 저장 공간이 부족하면 예기치 않은 결과가 발생한다(예를 들어, 노드에 복제할 수 없음을 나타내는 오류).


Hadoop 시작하기

이제 Hadoop을 시작할 준비가 완료되었다. 이제 각 Hadoop 디먼을 시작하여 효과적으로 Hadoop을 시작할 수 있다. 하지만 먼저, hadoop 명령을 사용하여 HDFS(Hadoop File System)를 포맷한다. hadoop 명령은 여러 가지 방법으로 사용할 수 있으며, 여기에서는 몇 가지 방법만 간단히 살펴본다.

먼저, DFS 파일 시스템을 포맷할 namenode를 요청한다. 설치 과정의 일부로 이 작업을 수행하기는 하지만 깨끗한 파일 시스템을 생성할 필요가 있을 경우를 대비해서 알고 있으면 유용하다.

# hadoop-0.20 namenode -format

요청을 승인하면 파일 시스템이 포맷되고 일부 정보가 리턴된다. 그런 다음 Hadoop 디먼을 시작한다. 이 가상 분산 구성에서는 Hadoop이 namenode, secondarynamenode, datanode, jobtracker 및 tasktracker라는 5개의 디먼을 시작한다. 각 디먼이 시작되면 각 디먼의 로그가 저장된 위치를 식별하는 간단한 텍스트가 표시된다. 각 디먼은 백그라운드에서 디먼으로 실행되도록 시작된다. 그림 1에서는 시작이 완료된 후 가상 분산 노드의 모습을 보여 준다.


그림 1. 가상 분산 Hadoop 구성
가상 분산 Hadoop 구성의 블록 다이어그램

Hadoop에는 시작 작업을 간소화할 수 있는 도우미 도구가 있다. 이러한 도구는 시작(예: start-dfs)과 중지(예: stop-dfs)로 분류된다. 아래의 간단한 스크립트는 Hadoop 노드를 시작하는 방법을 보여 준다.

# /usr/lib/hadoop-0.20/bin/start-dfs.sh
# /usr/lib/hadoop-0.20/bin/start-mapred.sh
#

디먼이 실행 중인지 확인하기 위해 jps 명령(JVM 프로세스의 ps 유틸리티)을 사용할 수 있다. 이 명령은 5개의 디먼과 해당 프로세스 ID를 나열한다.

이제 Hadoop 디먼이 실행되고 있으므로 Hadoop 프레임워크에서 각 디먼이 수행하는 작업을 살펴보자. namenode는 Hadoop의 마스터 서버이며 파일 시스템 네임스페이스와 클러스터에 저장된 파일에 대한 액세스를 관리한다. 그리고 secondary namenode는 namenode에 대한 중복 디먼이 아니며 주기적인 검사 및 관리 작업을 제공한다. Hadoop 클러스터에는 namenode와 secondary namenode가 하나씩 있다.

datanode는 클러스터에 있는 여러 노드 중 한 노드에 연결된 저장 공간을 관리한다. 데이터를 저장하는 각 노드에서는 datanode 디먼이 실행된다.

마지막으로 각 클러스터에는 단일 jobtracker가 있다. 이 디먼은 datanode와 실제 작업을 수행하는 datanode별 tasktracker의 작업을 스케줄링하는 역할을 담당한다. jobtracker와 tasktracker는 마스터-슬레이브 관계로 작동하며, jobtracker는 datanode에 작업을 분배하고 tasktracker는 작업을 수행한다. 또한 jobtracker는 요청된 작업의 유효성을 검증하고 datanode가 실패할 경우 이전 작업을 다시 스케줄링한다.

이 간단한 구성에서는 모든 노드가 동일한 노드에 있다(그림 1 참조). 앞에서 설명한 것처럼 Hadoop의 병렬 작업 처리 방법은 쉽게 알 수 있다. 아키텍처가 단순하기는 하지만 Hadoop은 내결함성이 있는 방식으로 대용량 데이터를 손쉽게 분배, 로드 조정 및 병렬 처리할 수 있는 방법을 제공한다.


HDFS 검사하기

두 가지 테스트를 수행하여 Hadoop(최소한 namenode)이 정상적으로 실행 중인지 확인할 수 있다. 모든 프로세스를 사용할 수 있다면 hadoop 명령을 사용하여 로컬 네임스페이스를 검사할 수 있다(Listing 2 참조).


Listing 2. HDFS에 대한 액세스 검사하기
	
# hadoop-0.20 fs -ls /
Found 2 items
drwxr-xr-x   - root supergroup          0 2010-04-29 16:38 /user
drwxr-xr-x   - root supergroup          0 2010-04-29 16:28 /var
#

이제부터 namenode가 실행 중이고 로컬 네임스페이스에 서비스를 제공할 수 있다는 것을 알 수 있다. 여기에서는 hadoop-0.20이라는 명령을 사용하여 파일 시스템을 검사하고 있다. 이 유틸리티는 파일 시스템을 검사하고 클러스터 작업을 실행하는 등의 Hadoop 클러스터 관련 작업을 수행하는 데 사용된다. 명령 구조는 다음과 같다. hadoop-0.20 유틸리티를 지정한 후 명령(이 경우에는 일반 파일 시스템 쉘)과 하나 이상의 옵션(이 경우에는 ls로 파일 목록 요청)을 정의한다. hadoop-0.20이 Hadoop 클러스터에 대한 주요 인터페이스 중 하나이므로 이 기사에서는 이 유틸리티를 자주 사용한다. Listing 3에서는 이 인터페이스를 조금 더 자세히 살펴보는 데 사용할 수 있는 몇 가지 추가 파일 시스템 작업을 보여 준다. (test라는 서브디렉토리를 작성하고 서브디렉토리의 내용을 나열한 다음 서브디렉토리를 제거한다.)


Listing 3. Hadoop의 파일 시스템 조작 탐색하기
	
# hadoop-0.20 fs -mkdir test
# hadoop-0.20 fs -ls test
# hadoop-0.20 fs -rmr test
Deleted hdfs://localhost/user/root/test
# 


Hadoop 테스트하기

이제 Hadoop을 설치하고 파일 시스템에 대한 기본 인터페이스를 테스트했으므로 실제 애플리케이션에서 Hadoop을 테스트할 차례이다. 이 예제에서는 작은 데이터 세트에 대한 MapReduce 프로세스를 보여 준다. 맵핑(Map)축소(Reduce)는 함수형 프로그래밍의 함수 이름을 따서 붙여진 것이지만 데이터 축소를 위한 핵심 기능을 제공한다. 맵핑은 입력을 처리하기 위해 더 작은 하위 문제점 세트로 나누는 프로세스를 의미한다. (이러한 하위 문제점은 병렬 작업자에게 분배된다.) 축소는 하위 문제점의 응답을 단일 출력 세트로 조합하는 것을 의미한다. 여기에서는 처리의 의미를 정의하지 않았다. 왜냐하면 프레임워크에서 사용자가 직접 그 의미를 정의할 수 있기 때문이다. 일반적인 MapReduce는 문서 세트에 있는 단어의 빈도를 계산하는 것이다.

앞의 설명에 따라 하나의 입력 세트와 결과적으로 발생하는 출력 세트를 사용하게 된다. 첫 번째 단계는 파일 시스템에 작업을 저장할 input 서브디렉토리를 작성하는 것이다. 다음 명령을 사용하여 이를 수행한다.

# hadoop-0.20 fs -mkdir input

그런 다음 input 서브디렉토리에 일부 작업을 저장한다. 이 경우에는 로컬 파일 시스템의 파일을 HDFS로 이동하는 put 명령을 사용한다(Listing 4 참조). 아래 형식은 소스 파일을 HDFS 서브디렉토리(input)로 이동한다. 완료되면 처리할 준비가 된 두 개의 텍스트 파일이 HDFS에 생성된다.


Listing 4. HDFS로 파일 이동하기
	
# hadoop-0.20 fs -put /usr/src/linux-source-2.6.27/Doc*/memory-barriers.txt  input
# hadoop-0.20 fs -put /usr/src/linux-source-2.6.27/Doc*/rt-mutex-design.txt  input
#

이제 ls 명령을 사용하여 파일이 있는지 확인할 수 있다(Listing 5 참조).


Listing 5. HDFS의 파일 검사하기
	
# hadoop-0.20 fs -ls input
Found 2 items
-rw-r--r--  1 root supergroup 78031 2010-04-29 17:35 /user/root/input/memory-barriers.txt
-rw-r--r--  1 root supergroup 33567 2010-04-29 17:36 /user/root/input/rt-mutex-design.txt 
#

HDFS에 작업을 저장했으므로 이제 MapReduce 함수를 수행할 수 있다. 이 함수를 실행하려면 단일 명령이지만 긴 요청이 필요하다(Listing 6 참조). 이 명령은 JAR의 실행을 요청한다. 실제로는 수많은 기능을 구현하지만 이 예제에서는 wordcount에만 집중한다. jobtracker 디먼이 datanode에게 MapReduce 작업을 수행하도록 요청하면 결과적으로 상당한 양의 출력이 발생한다. (여기에서는 두 파일만 처리하므로 출력의 양이 작다.) 이 출력은 map 및 reduce 함수의 진행 상황을 보여 준 후 파일 시스템 및 레코드 처리에 대한 I/O와 관련된 유용한 통계를 제공한다.


Listing 6. 단어 빈도(wordcount)를 위한 MapReduce 작업 수행하기
	
# hadoop-0.20 jar /usr/lib/hadoop-0.20/hadoop-0.20.2+228-examples.jar \
wordcount input output
10/04/29 17:36:49 INFO input.FileInputFormat: Total input paths to process : 2
10/04/29 17:36:49 INFO mapred.JobClient: Running job: job_201004291628_0009
10/04/29 17:36:50 INFO mapred.JobClient:  map 0% reduce 0%
10/04/29 17:37:00 INFO mapred.JobClient:  map 100% reduce 0%
10/04/29 17:37:06 INFO mapred.JobClient:  map 100% reduce 100%
10/04/29 17:37:08 INFO mapred.JobClient: Job complete: job_201004291628_0009
10/04/29 17:37:08 INFO mapred.JobClient: Counters: 17
10/04/29 17:37:08 INFO mapred.JobClient:   Job Counters 
10/04/29 17:37:08 INFO mapred.JobClient:     Launched reduce tasks=1
10/04/29 17:37:08 INFO mapred.JobClient:     Launched map tasks=2
10/04/29 17:37:08 INFO mapred.JobClient:     Data-local map tasks=2
10/04/29 17:37:08 INFO mapred.JobClient:   FileSystemCounters
10/04/29 17:37:08 INFO mapred.JobClient:     FILE_BYTES_READ=47556
10/04/29 17:37:08 INFO mapred.JobClient:     HDFS_BYTES_READ=111598
10/04/29 17:37:08 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=95182
10/04/29 17:37:08 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=30949
10/04/29 17:37:08 INFO mapred.JobClient:   Map-Reduce Framework
10/04/29 17:37:08 INFO mapred.JobClient:     Reduce input groups=2974
10/04/29 17:37:08 INFO mapred.JobClient:     Combine output records=3381
10/04/29 17:37:08 INFO mapred.JobClient:     Map input records=2937
10/04/29 17:37:08 INFO mapred.JobClient:     Reduce shuffle bytes=47562
10/04/29 17:37:08 INFO mapred.JobClient:     Reduce output records=2974
10/04/29 17:37:08 INFO mapred.JobClient:     Spilled Records=6762
10/04/29 17:37:08 INFO mapred.JobClient:     Map output bytes=168718
10/04/29 17:37:08 INFO mapred.JobClient:     Combine input records=17457
10/04/29 17:37:08 INFO mapred.JobClient:     Map output records=17457
10/04/29 17:37:08 INFO mapred.JobClient:     Reduce input records=3381 

처리가 완료되면 결과를 확인한다. 작업의 핵심은 입력 파일에서 발생한 단어의 수를 계산하는 것이다. 이 출력은 단어와 단어가 입력에 나타난 수를 나타내는 요소로 구성된 파일로 생성된다. hadoop-0.20 유틸리티를 통해 cat 명령을 사용하여(특정 출력 파일을 찾은 후) 이 데이터를 표시할 수 있다(Listing 7 참조).


Listing 7. MapReduce wordcount 작업의 출력 검토하기
	
# hadoop-0.20 fs -ls /user/root/output
Found 2 items
drwxr-xr-x   - root supergroup          0 2010-04-29 17:36 /user/root/output/_logs
-rw-r--r--   1 root supergroup      30949 2010-04-29 17:37 /user/root/output/part-r-00000
#  
# hadoop-0.20 fs -cat output/part-r-00000 | head -13
!= 1
"Atomic 2
"Cache 2
"Control 1
"Examples 1
"Has 7
"Inter-CPU 1
"LOAD 1
"LOCK" 1
"Locking 1
"Locks 1
"MMIO 1
"Pending 5
#

hadoop-0.20 유틸리티를 사용하여 HDFS에서 파일을 추출할 수도 있다(Listing 8 참조). get 유틸리티(앞에서 HDFS에 파일을 작성하기 위해 실행한 put과 유사)를 사용하여 이 작업을 쉽게 수행할 수 있다. get 작업의 경우 output 서브디렉토리에서 추출할 HDFS의 파일과 로컬 파일 시스템에 작성할 파일 이름(output.txt)을 지정한다.


Listing 8. HDFS에서 출력 추출하기
	
# hadoop-0.20 fs -get output/part-r-00000 output.txt
# cat output.txt | head -5
!= 1
"Atomic 2
"Cache 2
"Control 1
"Examples 1
#  

동일한 JAR을 사용하지만 용도가 다른 또 하나의 예제를 살펴보자. (여기에서는 병렬 grep을 살펴본다.) 이 테스트에서는 기존 입력 파일을 사용하지만 output 서브디렉토리를 제거한 후 다시 작성한다.

# hadoop-0.20 fs -rmr output
Deleted hdfs://localhost/user/root/output

그런 다음 MapReduce 작업에 grep을 요청한다. 이 경우에는 grep이 병렬로 수행된(맵핑) 다음 grep 결과가 결합된다(축소). Listing 9에서는 이 사용 모델의 출력을 보여 준다. (하지만 이 경우에는 간략하게 보여 주기 위해 일부 출력이 생략되었다.) 이 예제의 명령 요청을 보면 grep 요청이 input 서브디렉토리에서 입력을 가져온 후 output 서브디렉토리에 결과를 저장한다. 마지막 매개변수는 검색하려는 문자열이다(이 경우에는 'kernel').


Listing 9. 단어 검색 수(grep)를 위한 MapReduce 작업 수행하기
	
# hadoop-0.20 jar /usr/lib/hadoop/hadoop-0.20.2+228-examples.jar \
grep input output 'kernel'
10/04/30 09:22:29 INFO mapred.FileInputFormat: Total input paths to process : 2
10/04/30 09:22:30 INFO mapred.JobClient: Running job: job_201004291628_0010
10/04/30 09:22:31 INFO mapred.JobClient:  map 0% reduce 0%
10/04/30 09:22:42 INFO mapred.JobClient:  map 66% reduce 0%
10/04/30 09:22:45 INFO mapred.JobClient:  map 100% reduce 0%
10/04/30 09:22:54 INFO mapred.JobClient:  map 100% reduce 100%
10/04/30 09:22:56 INFO mapred.JobClient: Job complete: job_201004291628_0010
10/04/30 09:22:56 INFO mapred.JobClient: Counters: 18
10/04/30 09:22:56 INFO mapred.JobClient:   Job Counters 
10/04/30 09:22:56 INFO mapred.JobClient:     Launched reduce tasks=1
10/04/30 09:22:56 INFO mapred.JobClient:     Launched map tasks=3
10/04/30 09:22:56 INFO mapred.JobClient:     Data-local map tasks=3
10/04/30 09:22:56 INFO mapred.JobClient:   FileSystemCounters
10/04/30 09:22:56 INFO mapred.JobClient:     FILE_BYTES_READ=57
10/04/30 09:22:56 INFO mapred.JobClient:     HDFS_BYTES_READ=113144
10/04/30 09:22:56 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=222
10/04/30 09:22:56 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=109
...
10/04/30 09:23:14 INFO mapred.JobClient:     Map output bytes=15
10/04/30 09:23:14 INFO mapred.JobClient:     Map input bytes=23
10/04/30 09:23:14 INFO mapred.JobClient:     Combine input records=0
10/04/30 09:23:14 INFO mapred.JobClient:     Map output records=1
10/04/30 09:23:14 INFO mapred.JobClient:     Reduce input records=1
#

작업이 완료되면 output 디렉토리를 검사하여 결과 파일을 식별한 후 파일 시스템 cat 작업을 수행하여 해당 내용을 본다(Listing 10 참조).


Listing 10. MapReduce 작업의 출력 검사하기
	
# hadoop-0.20 fs -ls output
Found 2 items
drwxr-xr-x  - root supergroup    0 2010-04-30 09:22 /user/root/output/_logs
-rw-r--r--  1 root supergroup   10 2010-04-30 09:23 /user/root/output/part-00000
# hadoop-0.20 fs -cat output/part-00000
17 kernel
# 


웹 기반 인터페이스

지금까지 HDFS를 검사하는 방법을 살펴보았다. 하지만 Hadoop의 작업에 대한 정보를 보는 데는 웹 인터페이스가 유용하다. Hadoop 클러스터의 맨 위에는 HDFS를 관리하는 namenode가 있다. http://localhost:50070을 통해 사용 가능한 공간, 사용한 공간 및 사용 가능한 datanode 등과 같은 상위 레벨 파일 시스템 정보와 실행 중인 작업 등을 탐색할 수 있다. http://localhost:50030을 통해 jobtracker(작업 상태)를 자세히 살펴볼 수 있다. 두 경우 모두 모든 디먼이 동일한 호스트에서 실행 중이므로 localhost를 참조한다.


추가 정보

이 기사에서는 간단한(가상 분산) Hadoop 클러스터의 설치 및 초기 구성을 살펴보았다(Cloudera의 Hadoop 배포판 사용). 이 특정 배포판을 선택한 이유는 Hadoop의 설치 및 초기 구성이 쉽기 때문이다. apache.org에서 다양한 Hadoop 배포판(소스 포함)을 찾을 수 있다. 자세한 정보는 참고자료 섹션을 참조한다.

하지만 하드웨어 자원이 부족하여 자신의 요구에 맞게 Hadoop 클러스터를 확장할 수 없는 경우에는 어떻게 할 것인가? Hadoop은 인지도가 높기 때문에 사전 빌드된 Hadoop VM 및 임대 서버를 사용하는 클라우드 컴퓨팅 인프라 내에서 쉽게 실행할 수 있다. Amazon에서는 Amazon EC2(Amazon Elastic Compute Cloud) 내에서 AMI(Amazon Machine Image)와 컴퓨팅 자원을 제공한다. 또한 Microsoft에서도 최근에 Windows® Azure Services Platform 내에서 Hadoop 지원을 제공하게 될 것이라고 발표했다.

이 기사에서는 Hadoop을 사용하여 대량 데이터세트를 처리하기 위한 분산 컴퓨팅 환경을 매우 쉽게 구성할 수 있다는 것을 살펴보았다. 이 시리즈의 다음 기사에서는 추가 예제와 함께 다중 노드 클러스터에서 Hadoop을 구성하는 방법에 대해 설명한다. 후속 기사에서 만나길 바란다.


참고자료

교육

제품 및 기술 얻기

토론

  • My developerWorks 커뮤니티에 참여하자. 개발자 중심 블로그, 포럼, 그룹 및 Wiki 검색 중에 다른 developerWorks 사용자와 의견을 교환해 보자.

필자소개

M. Tim Jones는 임베디드 펌웨어 아키텍트이자 Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming(현재 2판), AI Application Programming(현재 2판) 및 BSD Sockets Programming from a Multilanguage Perspective의 저자이다. 정지 위성을 위한 커널 개발에서 시작해 임베디드 시스템 아키텍처와 네트워크 프로토콜 개발에 이르기까지 다양한 분야에 대한 공학 지식을 가지고 있다. 콜로라도주 롱몬트 소재의 Emulex Corp.에서 컨설턴트 엔지니어로 활약하고 있다.

잘못된 도움말 신고

부정사용 신고

감사합니다. 이 항목은 운영자가 관심을 표시했습니다.


잘못된 도움말 신고

부정사용 신고

제출실패 신고. 나중에 다시 실행해주세요.


디벨로퍼웍스 로그인


IBM ID가 필요하세요?
IBM ID를 잊으셨습니까?


비밀번호를 잊으셨습니까?
비밀번호 변경

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

화면상에 보여지는 닉네임을 정하세요.

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

3개의 &이나 대쉬를 포함해주시고 31글자내로 제한해주세요.


developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


아티클 순위

의견

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=리눅스
ArticleID=495896
ArticleTitle=Hadoop을 이용한 분산 데이터 처리, Part 1: 시작
publish-date=05182010
author1-email=mtj@mtjones.com
author1-email-cc=

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.