SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Hadoop The Definitive Guide
Ch.9 Setting up a Hadoop Cluster
아꿈사
cecil
13년 9월 9일 월요일
이 장에서는...
1. 하둡 클러스터 설정 방법
- Map Reduce I
-YARN
2. 클라우드 서비스에서 하둡 사용
13년 9월 9일 월요일
클러스터 명세
하둡은 범용 하드웨어에서 구동 되도록 설계 되었음
- 범용이 저급을 의미하는 것은 아님
클러스터는 얼마나 커야 할까?
- 하둡은 클러스터 규모를 쉽게 증가 시킬 수 있음.
- “얼마나 빨리 클러스터가 커질 것인가?”의 질문이 더 합당
저장 용량 관점
13년 9월 9일 월요일
네트워크 위상
네트워크 위상 설정을 통해 하둡의 성능을 높일 수 있음
- 블록 복제본을 배치할 때 네트워크 위치를 사용
- 기본값은 모든 노드를 단일 네트워크에 맵핑
- topology.script.file.name 속성으로 스크립트 위치 지정
Rack awareness
13년 9월 9일 월요일
클러스터 설정 및 설치
1. 자바 설치
- java 1.6 이상 버전 필요
2. 하둡 사용자 생성
- 다른 서비스와 하둡 설치를 분리 시키기 위해 별도 계정 생성
- 편의를 위해 사용자의 홈 디렉토리를 NFS 마운트 드라이브에 설정
3. 하둡 설치
- NFS 드라이브를 홈 디렉토리로 사용할 경우 별도의 위치에 설치
4. ssh 설정
- 제어 스크립트 실행을 위해 ssh 키를 복사
(Management Server -> Slave Server)
13년 9월 9일 월요일
하둡 환경 설정
13년 9월 9일 월요일
MapReduce - I
13년 9월 9일 월요일
하둡 설정 파일
파일명 형식 설명
hadoop-env.sh bash 스크립트 하둡을 구동하는 스크립트에서 사용되는 환경 변수
core-site.xml 하둡 설정 XML
HDFS와 맵 리듀스에 공통적으로 사용되는 IO 설정 같은
하둡 코어를 위한 환경 설정 구성
hdfs-site.xml 하둡 설정 XML
네임노드, 보조 네임노드, 데이터 노드 등과 같은 HDFS 데몬
을 위한 환결 설정 구성
mapred-site.xml 하둡 설정 XML
잡 트래커와 태스크 트래크 같은 맵 리듀스 데몬을 위한 환경
설정
masters 일반 텍스트 보조 네임노드를 구동시킬 컴퓨터의 목록(행당 하나)
slaves 일반 텍스트
데이터 노드와 태스크 트래커를 구동시킬 컴퓨터 목록
(행당 하나)
hadoop-
metric.properties
자바 속성 매트릭스가 하둡에서 어떻게 표시되는지를 제어하는 속성
log4j.properties 자바 속성 시스템 로그 파일을 위한 속성. 네임노드의 감시로그
13년 9월 9일 월요일
환경 설정 파일 관리
하둡은 환경 설정 정보를 위한 단일, 전역 위치는 없다
대신, 클러스터 내의 각 하둡 노드는 고유한 설정 파일을 가짐
이 설정 파일들의 동기화는 관리자의 책임
13년 9월 9일 월요일
한 셋의 설정 파일을 공유할 경우
- 운영적인 측면에서 큰 장점이 있음
- rsync
그룹별로 별도의 설정 파일 사용할 경우
- 하드웨어 스펙에 대해 유연성을 가짐
- 별도의 설정 관리 프로그램 필요
- Ex) Chef, Puppet, cfengine, bcfg2
13년 9월 9일 월요일
하둡 제어 스크립트
기본 설정 파일
- masters: 보조 네임노드를 어디에서 실행할지 결정
- slaves: 데이터 노드 및 태스크 트래커의 실행 위치를 지정
start-dfs.sh
- 스크립트를 실행한 곳은 네임 노드 데몬 시작
- 클러스터 내의 모든 HDFS 데몬을 시작
start-mapred.sh
- 스크립트를 실행한 곳은 잡 트래커 데몬 시작
- 클러스터 내의 모든 맵 리두스 데몬을 시작
hadoop-daemon.sh
- 다른 스크립트에서 하둡 데몬에게 명령을 내리기 위해 사용
- 하둡 데몬을 직접 제어해야할 경우에만 사용
13년 9월 9일 월요일
하둡 개발환경 설정
메모리
- 기본적으로 하둡은 데몬당 1,000MB의 메모리를 할당
- hadoop-env.sh의 HADOOP_HEAPSIZE 의해 결정
맵/리듀스 태스크
- 맵: mapred.tasktracker.map.tasks.maximum
- 리듀스: mapred.task.tracker.reduce.tasks.maximum
- 기본값: 2
태스크 수행시 JVM에 할당되는 메모리
- mapred.child.java.opts
- 기본값: -Xmx200m
13년 9월 9일 월요일
자바
- 자바 라이브러리 위치는 hadoop-env.sh에 정의됨
- 설정하지 않을 경우 default JAVA_HOME이 사용됨
시스템 로그 파일
- hadoop-env.sh HADOOP_LOG_DIR로 설정
- log4j 파일: 대부분의 어플리케이션 로그가 기록됨(.log)
- 표준 출력 / 에러 로그: 적은 양의 로그가 기록됨(.out)
SSH 설정
- 제어 스크립트는 필요에 맞는 여러 옵션 설정이 가능
- hadoop-env.sh의 HADOOP_SSH_OPTS로 설정
13년 9월 9일 월요일
중요한 하둡 데몬 속성
<?xml version="1.0"?> <!-- core-site.xml -->
<configuration>
	 <property>
	 	 <name>fs.default.name</name>
	 	 <value>hdfs://namenode/</value>
	 	 <final>true</final>
	 </property>
