58
2013.09.16 Ryan Ahn HADOOP ADMINISTRATION

Hadoop administration

Embed Size (px)

DESCRIPTION

Hadoop Administration

Citation preview

Page 1: Hadoop administration

2013.09.16Ryan Ahn

HADOOP ADMINISTRATION

Page 2: Hadoop administration

2 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop 2.0; Glance at YARN

CONTENTS

Page 3: Hadoop administration

3 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 4: Hadoop administration

4 04/09/2023

• 누구나 Mobile device• Facebook, Twitter 등의 서비스 포탈

> 100 억장의 사진 수 PB 스토리지• 이동통신

> 시간당 250 GB 이상> 하루 6TB> 1 년 , 5 년 , 10 년 ?

• IT 서비스 융합> Mobile + Biz( 금융 , 쇼핑 등 )

Data paradigm shift

10244

10245

10248

10246

10247

Page 5: Hadoop administration

5 04/09/2023

• Change Chance

Big Data = Big Chance

2011 년 2012 년 2013 년

1 클라우드 컴퓨팅 미디어 태블릿 이후 모바일 기기 대전

2 모바일 앱과 미디어 태블릿모바일 중심 애플리케이션과 인터페이스

모바일 앱과 HTML5

3 소셜 커뮤니케이션 및 협업상황인식과 소셜이 결합된 사용자 경험

퍼스널 클라우드

4 비디오 M2M IoT

5 차세대 분석 앱스토어와 마켓 플레이스하이브리드 IT 와 클라우드 컴퓨팅

6 소셜 분석 차세대 분석 전략적 빅데이터

7 상황인식 컴퓨팅 빅데이터 실행 가능한 분석

8 스토리지급 메모리 인메모리 컴퓨팅 인메모리 컴퓨팅

9 유비쿼터스 컴퓨팅 저전력 서버 통합 에코시스템

10 패브릭 기반 컴퓨팅 클라우드 컴퓨팅 엔터프라이즈 앱스토어

Data 관리- 생산- 관리- 활용

Page 6: Hadoop administration

6 04/09/2023

Value

Velocity

Volume Variety

Complexity

Big Data Goal: 4V + 1C

Page 7: Hadoop administration

7 04/09/2023

• 데이터를 수집하고 처리하는데 많은 시간과 비용이 듬> 인프라의 구조 , 데이터 센터 수용 가능성> 기존 인프라는 독립적 시스템 , 애플리케이션 개발 , 유지보수> 플랫폼이 필요

• 데이터를 저장할 수 있는 값싼 (?) 구조> HDFS

• 데이터를 처리를 위한 Bundling Framework> Map + Reduce

• Logic on Data> Data Locality 보장

• I/O 집중적이면서 CPU 연산> 파일처리 사고 , 멀티노드 부하분산 사상

• 하드웨어 추가시 성능 Linear> 결국 , DB 보다 체감속도 존재 함

Why Hadoop

Page 8: Hadoop administration

8 04/09/2023

Hadoop Architecture

Page 9: Hadoop administration

9 04/09/2023

Hadoop & Eco-system

Page 10: Hadoop administration

10 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 11: Hadoop administration

11 04/09/2023

• POSIX 요구사항 일부를 만족• 다수의 독립 머신으로 시스템으로 성능과 비용을 모두 만족• 수백만 개의 수십 기가바이트 크기의 파일을 저장 가능

> 수십 PB 이상도 가능• Scale out 모델

> 대용량 스토리지 구성을 위해 RAID 대신 JBOD 를 지원> 애플리케이선 수준의 데이터 복제로 가용성 확보와 높은 성능 유지

• 큰 파일의 스트리밍 읽기와 쓰기에 더 최적화> 하둡은 다수의 작은 파일에 대한 매우 느린 응답> 배치 실행이 응답 속도보다 더 중요

• Fault Tolerance> 머신과 디스크 등의 컴포넌트 실패에 대처

• 맵리듀스 Framework 연계 가능해야 함

HDFS Goal and Motivation

Page 12: Hadoop administration

12 04/09/2023

• User Level File System> 커널 외부에서 Application 이 수행 됨 , System Mount 불필요> FUSE 사용 시에는 ?

• Distributed File System• Disk Block Size

