Distributed Computing for Big Data

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
WCL 이민학 Big Data & Hadoop.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Oozie Web API 기능 테스트 이승엽.
ADP BUSINESS SCHOOL is the place learning management skills. You can learn strategy, marketing, leadership, HRM, Operations, International Business, Accounting,
뇌를 자극하는 Windows Server 2012 R2
소리가 작으면 이어폰 사용 권장!.
빅데이터 분산 처리 시스템 충북대학교 정보통신공학부 복경수
Power Java 제3장 이클립스 사용하기.
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
How Hadoop Works 박 영 택 컴퓨터학부.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
김병곤 / Flamingo Community Meetup Flamingo 소개 김병곤 /
Network Lab. Young-Chul Hwang
Windows Server 장. Windows Server 2008 개요.
Distributed Computing (Apache Hadoop & Hive Review)
Hadoop 2.완전 분산 처리.
Korea University of Technology and Education Hongyeon Kim
Windows Server 장. 사고를 대비한 데이터 백업.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
강 명 수 LINUX 설치 강 명 수
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
Introduction to Big Data, Summer, 2013
Visual Basic .NET 처음 사용하기.
소리가 작으면 이어폰 사용 권장!.
FTP 프로그램 채계화 박재은 박수민.
Root Filesystem Porting
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
HDFS와 대용량 데이터 처리 콘텐츠서비스연구팀 최완.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
IPAD2(ios 5.0.1) 사용자 메뉴얼 Mobile Service Team.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
뇌를 자극하는 Windows Server 2012 R2
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
USN(Ubiquitous Sensor Network)
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
WebtoB - Jeus 연동.
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
알고리즘 알고리즘이란 무엇인가?.
클러스터 시스템에서 효과적인 미디어 트랜스코딩 부하분산 정책
뇌를 자극하는 Solaris bible.
Introduction to JSP & Servlet
KISTI Supercomputing Center 명훈주
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
멀티미디어시스템 제 4 장. 멀티미디어 데이터베이스 정보환경 IT응용시스템공학과 김 형 진 교수.
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
2D 게임 프로그래밍 제안서 김보명.
.Net FrameWork for Web2.0 한석수
ARP.
소리가 작으면 이어폰 사용 권장!.
Presentation transcript:

Distributed Computing for Big Data 박 영 택 컴퓨터학부

Apache Hadoop이란? 빅데이터를 저장, 처리, 분석할 수 있는 소프트웨어 프레임워크 Distributed Scalable Fault-tolerant Open source

Apache Hadoop 오픈 소스 프로젝트이며, 약 10개 회사의 60명의 committer Cloudera, Yahoo!, Facebook, Apple, … 수 백명의 contributor들이 개발 중이고, bug 수정 등의 작업을 수행 다양하고 많은 프로젝트, 애플리케이션, 도구에서 사용됨

다양한 에코 시스템

The Motivation For Hadoop 기존 large-scale 컴퓨팅 시스템의 문제점은? 이러한 문제점을 Hadoop은 어떻게 다루는가?

Traditional Large-Scale Computation 기존에는 processor에 의존하는 computation을 수행 상대적으로 적은 양의 데이터 많은 양의 복잡한 처리가 요구됨 초기 해결 방법 : 컴퓨터의 성능 향상 더 빠른 processor와 많은 memory 지속적으로 향상시키는 것에 한계점이 존재

분산 처리 시스템 해결 방법 : 더 많은 컴퓨터를 사용 분산 처리 시스템의 진화 하나의 작업에 여러 대의 machine을 사용 MPI(Message Passing Interface)

분산 처리 시스템 : 문제점 분산 처리 시스템의 문제점 복잡한 프로그래밍 bandwidth의 한계 데이터와 프로세스의 sync 유지 bandwidth의 한계 Partial failures

분산 처리 시스템 : 데이터의 병목현상 40년 동안 이어진 Moore의 법칙 Processing power는 2년마다 두배 증가 Processing speed는 더 이상 문제되지 않음 Processor로 데이터를 전송하는 작업이 병목현상이 될 수 있음 기존 디스크의 데이터 전송 속도는 75MB/sec 100GB의 데이터를 전송하기 위해서는 대략 22분 소요 대부분의 서버는 100GB 이하의 RAM을 사용하기 때문에 실제 시간은 더 오래 걸릴 것 새로운 접근 방법이 요구됨

분산 처리 시스템 : 데이터의 병목현상 기존에는 데이터 저장을 위해 중앙 저장소를 사용 데이터는 실행 시에 processor로 복사 적은 데이터 사용에는 문제되지 않음

Partial Failure 시스템은 반드시 partial failure에 대처가 요구됨 컴포넌트의 failure(전체 시스템의 failure가 아닌)는 애플리케이션 성능 저하를 유발함

데이터 Recoverability 시스템의 컴포넌트가 fail 하더라도 시스템을 통해 작업은 지속적으로 수행되어야 함 Failure로 인해 어떠한 데이터의 손실도 발생하면 안됨

컴포넌트 Recovery 시스템의 컴포넌트가 fail되고 다시 recover된 경우, 시스템에 rejoin하 는 것이 가능해야 함 전체 시스템의 재 시작 없이 수행