</configuration>
HDFS를 구동하기 위한 네임노드 설정
13년 9월 9일 월요일
<?xml version="1.0"?> <!-- hdfs-site.xml -->
<configuration>
	 <property>
	 	 <!-- 에디트 로그, 파일 시스템 이미지 저장 경로 -->
	 	 <name>dfs.name.dir</name>
	 	 <value>/disk1/hdfs/name,/remote/hdfs/name</value>
	 	 <final>true</final>
	 </property>
	 <property>
	 	 <!-- 데이터 노드가 블록을 저장할 디렉토리, 성능을 위해 다수 디렉토리에 라운르로빈 가능 -->
	 	 <name>dfs.data.dir</name>
	 	 <value>/disk1/hdfs/data,/disk2/hdfs/data</value>
	 	 <final>true</final>
	 </property>
	 <property>
	 	 <!-- 보조 네임 노드에서 체크 포인트가 저장되는 디렉토리, 장애 대비용으로 2개 설정 -->
	 	 <name>fs.checkpoint.dir</name>
	 	 <value>/disk1/hdfs/namesecondary,/disk2/hdfs/namesecondary</value>
	 	 <final>true</final>
	 </property>
</configuration>
HDFS의 저장 디렉토리는 별도로 지정하지 않으면 임시 디렉토리에 저장됨
- 속성: hadoop.tmp.dir, 기본값: /tmp/hadoop-{user.name}
- 이 속성을 변경하지 않으면 시스템이 언제든지 임시 디렉토리를 지울 수 있음
13년 9월 9일 월요일
<?xml version="1.0"?> <!-- mapred-site.xml -->
<configuration>
	 <property>
	 	 <!-- 호스트명과 잡 트래커의 RPC 서버가 실행되는 포트 번호를 정의 -->
	 	 <name>mapred.job.tracker</name>
	 	 <value>jobtracker:8021</value>
	 	 <final>true</final>
	 </property>
	 <property>
	 	 <!-- 맵 리듀스가 잡 과정에서 발생하는 중간 데이터를 저장하는 디렉토리-->
	 	 <name>mapred.local.dir</name>
	 	 <value>/disk1/mapred/local,/disk2/mapred/local</value>
	 	 <final>true</final>
	 </property>
	 <property>
	 	 <!-- 잡이 실행될때 공유 파일이 저장되는 디렉토리 fs.default.name 속성값의 상대 경로-->
	 	 <name>mapred.system.dir</name>
	 	 <value>/tmp/hadoop/mapred/system</value>
	 	 <final>true</final>
	 </property>
	 <property>
	 	 <!-- 태스크 트래커에서 동시에 실행할 수 있는 맵 태스크 수 -->
	 	 <name>mapred.tasktracker.map.tasks.maximum</name>
	 	 <value>7</value>
	 	 <final>true</final>
	 </property>
	 <property>
	 	 <!-- 태스크 트래커에서 동시에 실행할 수 있는 리듀스 태스크 수 -->
	 	 <name>mapred.tasktracker.reduce.tasks.maximum</name>
	 	 <value>7</value>
	 	 <final>true</final>
	 </property>
	 <property>
	 	 <!-- 태스크 트래커에서 자식 프로세스를 실행할때 사용하는 JVM 옵션 -->
	 	 <name>mapred.child.java.opts</name>
	 	 <value>-Xmx400m</value>
	 	 <!-- Not marked as final so jobs can include JVM debugging options -->
	 </property>