> Default Size 64M> 128MB, 256MB, 1GB 늘릴 수 있음 (Trade-off)> 왜 블록 사이즈를 느릴까 ? 드라이브 탐색 조작 최소화 I/O 성능 향상

• Data Protection> 여러 머신에 데이터 블록 복제> 데이터는 한 번 쓰게 되면 수정 불가능> 데이터 READ 시에는 복제 중 하나만 읽음

– 네트워크 상 가장 가까운 머신의 레플리카에서 데이터를 가져오게 됨

HDFS Design

Page 13: Hadoop administration

13 04/09/2023

• 네임노드 (NameNode)> 파일시스템 메타데이터 전부 메모리에 저장> 1 백만 블록의 메타데이터를 저장하기 위해 1GB 의 Heap 필요

• 보조 네임노드 (Secondary NameNode)> 백업은 용도는 아님> 네임노드 이미지를 관리 , 일종의 Check Pointer Server

HDFS Daemon

Daemon 클러스터당 개수 용도

네임노드 1 파일시스템의 메타데이터 저장 , 파일시스템의 글로벌 이미지 제공

보조 네임노드 1 네임노드 트랜잭션 로그의 체크포인트 작업수행

데이터노드 다수 블록 데이터 저장 ( 파일내용 )

Page 14: Hadoop administration

14 04/09/2023

HDFS 동작방식 (Read)

Name Node

Secondly Name Node

Data Node Data Node Data Node Data Node Data Node

rack1 rack2

HDFS

Application

Hadoop Client

1. 파일경로 : /foo/bar/test.txt 요청 2. 블록 1, 호스트… 응답

Host1 Host2 Host3

3. 블록 1 읽기 요청4. 데이터 응답

Page 15: Hadoop administration

15 04/09/2023

HDFS 동작방식 (Write)

Name Node

Secondly Name Node

Data Node Data Node Data Node Data Node Data Node

rack1 rack2

HDFS

Application

Hadoop Client

1. 파일 생성을 위한 파일경로 생성 요청 - 파일경로 : /foo/bar - 복제본수 : 3

Memory2.1 파일 경로 정보 생성 ( 메모리에 생성 )2.2 락 생성 ( 다른 클라이언트가 생성하지 못하게 )

Host1 Host2

3.1 파일 데이터를 저장할 데이터 노드 선택 후 호스트 정보 반환 (Host1, Host2, Host3)

4. 파일 데이터 및 데이터 노드 목록 전송

Host3

5.1 로컬저장 5.2 복제본 저장 5.3 복제본 저장

edits

5.4 저장완료 (close() 명령 )

6. 메모리의 내용을 edits 파일에 기록 ( 네임스페이스 등록 )

정해진 블록크기를 넘어서면 클라이언트는 네임 노드로 새로운 데이터 노드 요청

fsimage주기적으로 다운로드 후edits 와 fsimage 병합

fsimage 파일을Name Node 로 전송

Page 16: Hadoop administration

16 04/09/2023

HDFS 동작방식 ( 메타데이터 )

Name NodeSecondly

Name Node

1. edit 파일 회전 ( 보관 , edits.new 생성 )

2. fsimage 와 edits 파일 복사

4. 새로운 fsimage 파일 전송

Disk

3. 두 파일을 읽어서 edits 를 반영 ,새로운 fsimage 파일 생성5. edits.new 파일명을 edits 로 변경

Disk

• 매시간 ( 기본값 ) 또는 네임노드 edits 파일의 크기가 64MB 가 되면 발생• 최근 하둡버전은 트랜잭션 개수 기준으로 체크 포인트를 수행

Page 17: Hadoop administration

17 04/09/2023

NFS

• Hadoop NameNode 는 SPOF• 따라서 HA 구조로 만들어야 함• HA 기본 기능은 Hadoop 1.x 버전 이하에서는 존재하지 않음

> Hadoop 2.0(YARN) 의 가장 인기있는 기능• NFS, Zookeeper 등을 이용하여 HA 구현

Hadoop HA(NameNode)

Zookeeper Quorum

복구 컨트롤러 복구 컨트롤러

네임노드(Active)

네임노드(Standby)

메타데이터

공유메타데이

터 메타데이터 * 그 밖의 페더레이션 구조가 있음

Page 18: Hadoop administration

18 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 19: Hadoop administration