Consistency job이 수행되는 동안 컴포넌트의 failure는 결과에 영향을 주지 않아야 함

Scalability 데이터의 양이 증가하면, 각 작업의 성능이 감소함 시스템은 fail되지 않음 시스템의 resource를 증가시키면, 비례적으로 로드 capacity가 증가함

Hadoop의 역사 Hadoop은 1990년~2000년 사이의 Google의 연구로 부터 시작 Google File System(GFS) in 2003 MapReduce in 2004 기존 분산 컴퓨팅의 문제점을 해결할 수 있는 새로운 접근법 reliability와 scalability 문제를 모두 해결 Core concept : 초기 데이터를 시스템에 분산하여 저장 클러스터의 각 노드가 로컬 데이터에 대한 작업을 처리 initial processing을 위해 네트워크를 통해 데이터가 전송되지 않음

Core Hadoop Concepts 애플리케이션을 High-level 코드로 작성 개발자에게 네트워크 프로그래밍, 의존성, low-level 인프라 구조에 대한 고려가 요구되지 않음 각 노드들은 가급적 최소한의 데이터를 주고 받음 개발자는 노드들 사이의 통신에 대한 코드 작성이 필요 없음 ‘Shared nothing’ architecture 데이터는 여러 노드에 미리 분산되어 저장 데이터가 저장된 위치에서 연산을 수행 availability와 reliability를 향상 시키기 위해서 데이터는 여러 개의 복제본을 두고 사용

Hadoop : Very High-Level Overview 시스템이 데이터를 로드할 때 ‘block’으로 나누어짐 기본적으로 64MB 또는 128MB 크기를 사용 Map tasks(MapReduce 시스템의 첫 번재 파트)는 single block 단위의 작업을 처리 마스터 프로그램은 분산되어 저장된 데이터의 block에 대한 Map task 작업을 각 노 드에 할당 전체 데이터 셋 중 각 노드에 저장된 데이터를 이용해 병렬적으로 작업을 수행

Fault Tolerance Node가 fail한 경우, master node는 failure를 감지하고 작업을 다른 node에 할당 Task를 재 시작 하는 것은 다른 부분에 대한 작업을 수행중인 다른 노드와의 통신을 필요로 하지 않음 Fail된 node를 재 시작 하는 경우, 자동적으로 시스템에 연결되어 새로운 task를 할 당함 특정 Node의 성능이 매우 낮은 것으로 감지되면, master node는 같은 task를 다른 node에 할당 Speculative Execution

Hadoop 분산 처리를 위한 새로운 접근법 데이터가 처음 저장될 때, 분산하여 저장 데이터가 저장된 위치에서 연산을 수행

Hadoop : High-Level Overview 데이터를 load할 때, ‘block’ 단위로 분할 Map task는 하나의 block을 대상으로 수행 Master 프로그램은 task들을 관리

Core Hadoop Concepts 애플리케이션은 high-level code로 작성 Node들은 가능한 최소한의 통신을 수행 데이터는 미리 분산 되어 저장됨 Computation to Data 데이터의 replication 생성하여, availability와 reliability 향상 Hadoop은 scalable하며 fault-tolerant를 지원함

Scalability Node를 추가하면 capacity가 비례하여 증가 Load하는 데이터의 양이 증가할 수록, 성능이 감소 시스템 fail 없이 수행 가능

Fault Tolerance Node failure는 피할 수 없는 문제 Fault tolerance의 효과 시스템이 지속적으로 기능을 수행 Master는 task를 다른 node에 재할당 데이터의 replication = 데이터의 손실 방지 Recover를 위한 node는 클러스터에 자동적으로 연결됨

Hadoop의 문제점 데이터의 특성 데이터 분석의 특징 Volume Velocity Variety Batch processing Parallel execution Distributed data

Hadoop : Basic Concepts Hadoop Distributed File System (HDFS) MapReduce 프로그램 Hadoop 클러스터의 운영

Hadoop Project Hadoop은 Apache 소프트웨어의 open-source 프로젝트 2003년과 2004년의 Google 논문을 기반으로 함 전세계의 다양한 조직들의 Hadoop committer들이 활동 Cloudera, Yahoo, Facebook, LinkedIn

Hadoop Components Hadoop은 주요 구성 요소 Hadoop을 기반으로 하는 다른 프로젝트 Hadoop Distributed File System (HDFS) MapReduce Hadoop을 기반으로 하는 다른 프로젝트 ‘Hadoop Ecosystem’이라고 하는 Pig, Hive, HBase, Flume, Oozie, Sqoop 등이 있음 Hadoop 클러스터는 HDFS와 MapReduce를 사용할 수 있도록 구성된 여러 개의 machine들 을 말함 각각의 개별 machine은 node A cluster can have as few as one node, as many as several thousand 하나의 클러스터는 최소 1개의 node에서 수 천개의 node로 구성될 수 있음 더 많은 node를 사용할 수록 더 좋은 성능을 얻을 수 있음

Hadoop Components Note: CDH is Cloudera’s open source Apache Hadoop distribution