</configuration>
13년 9월 9일 월요일
하둡 데몬 주소와 포트 번호
속성명 기본값 설명
fs.default.name file:// 네임노드의 RPC 서버 주소와 포트
dfs.datanode.ipc.address 0.0.0.0:50020 데이터 노드의 RPC 서버 주소와 포트
mapred.job.tracker Local 잡 트래커의 RPC 서버 주소와 포트
mapred.task.tracker.report.address 127.0.0.1:0
태스크 트래커의 RPC 서버 주소와 포트.
태스크 트래커와 자식 JVM과 통신하기 위해 사용
mapred.job.tracker.http.address 0.0.0.0:50030 잡 트래커의 HTTP 서버 주소와 포트 번호
mapred.task.tracker.http.address 0.0.0.0:50060 태스크 트래커의 HTTP 서버 주소와 포트 번호
dfs.http.address 0.0.0.0:50070 네임노드의 HTTP 서버 주소와 포트 번호
dfs.datanode.http.address 0.0.0.0:50075 데이터 노드의 HTTP 서버 주소와 포트 번호
dfs.secondary.http.address 0.0.0.0:50090 보조 네임노드의 HTTP 서버 주소와 포트 번호
- 네트워크 주소를 0.0.0.0으로 하면 하둡은 모든 주소를 해당 컴퓨터에 바인딩
- 포트 번호 0은 서버가 사용되지 않는 포트 중 아무거나 선택할 수 있게 함
13년 9월 9일 월요일
기타 하둡 속성
클러스터 멤버
- 향후 노드 추가 및 삭제를 쉽게 하기 위해, 인가된 컴퓨터 리스트를 지정
- dfs.hosts의 mapred.hosts 속성으로 지정
버퍼 크기
- 하둡은 입출력 동작을 위해 4KB 버퍼를 사용
- core-site.xml, io.file.buffer.size 속성을 통해 설정
HDFS 블록 크기
- 기본적인 블록 크기는 64M
- 크기를 증가시켜 네임노드의 메모리 부담을 줄이면서 매퍼가 더 큰 데이터를
처리하도록 설정 가능
- hdfs-site.xml의 dfs.block.size 속성을 통하여 설정
예약된 저장 공간
- 기본적으로 데이터 노드는 지정된 디렉토리의 가용한 모든 공간을 사용함
- dfs.datanode.du.reserved 속성을 이용하여 byte 단위로 크기를 설정
13년 9월 9일 월요일
휴지통
- 삭제된 파일은 trash 디렉토리로 이동
- core-site.xml의 fs.trash.interval 속성을 이용하여 보관 주기 설정 가능
잡 스케쥴러
- 다중 사용자의 맵리듀스 환경에서는 FIFO 이외 다른 스케쥴러 설정 가능
리듀스 느린 시작
- 기본 설정은 잡 내에서 5% 맵 태스크가 완료후 리듀스 태스크를 스케쥴링
- 리듀스 슬롯을 점유하고 있기 때문에 mapred.reduce.slowstart.completed.maps 속성을 통해
큰 값으로 설정
태스크 메모리 제한
- 공유 클러스터에서 일부 태스크로 인해 노드가 다운되어서는 안됨
- 태스크 트래커가 구동 중인 컴퓨터에서 “out of memory” 발생시 장애 발생
- ulimit를 사용한 방법
* 리눅스의 ulimit 명령을 사용하여 메모리 사용 제한
* 하둡의 mapred.child.ulimit 속성으로 제한
- 태스크 메모리 모니터링 사용
* 클러스터에서 태스크에 대한 가상 메모리 제한의 허용 범위를 관리자가 설정
* 사용자는 잡에 대한 최대 메모리 요구량을 잡 설정에서 지정
13년 9월 9일 월요일
사용자 계정 생성
사용자 계정 생성
- hadoop fs -mkdir /user/username
- hadoop fs -chown username:username /user/username
디렉토리 크기 제한
- hadoop dfsadmin -setSpaceQuota 1t /user/username
13년 9월 9일 월요일
MapReduce - II
(YARN)
13년 9월 9일 월요일
MapReduce I과의 차이
리소스 매니저와 노드 매니저가 실행됨
실행 스크립트: start-yarn.sh
- 현재 실행되고 있는 장비에서 리소스 매니저를 실행
- slaves 파일에 나열된 장비에서 노드 매니저를 실행
추가 제공 기능
- 잡 히스토리 서버: 과거 수행했던 잡에 대한 정보 제공
- 웹 앱 프록시 서버: 얀 사용을 위한 UI를 제공
13년 9월 9일 월요일
얀 데몬 설정 파일
<!-- mapred-site.xml -->
<?xml version="1.0"?>
<configuration>
	 <property>
	 	 <name>mapred.child.java.opts</name>
	 	 <value>-Xmx400m</value>
	 	 <!-- Not marked as final so jobs can include JVM debugging options -->
	 </property>
</configuration>
<!-- yarn-site.xml -->
<?xml version="1.0"?>
<configuration>
	 <property> <!-- 리소스 관리자 주소를 지정 -->
	 	 <name>yarn.resourcemanager.address</name>
	 	 <value>resourcemanager:8040</value>
	 </property>
	 <property> <!-- 임시 데이터를 저장할 로컬 디렉토리 -->
	 	 <name>yarn.nodemanager.local-dirs</name>
	 	 <value>/disk1/nm-local-dir,/disk2/nm-local-dir</value>
	 	 <final>true</final>
	 </property>
	 <property> <!-- 태스크 트래커를 대신할 셔플 핸들러 설정 -->
	 	 <name>yarn.nodemanager.aux-services</name>
	 	 <value>mapreduce.shuffle</value>
	 </property>
	 <property> <!-- 노드 관리자가 수행할 컨테이너에 할당되는 메모리량 -->
	 	 <name>yarn.nodemanager.resource.memory-mb</name>
	 	 <value>8192</value>
	 </property>