19 04/09/2023

• MapReduce Framework 사상> Logic on Data; Data Locality 반영

• MapReduce: Simplified Data Processing on Large Clusters• 개발 단순성

> 한 번에 하나의 레코드만을 다루는 데이처 처리 프로그램만 작성하면 됨> 하지만 , Functionality Programming 개념을 숙지 ; KEY-VALUE

– 사실 , Java MapReduce 는 변종> Filtering, Projection, Grouping, Aggregation 등을 구현

• 확장성> 태스크들은 서로 통신하거나 , 상태를 공유하지 않고 분산된 머신에서

병렬 수행• 내고장성

> 실패는 예외가 아니라 항상 일어나는 일> 클러스터의 워커 노드에서 태스크가 실패하면 다시 시도

MapReduce 의 Features

Page 20: Hadoop administration

20 04/09/2023

• (1) Job summit (2) Map Task (3) Shuffling& Sort (4) Reduce Task

MapReduce 4 단계 처리

Page 21: Hadoop administration

21 04/09/2023

• Job Tracker> 1 개임> Client 와 Task Tracker 와 RPC 통신 수행> Task Tracker 는 Heartbeat 으로 상태과 정보를 보내 줌> Job Configuration 책임

• Task Tracker> 사용자 코드를 수행하는 데몬> Job Tracker 에게 주기적으로 진행과정 보고> Job Tracker 로부터 할당 받으면 새로운 프로세스 만들어 Task Attempt

함– Task vs. Task Attempt

MapReduce Daemon

Page 22: Hadoop administration

22 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 23: Hadoop administration

23 04/09/2023

1. 하둡 배포판 버전 선택2. 하드웨어 선택3. 운영체제 선태과 준비 사항4. 커널 튜닝5. 네트워크 설계

Cluster Planning

Page 24: Hadoop administration

24 04/09/2023

• Apache Hadoop vs. Packaging Hadoop

> Apache Hadoop> Hortonworks> Cloudera

하둡 패포판과 버전 선택

Page 25: Hadoop administration

25 04/09/2023

• 20 대 미만 클러스터 ( 소형 클러스터 ) 마스터 하드웨어 저비용 투자> CPU: 2.6GH, 쿼드코어 CPU 2 개> MEM: DDR3 RAM 24GB> NT: 1GB NIC 2 개> Controller: SAS 드라이버 Controller, SAS II(OS 디바이스 JBOD)> Disk Storage: 최소 1TB 이상

• 300 대 미만> Memory 만 24GB 혹은 48GB

• 대형 Cluster> Memory 96GB

하드웨어 선택

구분 대상 고려사항

마스터 하드웨어 선택

네임노드 • 독립머신 , 메타데이터를 메모리에 저장• CPU 보다 메모리 위주

보조 네임노드 • 네임노드와 같음 , 동일한 메모리 , 디스크 용량 필요

잡 트래커 • 많은 메모리를 사용 , 네임노드와 같은 Spec

Page 26: Hadoop administration

26 04/09/2023

하드웨어 선택

구분 대상 고려사항

워커하드웨어 선택

데이터 노드 • 저장과 계산 두 역할 모두 함• 따라서 CPU, Disk Storage 고려• 복제 계수 , X 3• MapReduce 임시 저장 , 20~30% 추가 저장• 메모리 보다 , Disk 위주• 연산을 위한 CPU 선택

태스크 트래커

중급 ( 많은 메모리 , 많은 디스크 , 1GB 이더넷 ) 고급 ( 대용량 메모리 , 초고속 디스크 , 10GB

이더넷 )

• CPU: 2.9GHz, 15MB 캐시 6 코어 CPU 2 개• 메모리 : DDR3-1600 ECC 64GB• 디스크 컨트롤러 : SAS 6GB/S 1 개• 디스크 : 3TB LFF SATA II 7200 RPM HDD 12 개• 네트워크 : 1GB 이더넷 2 개• 비고 : 인텔 하이퍼 쓰레딩 QPI 기능 권장• 3 또는 4 채널 메모리 설정

• CPU: 2.9GHz, 15MB 캐시 6 코어 CPU 2 개• 메모리 : DDR3-1600 ECC 96GB• 디스크 컨트롤러 : SAS 6GB/S 2 개• 디스크 : 3TB LFF SATA II 7200 RPM HDD 24 개• 네트워크 : 10GB 이더넷 1 개• 비고 : 인텔 하이퍼 쓰레딩 QPI 기능 권장• 3 또는 4 채널 메모리 설정