Core Components : HDFS and MapReduce HDFS (Hadoop Distributed File System) 클러스터에 데이터를 저장 MapReduce 클러스터의 데이터를 처리

Hadoop Components : HDFS HDFS(Hadoop Distributed File System)은 클러스터에 데이터를 저장하기 위해 사용 데이터는 block으로 분할되고, 클러스터의 여러 노드에 분산되어 저장 각 block은 기본적으로 64MB 또는 128MB의 크기 각 block은 여러 개의 replication을 생성하여 사용 기본적으로 3개의 replication block을 생성 replication block은 서로 다른 노드에 저장됨 이를 통해 reliability and availability 향상

Hadoop Components : MapReduce MapReduce는 Hadoop 클러스터의 데이터를 처리하기 위한 시스템 2개의 phase로 구성 : Map, Reduce Map과 Reduce 사이에는 shuffle과 sort라는 스테이지가 있음 각 Map task는 전체 데이터 셋에 대해서 별개의 부분에 대한 작업을 수 행 기본적으로 하나의 HDFS block을 대상으로 수행 모든 Map task가 종료되면, MapReduce 시스템은 intermediate 데이터를 Reduce phase를 수행 할 노드로 분산하여 전송

HDFS Basic Concepts HDFS는 Java로 작성된 파일 시스템 기존 파일 시스템의 상위에서 동작 Google의 GFS 기반 기존 파일 시스템의 상위에서 동작 ext3, ext4 or xfs

HDFS의 file 저장 방식 File은 block 단위로 분할 데이터가 로드 될 때 여러 machine에 분산되어 저장됨 각 block은 기본적으로 64MB 또는 128MB 크기 데이터가 로드 될 때 여러 machine에 분산되어 저장됨 같은 file의 다른 block들은 서로 다른 machine에 저장됨 이를 통해 효율적인 MapReduce 처리가 가능 Block들은 여러 machine에 복제되어 Data node에 저장됨 기본 replication은 3개 각 block은 서로 다른 3개의 machine에 저장되어 있다는 것을 의미 Name node로 불리는 master node는 어떤 block들이 file을 구성하고 있고, 어느 위치에 저장되어 있는지에 대한 정보를 meta data로 관리

HDFS의 file 저장 방식 (1) 데이터 file들은 block으로 분할되고, 데이터 노드에 분산되어 저장

HDFS의 file 저장 방식 (2) 데이터 file들은 block으로 분할되고, 데이터 노드에 분산되어 저장

HDFS의 file 저장 방식 (3) 데이터 file들은 block으로 분할되고, 데이터 노드에 분산되어 저장 각 block은 여러 node에 복제 되어 저장(default 3x)

HDFS의 file 저장 방식 (4) 데이터 file들은 block으로 분할되고, 데이터 노드에 분산되어 저장 각 block은 여러 node에 복제 되어 저장(default 3x) Name node는 metadata를 저장

HDFS: Pints To Note File이 64MB 또는 128MB의 block으로 분할 될 때, file이 block의 크기보다 작은 경 우에는 block 크기 전체를 사용하지 않음 Block들은 Hadoop configuration에 설정된 디렉토리를 통해 저장됨 NameNode의 metadata를 사용하지 않으면, HDFS에 접근할 수 있는 방법이 존재 하지 않음 클라이언트 애플리케이션이 file에 접근하는 경우 : NameNode와 통신하여 file을 구성하고 있는 block들의 정보와 DataNode의 block의 위치 정보를 제공받음 이후 데이터를 읽기 위해 DataNode와 직접 통신 NameNode는 bottleneck이 되지 않음

HDFS 접근 방법 Shell 커맨드 라인을 사용: haddop fs Java API Ecosystem 프로젝트 Flume network sourc로 부터 데이터 수집 Sqoop HDFS와 RDBMS 사이의 데이터 전송 Hue Web 기반의 interactive UI로 browse, upload, download, file view 등이 가능

Example: Storing and Retrieving Files (1)

Example: Storing and Retrieving Files (2)

Example: Storing and Retrieving Files (3)

Example: Storing and Retrieving Files (4)

HDFS NameNode Availability NameNode daemon은 반드시 항상 실행되고 있어야 함 NameNode가 중단되면, 클러스터는 접근이 불가능 High Availability mode (in CDH4 and later) 2개의 NameNode : Active와 Standby Classic mode 1개의 NameNode 또 다른 “helper” node는 SecondaryNameNode backup이 목적이 아니며, 장애 발생 시 NameNode를 대신하는 것이 불가능 NameNode를 복구 할 수 있는 정보를 제공

hadoop fs Examples (1) 로컬 디스크의 foo.txt file을 HDFS의 사용자 디렉토리로 복사 위 명령어를 통해 /user/username/foo.txt 위치로 파일을 복사 HDFS의 사용자 경로의 하위 디렉토리 목록을 출력 HDFS의 root 경로의 하위 디렉토리 목록을 출력 ㅇ

hadoop fs Examples (2) HDFS의 경로 /user/fred/bar.txt의 내용을 출력 HDFS의 baz.txt file을 로컬 디렉토리로 복사