</configuration>
13년 9월 9일 월요일
얀의 메모리 설정
특정 노드에서 동작하는 태스크의 수는 필요한 메모리의 양의 총합에 의해 결정
맵과 리듀스 두가지 슬롯을 구분하지 않고 처리
- MapReduce I에서는 맵/리듀스 태스크가 각각의 슬롯으로 고정됨
노드 관리자의 컨테이너 전용 메모리 설정
- 기본값 8192MB (yarn.nodemanager.resource.memory-mb)
개별 잡을 위한 메모리 설정
- mapred.child.java.opts로 맵/리듀스 태스크의 JVM 힙 사이즈를 결정
- mapred.*.memory.mb 로 태스크에 필요한 메모리 사이즈 지정
- ex) mapred.child.java.opts = 800M, mapreduce.map.memory.mb = 1,024M
노드 관리자는 태스크에 1,024M를 할당.
JVM 생성시 최대 힙 크기 800M 할당
만약, Heap + 스트리밍/파이프에 사용된 메모리 + Permgen 등 1024를 넘을 경우 노드 매니저에 의해
종료되고, 실패 처리 됨.
13년 9월 9일 월요일
얀 데몬 주소와 포트
속성명 기본값 설명
yarn.resourcemanager.address 0.0.0.0:8032 리소스 관리자의 RPC 서버 주소와 포트
yarn.resourcemanager.admin.address 0.0.0.0:8033 리소스 관리자의 admin RPC 서버 주소와 포트
yarn.resourcemanager.scheduler.address 0.0.0.0:8030 리소스 관리자 스케쥴러의 RPC 서버 주소와 포트
yarn.resourcemanager.resoucetracker.address 0.0.0.0:8031 리소스 관리자 리소스 트래커의 RPC 서버 주소와 포트
yarn.nodemanager.address 0.0.0.0:0 노드 관리자의 RPC 서버 주소와 포트
yarn.nodemanager.localizer.address 0.0.0.0:8040 노드 관리자의 로컬라이저의 RPC 서버 주소와 포트
mapreduce.jobhistory.address 0.0.0.0:10020 잡 히스토리 서버의 RPC 서버 주소와 포트
yarn.resoucemanager.webapp.address 0.0.0.0:8088 리소스 매니저의 HTTP 서버 주소와 포트
yarn.nodemanager.webapp.address 0.0.0.0:8042 노드 관리자의 HTTP 서버 주소와 포트
yarn.web-proxy.address 웹 앱 프록시 서버의 HTTP 서버 주소와 포트
mapreduce.jobhistory.webapp.address 0.0.0.0:19888 잡 히스토리 서버의 HTTP 서버 주소와 포트
mapreduce.shuffle.port 8088 셔플 핸들러의 HTTP 포트
13년 9월 9일 월요일
기타 하둡 설정
13년 9월 9일 월요일
하둡 보안
하둡 초기 버전의 보안에 대한 가정
- 공동 사용자가 맵 리듀스 클러스터를 안전한 환경에서 사용
- 불의의 사고로 인한 데이터 유실을 막기 위한 용도로 설계
커버로스 인증 지원
- 하둡이 사용자 인증을 위한 자격 증명을 직접하지 않아도 되도록 디자인
- 아파치 하둡 릴리즈 0.20.20x 시리즈에 처음 추가 됨
HDFS의 읽기 동작은 여러번의 네임노드 호출과
하나 이상의 데이터 노드를 호출
- 각 호출 마다 인증하는 대신 위임 토큰 사용
13년 9월 9일 월요일
하둡 클라우드
아마존 EC2의 하둡
- 아파치 윌 프로젝트(http://whirr.apache.org)
: 하둡을 EC2나 다른 클라우드 서비스에서 구동하기 쉽도록 해주는 자바 API와
스크립트를 제공
13년 9월 9일 월요일
References
1. Tom White (2013). 하둡 완벽가이드. (심탁
길, 김현우, 옮김). 서울: 한빛미디어. (원서출판
2012)
13년 9월 9일 월요일

Contenu connexe

Tendances

하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표Sinhyub Kim
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다민철 정민철
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Matthew (정재화)
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기beom kyun choi
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대DaeHeon Oh
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기beom kyun choi
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoopMinJae Kang
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종민철 정민철
 
알고 쓰자! HBase | Devon 2012
알고 쓰자!  HBase | Devon 2012알고 쓰자!  HBase | Devon 2012
알고 쓰자! HBase | Devon 2012Daum DNA
 
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법HyeonSeok Choi
 

Tendances (20)

하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
Hive begins
Hive beginsHive begins
Hive begins
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)
 
HDFS Overview
HDFS OverviewHDFS Overview
HDFS Overview
 
하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다하둡 좋은약이지만 만병통치약은 아니다
하둡 좋은약이지만 만병통치약은 아니다
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
 
Apache sqoop
Apache sqoopApache sqoop
Apache sqoop
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
Hdfs
HdfsHdfs
Hdfs
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
hadoop ch1
hadoop ch1hadoop ch1
hadoop ch1
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoop
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종
 
알고 쓰자! HBase | Devon 2012
알고 쓰자!  HBase | Devon 2012알고 쓰자!  HBase | Devon 2012
알고 쓰자! HBase | Devon 2012
 
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법하둡완벽가이드 Ch6. 맵리듀스 작동 방법
하둡완벽가이드 Ch6. 맵리듀스 작동 방법
 

En vedette

Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaHyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6HyeonSeok Choi
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HyeonSeok Choi
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8HyeonSeok Choi
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장HyeonSeok Choi
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HyeonSeok Choi
 
Elastic search 클러스터관리
Elastic search 클러스터관리Elastic search 클러스터관리
Elastic search 클러스터관리HyeonSeok Choi
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성HyeonSeok Choi
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1HyeonSeok Choi
 
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HyeonSeok Choi
 
HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HyeonSeok Choi
 

En vedette (20)

Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
 
March 2011 HUG: HDFS Federation
March 2011 HUG: HDFS FederationMarch 2011 HUG: HDFS Federation
March 2011 HUG: HDFS Federation
 
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7
 
HTTPS
HTTPSHTTPS
HTTPS
 
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6
 
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장HTTP 완벽가이드 16장
HTTP 완벽가이드 16장
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
 
Elastic search 클러스터관리
Elastic search 클러스터관리Elastic search 클러스터관리
Elastic search 클러스터관리
 
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성
 
Bounded Context
Bounded ContextBounded Context
Bounded Context
 