Page 27: Hadoop administration

27 04/09/2023

• Scale up 대신 Scale out• 가상화를 일반적으로 사용하지 않는다 .

> 베어메탈 등의 하이퍼바이저는 I/O 성능에 영향을 줌

하드웨어 선택 : 클러스터 규모 결정

일일 수집 용량 1TB

복제 인수 3( 블록 사본 수 )

일일 실제 용량 3TB 일일수집 용량 X 복제인수

노드 저장 요량 24TB 2TB SATA II HDD 12 개

맵리듀스 임시 데이터 용량 25% 맵리듀스 임시 데이터

노드 가용 저장소 용량 18TB 노드저장용량 – 맵리듀스 임시 데이터 용량

1 년 61 노드 일일수집용량 X 복제인수 X 365 / 노드 가용 저장소 용량

1 년 ( 매월 5% 증가 ) 81 노드

1 년 ( 매월 10% 증가 ) 109 노드

Page 28: Hadoop administration

28 04/09/2023

• RedHat, CentOS, Ubuntu, SuSE 등 리눅스 운영체제 최적화• Puppet, Chef 등의 설정관리 시스템 필요 ( 오픈소스 )• 소프트웨어

> Oracle Java 1.6 이상– Hadoop RPM 사용하려면 , Oracle Java 도 RPM 버전으로 설치

> Cron Daemon> ntp> SSH> SNTP> rsync

• Hostname, DNS 인식> /etc/hostname, /etc/hosts, java dns

운영체제 선택과 준비사항

Page 29: Hadoop administration

29 04/09/2023

데몬 위치 설정 매개변수 소유자 : 그룹 권한NameNode /data/1/dfs/nn,

/data/2/dfs/nn,/data/3/dfs/nn

dfs.name.dir hdfs:hadoop 0700

Secondary Name Node

/data/1/dfs/snn fs.checkpoint.dir hdfs:hadoop 0700

DataNode /data/1/dfs/dn,/data/2/dfs/dn,/data/3/dfs/dn

dfs.datanode.dir hdfs:hadoop 0700

Task Tracker /data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local,

mapred.local.dir mapred:hadoop 0700

Job Tracker /data/1/mapred/local mapred.local.dir mapred:hadoop 0700

전체 /var/log/hadoop/tmp/hadoopuser.name

$HADOOP_LOG_DIRhadoop.tmp.dir

root:hadooproot:root

07751777

Directory Layout

Page 30: Hadoop administration

30 04/09/2023

• 커널 매개변수 /etc/sysctl.conf 설정> 반드시 재시작해야 반영

• vm.swappiness> 데이터와 메모리간의 SWAP> 0~100, 수치가 높을수록 데이터를 더 많이 스왑> 대략 60~80 이면 적당

• Vm.overcommit_memory> malloc() 함수 호출하여 메모리 할당 옵션> 0: 메모리가 충분하면 애플리케이션 메모리 할당> 1: 물리 메모리 초과할 때 vm.overcommit_ratio 기준으로 스왑후 할당

– ratio 50 이고 , 물리 메모리 1GB 이면 커널 스왑 포함해서 1.5GB> 2: 커널은 애플리케이션 메모리 할당 요청을 무조거 수용

– 절대 권고하지 않음

커널 튜닝

Page 31: Hadoop administration

31 04/09/2023

• 리눅스의 LVM 사용 금지> /dev/sd* 아닌 /dev/vg* 이면 잘 못된 설정

• 대부분 운영체제 파일시스템 따라 감> ext3, ext4, xfs

• 항상 마운트 옵션에 추가해야 함

디스크 설정

Page 32: Hadoop administration

32 04/09/2023

• 꼭 네트워크 엔지니어와 함께 설계해야 함• 고립된 네트워크가 최적

• 1,152 지원 장비> Cisco Nexus 7000> 스파인 패브릭 스위치 2 개

네트워크 설계

48x10GbE

48x10GbE4 x 10GbE

48x10GbE4 x 10GbE

48x10GbE4 x 10GbE

Host Host Host

Page 33: Hadoop administration

33 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 34: Hadoop administration

34 04/09/2023

• Apache Hadoop> Tarball 경우 압축해제로 끝> 전문적 관리를 위해 디렉터리 위치 조정 가능

• Cloudera, Hortonworks> Installation Manager 가 존재> Cloudera Manager> Hortonworks Management Center

하둡 배포판에 따라서

Page 35: Hadoop administration

35 04/09/2023

• 버전 관리가 용이• 디렉토리 위치 일관성

> /etc/hadoop– conf 디렉터리 (뒤장에 설명 )

> /etc/rc.d/init.d– 데몬 형식의 시작 / 종료 / 재식 스크립트

> /usr/bin– hadoop 실행파일과 태스크 컨트롤러 바이너리 파일

> /usr/include/hadoop– 하둡 파이프를 위한 C++ 헤더 파일

> /usr/lib– 하둡 C 라이브러리

> /usr/libexec> /usr/sbin/> /usr/share/doc/hadoop

RPM 패키지 사용했을 경우

Page 36: Hadoop administration

36 04/09/2023

• hadoop-env.sh• core-site.xml• hdfs-site.xml• mapred-site.xml• log4j.properties• masters• slaves• fair-scheduler.xml• capacity-scheduler.xml• dfs.include• dfs.exclude• hadoop-policy.xml• mapred-queue-acls.xml• taskCtrller.cfg

Hadoop conf 디렉터리 아래 파일

Configuration Framework 핵심

<configuration> <property> <name></name> <value></value> <finale></final> </property><configuration>

Page 37: Hadoop administration

37 04/09/2023

• Demo

Installation and Configuration

Page 38: Hadoop administration

38 04/09/2023

name value 설명

fs.default.name(core-site.xml) hdfs://centos1:9000 파일시스템의 URL 지정dfs.name.dir /data/1/dfs/nn 네임노드 메타데이터 저장소dfs.data.dir /data/1/dfs/dn 데이터 노드 블록 저장소fs.checkpoint.dir /data/1/dfs/snn 체코포인트 메타데이터 저장소dfs.permission.supergroup hadoop 슈퍼유저그룹으로 모든 HDFS

조작수행io.file.buffer.size(core-site.xml) 65536 IO 버퍼 크기 클수록 네트워크

전송효율 높아짐 하지만 , 메모리 소비와 지연시간도 늘어남

dfs.balance.bandwidthPerSec 분산된 블록의 균형을 맞추기 위한 도구

dfs.block.size 134217728 새로운 파일이 생성시 필요한 블록 크기

fs.trash.interval (core-site.xml) 1440(24 시간 ) 휴지통 기능

HDFS Configurations(hdfs-site.xml)

• dfs.datanode.du.reserved, • dfs.namenode.handler.count, • dfs.datanode.failed.volumes.tolerated• dfs.hosts• dfs.host.exclude

Page 39: Hadoop administration

39 04/09/2023

MapReduce Configurations(mapred-site.xml)

name value 설명

mapred.job.tracker hdfs://centos1:9000 Job Tracker URL scheme

mapred.local.dir /data/1/mapred/local 로컬 디스크에 임시 출력을 저장

mapred.java.child.opts -Xmx2g JVM 메모리 사용 공간에

mapred.child.ulimit 1572864 태스크의 가상 메모리 용량을 제한

mapred.tasktracker.map.tasks.maximum

16 각 머신이 동시에 실행할 수 있는 태스크 수는

mapred.tasktracker.reduce.tasks.maximum

8 각 머신이 동시에 실행할 수 있는 태스크 수는

mapred.compress.map.output org.apache.io.compress.SnappyCodec 뱀 태스크의 출력을 디스크에 저장할 때 기본 설정

mapred.output.compression.type BLOCK maprecl.output.compression.type 에 지정된 압축 방식

• mapred.jobtracker.taskScheduler• mapred.reduce.parallel.copies • mapred.reduce.tasks• tasktracker.http.threads• mapred.reduce.slowstart.completed.maps

Page 40: Hadoop administration

40 04/09/2023

• HDFS 블록 사본은 서로 다른 머신에 저장> 하지만 , 위치 정보가 없다면 하나의 랙에 모두 저장 가능성이 있음> 랙 전체가 실패할 경우 가용성 문제 발생