DDD Start Ch#3
DDD Start Ch#3DDD Start Ch#3
DDD Start Ch#3
 
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1
 
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.
 
HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.HTTP 완벽가이드 1장.
HTTP 완벽가이드 1장.
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
Erlang
ErlangErlang
Erlang
 
Pair RDD - Spark
Pair RDD - SparkPair RDD - Spark
Pair RDD - Spark
 

Similaire à 하둡완벽가이드 Ch9

docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-uploadDong-Hwa jung
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014Gruter
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Keon Ahn
 
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치Aiden Seonghak Hong
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링BOAZ Bigdata
 
하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정NoahKIM36
 
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...Amazon Web Services Korea
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
Glusterfs 구성제안 및_운영가이드_v2.0
Glusterfs 구성제안 및_운영가이드_v2.0Glusterfs 구성제안 및_운영가이드_v2.0
Glusterfs 구성제안 및_운영가이드_v2.0sprdd
 
Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0sprdd
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdfSungkyun Kim
 
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfOS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfHo Jeong Im
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 

Similaire à 하둡완벽가이드 Ch9 (20)

docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리
 
Start spark
Start sparkStart spark
Start spark
 
테스트
테스트테스트
테스트
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [하둡메이트 팀] : 하둡 설정 고도화 및 맵리듀스 모니터링
 
하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정하둡 고가용성(HA) 설정
하둡 고가용성(HA) 설정
 
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
Glusterfs 구성제안 및_운영가이드_v2.0
Glusterfs 구성제안 및_운영가이드_v2.0Glusterfs 구성제안 및_운영가이드_v2.0
Glusterfs 구성제안 및_운영가이드_v2.0
 
Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0Glusterfs 파일시스템 구성_및 운영가이드_v2.0
Glusterfs 파일시스템 구성_및 운영가이드_v2.0
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
 
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdfOS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
OS Process, Thread, CPU Scheduling에 대해 알아봅시다.pdf
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
Apache Spark
Apache SparkApache Spark
Apache Spark
 

Plus de HyeonSeok Choi

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2HyeonSeok Choi
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2HyeonSeok Choi
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04HyeonSeok Choi
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04HyeonSeok Choi
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05HyeonSeok Choi
 
데이터 과학 입문 13장
데이터 과학 입문 13장데이터 과학 입문 13장
데이터 과학 입문 13장HyeonSeok Choi
 
데이터 과학 입문 5장
데이터 과학 입문 5장데이터 과학 입문 5장
데이터 과학 입문 5장HyeonSeok Choi
 

Plus de HyeonSeok Choi (11)

밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
 
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2
 
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04
 
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04
 
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
 
Learning spark ch1-2
Learning spark ch1-2Learning spark ch1-2
Learning spark ch1-2
 
Elastic search 검색
Elastic search 검색Elastic search 검색
Elastic search 검색
 
데이터 과학 입문 13장
데이터 과학 입문 13장데이터 과학 입문 13장
데이터 과학 입문 13장
 
데이터 과학 입문 5장
데이터 과학 입문 5장데이터 과학 입문 5장
데이터 과학 입문 5장
 