• 첫 번째 복제 저장소는 임의로 결정• 두 번째 , 세 번째 복제 저장소는 다른 랙의 두 머신 저장

> 3 개의 랙에 저장하지 않는 이유는 머신의 실패보다 랙의 실패가 적다 .> 두 번째 , 세 번째 동일 랙 내의 머신에 배치하면 데이터 교환 손 쉬움

– 랙 스위치만 거치게 되니까 .

• 스크립트로 작성하여 Configuration 설정

Rack Topology

Page 41: Hadoop administration

41 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 42: Hadoop administration

42 04/09/2023

• 대개 Kerberos 사용> 주체 , 인스터스 영역의 세 가지 컴포넌트> Kerberos 자체만으로 학습해야 하며 , Learning Curve 상당히 큼> 따라서 , 시스템 관리자 / 운영자와 함께> 오히려 하둡은 core-site.xml/mapred-site.xml 설정파일만 수정하면 끝

식별 , 인증 , 허가

name value

hadoop.security.authentication Kerberos

hadoop.securitY.authorization true

dfs.namenode.keytab.filedfs.datanode.keytab.file

/etc/hadoop/conf/hdfs.keytab

dfs.block.access.token

dfs.namenode.kerberos.principaldfs.namenode.kerberos.https.principaldfs.datanode.kerberos.principaldfs.datanode.kerberos.https.principal

host/ [email protected]

dfs.https.addressdfs.datanode.http.address

0.0.0.00.0.0.0:1006

dfs.https.port 50470

dfs.datanode.address 0.0.0.0:1004

dfs.datanode.data.dir.perm 0700

Page 43: Hadoop administration

43 04/09/2023

• 다른 에코시스템과 권한 / 인증 /허가 설정을 해야 함• 안전하거나 아니거나 !

> 데이터는 소중하다 . 따라서 일반적인 데이터 센터 내에서도 TOP Level 위치

> 기업 내 SOC(Security Official Center) 운영– 섬 ! 인터넷 , 휴대폰도 운용되지 않음– 따라서 개발 Cluster 와 구분되어야 함– Hadoop Client 연결되는 노드가 필수로 필요함

• 아니면 , 완벽한 보안 가이드 준수> 하지만 , 보안 레벨이 높을수록 성능은 저하 됨> 데이터 암호화

– 디코딩 레벨을 하둡에서 할 것인가 ? 아니면 외부 서버에서 할 것인가 ?– 대게 하둡에서는 하지 않음 디코딩 자체가 극심한 IO 문제를 발생함

Hadoop Security Planning

Page 44: Hadoop administration

44 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 45: Hadoop administration

45 04/09/2023

• 디렉터리 트리 구조 활용으로 사용자들에세 쿼터 부여

# hadoop dfsadmin –setSpaceQuota 10737418240 /user/joel# hadoop fs –count –q /user/joel

HDFS 쿼터

/--data/----user-activity/----syslog/----purchase/ # 쿼터 제한 없음--group/----ps/ # 쿼터 100TB--users/ # 사용자 쿼터 1TB----joel/----ryan/----simon/

Page 46: Hadoop administration

46 04/09/2023

MapReduce Scheduler

• FIFO 스케줄러> 먼저 오면 먼저 처리> 독점 문제 발생> 우선순위 지원

– 매우 낮음 < 낮음 < 보통 < 높음 < 매우 높음> 소형 , 실험용 , 개발 클러스터에만 적용

• Fair 스케줄러> 큐에 제출된 잡은 풀 중 하나에 배치> 클러스터의 총 슬롯 용량> 다른 풀의 현재 요청 , 최소 보장 슬롯 , 기용 슬롯 용량 등으로 태스크 슬롯 수 결정

• Capacity 스케줄러> 총 클러스터 슬롯 수를 가진 다수의 큐를 설정> 큐에 요청이 있을 때만 예약

Page 47: Hadoop administration

47 04/09/2023

Fair 스케줄러 알고리즘 설명

풀 요청 최소분배

실제분배

조엘 20 0 20

라이언 40 0 40

총 슬롯 용량 : 80

풀 요청 최소분배

실제분배

조엘 20 0 20

라이언 40 0 30

싸이먼 120 0 30

총 슬롯 용량 : 80

풀 요청 최소분배

실제분배

조엘 40 0 25

라이언 30 0 25

싸이먼 30 50 30

총 슬롯 용량 : 80

풀 요청 최소분배

실제분배

조엘 40 0 15

라이언 30 0 15

싸이먼 60 50 50

총 슬롯 용량 : 80

풀 요청 가중치 실제분배

조엘 80 1 26

라이언 60 2 53

총 슬롯 용량 : 80

Page 48: Hadoop administration

48 04/09/2023

• Demo

Fair Scheduler

Page 49: Hadoop administration

49 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 50: Hadoop administration

50 04/09/2023

• 하둡의 모든 데몬은 Java 데몬• 실행 계정이 일반 계정으로 실행 했다면

> # jps

• 실행 계정이 서비스형태 즉 , root 실행 했다면> # ps –elf | grep java> # ps –elf | grep –i namenode …

• 하둡은 프로세스 실행> # start-all.sh // 네임노드 , 데이터 노드 , 잡 트래커 , 태스트 트래커

실행> # stop-all.sh // 네임노드 , 데이터 노드 , 잡 트래커 , 태스트 트래커

정지> # start-dfs.sh // 네임노드 , 데이터 노드 실행> # stop-dfs.sh // 네임노드 , 데이터 노드 정지> # start-mapred.sh // 잡 트래커 , 태스트 트래커 실행> # stop-mapred.sh // 잡 트래커 , 태스트 트래커 정지> # hadoop-daemon.sh // 하둡 노드 개별적 실행

Hadoop Process 관리

Page 51: Hadoop administration

51 04/09/2023

• 데모

Cluster Commissioned, Decommissioned

Page 52: Hadoop administration

52 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 53: Hadoop administration

53 04/09/2023

• 성능 모니터링> JVM, dfs, mapred> Job status, Failed Job, Task 개수

• 상태 모니터링> CPU, Memory, Disk, Network Traffic> Hadoop Daemon, Hadoop Log

• 상용 툴을 이용하는 방법> 상당히 고가

• 일반적인 오픈소스 활용> Ganglia + Nagios + Ambari(Hadoop Ecosystem)

Monitoring

Page 54: Hadoop administration

54 04/09/2023

• 데이터 백업> 분산 복제 (distcp)> 병렬 데이터 수집시 바로 데이터 이중화

– Apache Flume 이용하여 HDFS 싱크로 통해 Direct 저장

• 메타 데이터 백업> 내장 웹서버 /getimage 서블릿 호출> getimage=1, fsimage 추출# curl –o fsimage.201309 ‘http://centos1:50070/getimage?getimage=1’

> getedit=1, edits 추출# curl –o fsimage.201309 ‘http://centos1:50070/getimage?getedits=1’

Backup and Recovery

Hadoop Cluster 1

Hadoop Cluster 2

Flum

e

sinkData source 동시 저장

Page 55: Hadoop administration

55 04/09/2023

• 기본 사용 방법# hadoop distcp hdfs://centos1:50030/path/one hdfs://remote:50030/path/two

> -m: 매퍼수 제어> -overwrite: 기존파일 덮어쓰기> -update: 변경된 부분만 복사> -delete: 원본에는 없고 목적지에 있는 파일 삭제

• 기본 동종 클러스터> hdfs://

• 이기종 클러스터> webhdfs://> httpfs://

• Amazon S3 지원> s3://

분산복제 Distcp

Page 56: Hadoop administration

56 04/09/2023

1. Hadoop Introduction

2. Hadoop Distributed File System

3. Hadoop MapReduce

4. Hadoop Cluster Planning

5. Hadoop Installation and Configuration

6. Hadoop Security

7. Hadoop Resource Management

8. Hadoop Cluster Management

9. Hadoop Monitoring, Backup and Recovery

10. Hadoop NG; Glance at YARN

CONTENTS

Page 57: Hadoop administration

57 04/09/2023

Hadoop 2.0

Aster 6.0 Key Cap.- Graph- BSP- ADFS

Page 58: Hadoop administration

58 04/09/2023

YARN

• Resource Manager> Job Tracker 의 자원 관리> 클러스터 모니터링

• Node Manager> Task Tracker 역할

– Map 과 Reduce 관리> 실질적 MapReduce 수행

• Application Master> 단일 Job Tracker 가 아님