하둡완벽가이드 Ch9

  • 1. Hadoop The Definitive Guide Ch.9 Setting up a Hadoop Cluster 아꿈사 cecil 13년 9월 9일 월요일
  • 2. 이 장에서는... 1. 하둡 클러스터 설정 방법 - Map Reduce I -YARN 2. 클라우드 서비스에서 하둡 사용 13년 9월 9일 월요일
  • 3. 클러스터 명세 하둡은 범용 하드웨어에서 구동 되도록 설계 되었음 - 범용이 저급을 의미하는 것은 아님 클러스터는 얼마나 커야 할까? - 하둡은 클러스터 규모를 쉽게 증가 시킬 수 있음. - “얼마나 빨리 클러스터가 커질 것인가?”의 질문이 더 합당 저장 용량 관점 13년 9월 9일 월요일
  • 4. 네트워크 위상 네트워크 위상 설정을 통해 하둡의 성능을 높일 수 있음 - 블록 복제본을 배치할 때 네트워크 위치를 사용 - 기본값은 모든 노드를 단일 네트워크에 맵핑 - topology.script.file.name 속성으로 스크립트 위치 지정 Rack awareness 13년 9월 9일 월요일
  • 5. 클러스터 설정 및 설치 1. 자바 설치 - java 1.6 이상 버전 필요 2. 하둡 사용자 생성 - 다른 서비스와 하둡 설치를 분리 시키기 위해 별도 계정 생성 - 편의를 위해 사용자의 홈 디렉토리를 NFS 마운트 드라이브에 설정 3. 하둡 설치 - NFS 드라이브를 홈 디렉토리로 사용할 경우 별도의 위치에 설치 4. ssh 설정 - 제어 스크립트 실행을 위해 ssh 키를 복사 (Management Server -> Slave Server) 13년 9월 9일 월요일
  • 6. 하둡 환경 설정 13년 9월 9일 월요일
  • 7. MapReduce - I 13년 9월 9일 월요일
  • 8. 하둡 설정 파일 파일명 형식 설명 hadoop-env.sh bash 스크립트 하둡을 구동하는 스크립트에서 사용되는 환경 변수 core-site.xml 하둡 설정 XML HDFS와 맵 리듀스에 공통적으로 사용되는 IO 설정 같은 하둡 코어를 위한 환경 설정 구성 hdfs-site.xml 하둡 설정 XML 네임노드, 보조 네임노드, 데이터 노드 등과 같은 HDFS 데몬 을 위한 환결 설정 구성 mapred-site.xml 하둡 설정 XML 잡 트래커와 태스크 트래크 같은 맵 리듀스 데몬을 위한 환경 설정 masters 일반 텍스트 보조 네임노드를 구동시킬 컴퓨터의 목록(행당 하나) slaves 일반 텍스트 데이터 노드와 태스크 트래커를 구동시킬 컴퓨터 목록 (행당 하나) hadoop- metric.properties 자바 속성 매트릭스가 하둡에서 어떻게 표시되는지를 제어하는 속성 log4j.properties 자바 속성 시스템 로그 파일을 위한 속성. 네임노드의 감시로그 13년 9월 9일 월요일
  • 9. 환경 설정 파일 관리 하둡은 환경 설정 정보를 위한 단일, 전역 위치는 없다 대신, 클러스터 내의 각 하둡 노드는 고유한 설정 파일을 가짐 이 설정 파일들의 동기화는 관리자의 책임 13년 9월 9일 월요일
  • 10. 한 셋의 설정 파일을 공유할 경우 - 운영적인 측면에서 큰 장점이 있음 - rsync 그룹별로 별도의 설정 파일 사용할 경우 - 하드웨어 스펙에 대해 유연성을 가짐 - 별도의 설정 관리 프로그램 필요 - Ex) Chef, Puppet, cfengine, bcfg2 13년 9월 9일 월요일
  • 11. 하둡 제어 스크립트 기본 설정 파일 - masters: 보조 네임노드를 어디에서 실행할지 결정 - slaves: 데이터 노드 및 태스크 트래커의 실행 위치를 지정 start-dfs.sh - 스크립트를 실행한 곳은 네임 노드 데몬 시작 - 클러스터 내의 모든 HDFS 데몬을 시작 start-mapred.sh - 스크립트를 실행한 곳은 잡 트래커 데몬 시작 - 클러스터 내의 모든 맵 리두스 데몬을 시작 hadoop-daemon.sh - 다른 스크립트에서 하둡 데몬에게 명령을 내리기 위해 사용 - 하둡 데몬을 직접 제어해야할 경우에만 사용 13년 9월 9일 월요일
  • 12. 하둡 개발환경 설정 메모리 - 기본적으로 하둡은 데몬당 1,000MB의 메모리를 할당 - hadoop-env.sh의 HADOOP_HEAPSIZE 의해 결정 맵/리듀스 태스크 - 맵: mapred.tasktracker.map.tasks.maximum - 리듀스: mapred.task.tracker.reduce.tasks.maximum - 기본값: 2 태스크 수행시 JVM에 할당되는 메모리 - mapred.child.java.opts - 기본값: -Xmx200m 13년 9월 9일 월요일
  • 13. 자바 - 자바 라이브러리 위치는 hadoop-env.sh에 정의됨 - 설정하지 않을 경우 default JAVA_HOME이 사용됨 시스템 로그 파일 - hadoop-env.sh HADOOP_LOG_DIR로 설정 - log4j 파일: 대부분의 어플리케이션 로그가 기록됨(.log) - 표준 출력 / 에러 로그: 적은 양의 로그가 기록됨(.out) SSH 설정 - 제어 스크립트는 필요에 맞는 여러 옵션 설정이 가능 - hadoop-env.sh의 HADOOP_SSH_OPTS로 설정 13년 9월 9일 월요일
  • 14. 중요한 하둡 데몬 속성 <?xml version="1.0"?> <!-- core-site.xml --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://namenode/</value> <final>true</final> </property> </configuration> HDFS를 구동하기 위한 네임노드 설정 13년 9월 9일 월요일
  • 15. <?xml version="1.0"?> <!-- hdfs-site.xml --> <configuration> <property> <!-- 에디트 로그, 파일 시스템 이미지 저장 경로 --> <name>dfs.name.dir</name> <value>/disk1/hdfs/name,/remote/hdfs/name</value> <final>true</final> </property> <property> <!-- 데이터 노드가 블록을 저장할 디렉토리, 성능을 위해 다수 디렉토리에 라운르로빈 가능 --> <name>dfs.data.dir</name> <value>/disk1/hdfs/data,/disk2/hdfs/data</value> <final>true</final> </property> <property> <!-- 보조 네임 노드에서 체크 포인트가 저장되는 디렉토리, 장애 대비용으로 2개 설정 --> <name>fs.checkpoint.dir</name> <value>/disk1/hdfs/namesecondary,/disk2/hdfs/namesecondary</value> <final>true</final> </property> </configuration> HDFS의 저장 디렉토리는 별도로 지정하지 않으면 임시 디렉토리에 저장됨 - 속성: hadoop.tmp.dir, 기본값: /tmp/hadoop-{user.name} - 이 속성을 변경하지 않으면 시스템이 언제든지 임시 디렉토리를 지울 수 있음 13년 9월 9일 월요일
  • 16. <?xml version="1.0"?> <!-- mapred-site.xml --> <configuration> <property> <!-- 호스트명과 잡 트래커의 RPC 서버가 실행되는 포트 번호를 정의 --> <name>mapred.job.tracker</name> <value>jobtracker:8021</value> <final>true</final> </property> <property> <!-- 맵 리듀스가 잡 과정에서 발생하는 중간 데이터를 저장하는 디렉토리--> <name>mapred.local.dir</name> <value>/disk1/mapred/local,/disk2/mapred/local</value> <final>true</final> </property> <property> <!-- 잡이 실행될때 공유 파일이 저장되는 디렉토리 fs.default.name 속성값의 상대 경로--> <name>mapred.system.dir</name> <value>/tmp/hadoop/mapred/system</value> <final>true</final> </property> <property> <!-- 태스크 트래커에서 동시에 실행할 수 있는 맵 태스크 수 --> <name>mapred.tasktracker.map.tasks.maximum</name> <value>7</value> <final>true</final> </property> <property> <!-- 태스크 트래커에서 동시에 실행할 수 있는 리듀스 태스크 수 --> <name>mapred.tasktracker.reduce.tasks.maximum</name> <value>7</value> <final>true</final> </property> <property> <!-- 태스크 트래커에서 자식 프로세스를 실행할때 사용하는 JVM 옵션 --> <name>mapred.child.java.opts</name> <value>-Xmx400m</value> <!-- Not marked as final so jobs can include JVM debugging options --> </property> </configuration> 13년 9월 9일 월요일
  • 17. 하둡 데몬 주소와 포트 번호 속성명 기본값 설명 fs.default.name file:// 네임노드의 RPC 서버 주소와 포트 dfs.datanode.ipc.address 0.0.0.0:50020 데이터 노드의 RPC 서버 주소와 포트 mapred.job.tracker Local 잡 트래커의 RPC 서버 주소와 포트 mapred.task.tracker.report.address 127.0.0.1:0 태스크 트래커의 RPC 서버 주소와 포트. 태스크 트래커와 자식 JVM과 통신하기 위해 사용 mapred.job.tracker.http.address 0.0.0.0:50030 잡 트래커의 HTTP 서버 주소와 포트 번호 mapred.task.tracker.http.address 0.0.0.0:50060 태스크 트래커의 HTTP 서버 주소와 포트 번호 dfs.http.address 0.0.0.0:50070 네임노드의 HTTP 서버 주소와 포트 번호 dfs.datanode.http.address 0.0.0.0:50075 데이터 노드의 HTTP 서버 주소와 포트 번호 dfs.secondary.http.address 0.0.0.0:50090 보조 네임노드의 HTTP 서버 주소와 포트 번호 - 네트워크 주소를 0.0.0.0으로 하면 하둡은 모든 주소를 해당 컴퓨터에 바인딩 - 포트 번호 0은 서버가 사용되지 않는 포트 중 아무거나 선택할 수 있게 함 13년 9월 9일 월요일
  • 18. 기타 하둡 속성 클러스터 멤버 - 향후 노드 추가 및 삭제를 쉽게 하기 위해, 인가된 컴퓨터 리스트를 지정 - dfs.hosts의 mapred.hosts 속성으로 지정 버퍼 크기 - 하둡은 입출력 동작을 위해 4KB 버퍼를 사용 - core-site.xml, io.file.buffer.size 속성을 통해 설정 HDFS 블록 크기 - 기본적인 블록 크기는 64M - 크기를 증가시켜 네임노드의 메모리 부담을 줄이면서 매퍼가 더 큰 데이터를 처리하도록 설정 가능 - hdfs-site.xml의 dfs.block.size 속성을 통하여 설정 예약된 저장 공간 - 기본적으로 데이터 노드는 지정된 디렉토리의 가용한 모든 공간을 사용함 - dfs.datanode.du.reserved 속성을 이용하여 byte 단위로 크기를 설정 13년 9월 9일 월요일
  • 19. 휴지통 - 삭제된 파일은 trash 디렉토리로 이동 - core-site.xml의 fs.trash.interval 속성을 이용하여 보관 주기 설정 가능 잡 스케쥴러 - 다중 사용자의 맵리듀스 환경에서는 FIFO 이외 다른 스케쥴러 설정 가능 리듀스 느린 시작 - 기본 설정은 잡 내에서 5% 맵 태스크가 완료후 리듀스 태스크를 스케쥴링 - 리듀스 슬롯을 점유하고 있기 때문에 mapred.reduce.slowstart.completed.maps 속성을 통해 큰 값으로 설정 태스크 메모리 제한 - 공유 클러스터에서 일부 태스크로 인해 노드가 다운되어서는 안됨 - 태스크 트래커가 구동 중인 컴퓨터에서 “out of memory” 발생시 장애 발생 - ulimit를 사용한 방법 * 리눅스의 ulimit 명령을 사용하여 메모리 사용 제한 * 하둡의 mapred.child.ulimit 속성으로 제한 - 태스크 메모리 모니터링 사용 * 클러스터에서 태스크에 대한 가상 메모리 제한의 허용 범위를 관리자가 설정 * 사용자는 잡에 대한 최대 메모리 요구량을 잡 설정에서 지정 13년 9월 9일 월요일
  • 20. 사용자 계정 생성 사용자 계정 생성 - hadoop fs -mkdir /user/username - hadoop fs -chown username:username /user/username 디렉토리 크기 제한 - hadoop dfsadmin -setSpaceQuota 1t /user/username 13년 9월 9일 월요일
  • 21. MapReduce - II (YARN) 13년 9월 9일 월요일
  • 22. MapReduce I과의 차이 리소스 매니저와 노드 매니저가 실행됨 실행 스크립트: start-yarn.sh - 현재 실행되고 있는 장비에서 리소스 매니저를 실행 - slaves 파일에 나열된 장비에서 노드 매니저를 실행 추가 제공 기능 - 잡 히스토리 서버: 과거 수행했던 잡에 대한 정보 제공 - 웹 앱 프록시 서버: 얀 사용을 위한 UI를 제공 13년 9월 9일 월요일
  • 23. 얀 데몬 설정 파일 <!-- mapred-site.xml --> <?xml version="1.0"?> <configuration> <property> <name>mapred.child.java.opts</name> <value>-Xmx400m</value> <!-- Not marked as final so jobs can include JVM debugging options --> </property> </configuration> <!-- yarn-site.xml --> <?xml version="1.0"?> <configuration> <property> <!-- 리소스 관리자 주소를 지정 --> <name>yarn.resourcemanager.address</name> <value>resourcemanager:8040</value> </property> <property> <!-- 임시 데이터를 저장할 로컬 디렉토리 --> <name>yarn.nodemanager.local-dirs</name> <value>/disk1/nm-local-dir,/disk2/nm-local-dir</value> <final>true</final> </property> <property> <!-- 태스크 트래커를 대신할 셔플 핸들러 설정 --> <name>yarn.nodemanager.aux-services</name> <value>mapreduce.shuffle</value> </property> <property> <!-- 노드 관리자가 수행할 컨테이너에 할당되는 메모리량 --> <name>yarn.nodemanager.resource.memory-mb</name> <value>8192</value> </property> </configuration> 13년 9월 9일 월요일
  • 24. 얀의 메모리 설정 특정 노드에서 동작하는 태스크의 수는 필요한 메모리의 양의 총합에 의해 결정 맵과 리듀스 두가지 슬롯을 구분하지 않고 처리 - MapReduce I에서는 맵/리듀스 태스크가 각각의 슬롯으로 고정됨 노드 관리자의 컨테이너 전용 메모리 설정 - 기본값 8192MB (yarn.nodemanager.resource.memory-mb) 개별 잡을 위한 메모리 설정 - mapred.child.java.opts로 맵/리듀스 태스크의 JVM 힙 사이즈를 결정 - mapred.*.memory.mb 로 태스크에 필요한 메모리 사이즈 지정 - ex) mapred.child.java.opts = 800M, mapreduce.map.memory.mb = 1,024M 노드 관리자는 태스크에 1,024M를 할당. JVM 생성시 최대 힙 크기 800M 할당 만약, Heap + 스트리밍/파이프에 사용된 메모리 + Permgen 등 1024를 넘을 경우 노드 매니저에 의해 종료되고, 실패 처리 됨. 13년 9월 9일 월요일
  • 25. 얀 데몬 주소와 포트 속성명 기본값 설명 yarn.resourcemanager.address 0.0.0.0:8032 리소스 관리자의 RPC 서버 주소와 포트 yarn.resourcemanager.admin.address 0.0.0.0:8033 리소스 관리자의 admin RPC 서버 주소와 포트 yarn.resourcemanager.scheduler.address 0.0.0.0:8030 리소스 관리자 스케쥴러의 RPC 서버 주소와 포트 yarn.resourcemanager.resoucetracker.address 0.0.0.0:8031 리소스 관리자 리소스 트래커의 RPC 서버 주소와 포트 yarn.nodemanager.address 0.0.0.0:0 노드 관리자의 RPC 서버 주소와 포트 yarn.nodemanager.localizer.address 0.0.0.0:8040 노드 관리자의 로컬라이저의 RPC 서버 주소와 포트 mapreduce.jobhistory.address 0.0.0.0:10020 잡 히스토리 서버의 RPC 서버 주소와 포트 yarn.resoucemanager.webapp.address 0.0.0.0:8088 리소스 매니저의 HTTP 서버 주소와 포트 yarn.nodemanager.webapp.address 0.0.0.0:8042 노드 관리자의 HTTP 서버 주소와 포트 yarn.web-proxy.address 웹 앱 프록시 서버의 HTTP 서버 주소와 포트 mapreduce.jobhistory.webapp.address 0.0.0.0:19888 잡 히스토리 서버의 HTTP 서버 주소와 포트 mapreduce.shuffle.port 8088 셔플 핸들러의 HTTP 포트 13년 9월 9일 월요일
  • 26. 기타 하둡 설정 13년 9월 9일 월요일
  • 27. 하둡 보안 하둡 초기 버전의 보안에 대한 가정 - 공동 사용자가 맵 리듀스 클러스터를 안전한 환경에서 사용 - 불의의 사고로 인한 데이터 유실을 막기 위한 용도로 설계 커버로스 인증 지원 - 하둡이 사용자 인증을 위한 자격 증명을 직접하지 않아도 되도록 디자인 - 아파치 하둡 릴리즈 0.20.20x 시리즈에 처음 추가 됨 HDFS의 읽기 동작은 여러번의 네임노드 호출과 하나 이상의 데이터 노드를 호출 - 각 호출 마다 인증하는 대신 위임 토큰 사용 13년 9월 9일 월요일
  • 28. 하둡 클라우드 아마존 EC2의 하둡 - 아파치 윌 프로젝트(http://whirr.apache.org) : 하둡을 EC2나 다른 클라우드 서비스에서 구동하기 쉽도록 해주는 자바 API와 스크립트를 제공 13년 9월 9일 월요일
  • 29. References 1. Tom White (2013). 하둡 완벽가이드. (심탁 길, 김현우, 옮김). 서울: 한빛미디어. (원서출판 2012) 13년 9월 9일 월요일