DataScience Lab. 박사과정 김희찬 (목)

Slides:



Advertisements
Similar presentations
이혁재 /KASA NoSQL. 요약 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머.
Advertisements

컴퓨터정보공학부 서버 안내 [ IBM x3500 ] 컴퓨터정보공학부. [ 컴퓨터정보공학부 서버 ] 개요 : 컴퓨터정보공학부는 2013 년도에 컴퓨터 서버 (IBM) 도입 이용대상 : 상지대학교 컴퓨터정보공학부 학부 / 대학원 / 교수 누구나 사용가능 컴퓨터정보공학부 it.sangji.ac.kr.
WCL 이민학 Big Data & Hadoop.
Big Data Chap 3. I. VBRE(Value-Based RE) II. Requirement Prioritization III. AHP(Analytical Hierarchy Process) IV. Requirement Negotiation Q & A.
빅데이터란 ? 1. 빅데이터에 관한 잘못된 상식 빅데이터는 용량과 규모가 매우 큰 데이터를 말한다. 2.
제 4 장 인터넷 창병모 네트워크 구성 2 LAN(Local Area Network) LAN  근거리 통신망으로 집, 사무실, 학교 등의 건물과 같이  가까운 지역을 한데 묶는 컴퓨터 네트워크 이더넷 (Ethernet)  제록스 PARC.
김 연 왕 Hadoop. 준 비 사 항 하 둡 은 자 바 언어로 작성되었기 때 문에 컴퓨 터에 자 바 버 전 6 이상 하 둡 은 리 눅 스와 윈 도우에서 동작
Net-Inspector 매뉴얼
Chapter 1. 운영체제의 개요 이태호.
컴퓨터공학과 김소원.
Hourglass-A library for incremental processing on Hadoop
Message Driven Architecture for Massive Service
HDFS Tutorial.
시작부터 끝까지 진지한 궁서체로 진행하는 완벽한 주입식의 하드코어한 리눅스/장난감 세미나
Hadoop 동작방식(F5를 눌로 슬라이드쇼로 볼 것!!)
빅데이터 분산 처리 시스템 충북대학교 정보통신공학부 복경수
빅데이터 분석 과정.
하둡 설치 신현호 이영건.
빅데이터 순환 과정과 플랫폼.
컴퓨터 네트워크 실습.
BIG Data 컴퓨터응용과학부 박진완.
Big Data Analytics with R and Hadoop
접근 제어 및 로그 감사의 모든 것! Report Contact : ㈜넷앤드휴먼인터페이스 :
NFS, FTP coearth, george.
디렉토리 다루기 ㅎㅎ 유닉스 파일 시스템 현재 디렉토리 확인 : pwd 디렉토리 이동 : cd
Distributed Computing (Apache Hadoop & Hive Review)
Hadoop 2.완전 분산 처리.
DataScience Lab. 박사과정 김희찬 (목)
Apache Hive 빅데이터 분산 컴퓨팅 박영택.
Minicom,tftp,nfs설정,vnc설정
Korea University of Technology and Education Hongyeon Kim
Linux/UNIX Programming
교육팀 도경모 Big.
UNIX Unbounded A Beginning Approach
SMS 소개 기술사업부 한국마이크로소프트.
컴퓨터 네트워크 실습.
자바 5.0 프로그래밍.
리눅스 명령어 실습 임베디드 시스템 I.
Processing resulting output
Hadoop 김연왕
Hadoop 김연왕
Introduction to Big Data, Summer, 2013
Internet Protocol and Programming
DataScience Lab. 박사과정 김희찬 (월)
MapReduce Practice :WordCount
게임에서 공공까지, 국내 실 사례들로 본 빅데이터 융합 분석
HDFS와 대용량 데이터 처리 콘텐츠서비스연구팀 최완.
하둡 기반 빅데이터 처리 방법.
2018 봄학기 Pusan National University School of CSE
DataScience Lab. 박사과정 김희찬 (월)
Internet Protocol and Programming
DataScience Lab. 박사과정 김희찬 (월)
Apache Spark Tutorial 빅데이터 분산 컴퓨팅 박영택.
분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원
Hadoop Chapter 2. 맵리듀스 김영지.
좋은징조 담당교수 : 조성제 김도엽 김현일 이상훈.
Linux 9.X 기초에서 활용까지 Chapter 03 리눅스 설치.
DataScience Lab. 박사과정 김희찬 (화)
시스템 인터페이스 Lab2 X-window 및 명령어 사용.
<정보 보안> 담당 교수: 박용대
Telnet 을 활용한 Linux 메뉴얼 오두환.
Internet Protocol and Programming
시스템 인터페이스 Lab#6 C 쉘 프로그래밍 실습.
우리가 만든 학급 일과 옹달샘 12기 ver 아침시간 수업시간 쉬는시간 점심시간 하교시간
HTML5 웹 프로그래밍 입문 홈페이지 계정.
DataScience Lab. 박사과정 김희찬 (화)
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
두손Order 푸드팩토리 두손Order Ver 1.0 ㈜시소이드.
Intelligent software Lab. 전재원
체력 운동과 건강.
Presentation transcript:

DataScience Lab. 박사과정 김희찬 2017-02-23 (목) Big Data Analytics Short Courses Hadoop과 MapReduce DataScience Lab. 박사과정 김희찬 2017-02-23 (목)

하둡이란? 소개 왜 사용하는가? 신뢰가능하고 확장성이 높은 분산처리 컴퓨팅을 위한 자바 기반 오픈소스 소프트웨어 신뢰가능하고 확장성이 높은 분산처리 컴퓨팅을 위한 자바 기반 오픈소스 소프트웨어 2005년에 더그 커팅(Doug Cutting)이 구글이 논문으로 발표한 GFS(Google File System)와 맵리듀스(MapReduce)를 구현한 결과물 왜 사용하는가? 많은 CPU/디스크를 한번에 관리 필요 (Scalable) 가끔 디스크가 망가지더라도 데이터 유지 필요 (Reliable) 몇몇 디스크가 망가지거나 기타 다른 에러가 발생해도 전체 작업은 문제없이 구동되어야함 (Fault-tolerant) 여러 컴퓨터 끼리 데이터를 주고 받기가 간편 (Simple)

하둡이란? 분산 처리란? 분산 처리 시스템에서 중요한 것은 크게 두 가지 여러 대의 컴퓨터를 이용하여 어떠한 목적을 달성하기 위한 프로그램을 구동하는 것 컴퓨터 한 대만으로는 부족한 큰 연산량이나 데이터를 처리하기 위함 분산 처리 시스템에서 중요한 것은 크게 두 가지 분산 저장 여러 컴퓨터에 있는 디스크를 하나의 디스크인 것처럼 쓰는 것 분산 처리 여러 컴퓨터의 CPU를 하나의 작업을 위해 적절히 일을 분담하는 것

하둡이란? 작업 처리 개요 1) 데이터를 쪼개서 처리한 후 2) 일정 기준으로 다시 묶은 다음에 재처리 후 결과 출력

HDFS의 이해 HDFS란? Hadoop 에서 데이터 분산 저장을 위해 고안한 저장 방법 파일을 여러 군데에 나누어 저장해두고 각 파일이 어디있는지 주소를 중심의 컴퓨터가 기억하고 있는 방법 한 디스크가 망가져도 데이터를 잃지 않기 위해 같은 데이터를 다른 곳에도 복제해둠 Namenode 데이터가 어디에 저장되어있는지에 대한 정보를 가진 컴퓨터 Datanode 실제로 데이터를 저장하고 있는 컴퓨터

HDFS의 이해 HDFS와 Local Disk의 구분 OS가 깔려있는 Disk와 HDFS는 논리적으로 분리되어있음 HDFS 전체는 여러 대의 컴퓨터의 Disk의 일부를 이용 즉 HDFS는 가상의 하나의 큰 Disk가 됨 그래서 각 PC에서는 HDFS의 파일 내용을 정상적으로 확인할 수 없음 HDFS에 데이터를 ‘업로드’하는 이유 본인의 컴퓨터에서 데이터를 이 가상의 Disk로 데이터를 올려야 Hadoop이 해당 데이터를 인식할 수 있기 때문에 이후의 작업이 가능함

MapReduce Framework Job MapReduce Framework를 이용하여 데이터를 처리하는 작업 단위 작업이 각 컴퓨터에서 잘 진행되는지를 확인하는 기능이 존재 JobTracker 각 컴퓨터가 무슨 일을 하고 있는지 확인함 TackTracker에 무슨 문제가 생기면 해당 컴퓨터에 시켰던 일을 비교적 여유로운 다른 TaskTracker에 일을 시킴 TaskTracker Datanode와 비슷하게 실제로 작업을 진행하는 컴퓨터가 JobTracker로 주기적으로 작업 결과를 보냄

MapReduce Framework MapReduce란? Map Reduce 1) 데이터를 쪼개서 처리한 후 모든 데이터에 대하여 특정한 작업을 수행 Key, Value 쌍으로 데이터를 출력함 R의 apply()와 같은 역할 Reduce 2) 일정 기준으로 다시 묶은 다음에 재처리 후 결과 출력 Map에서 처리한 데이터를 같은 Key를 가지는 데이터를 모아서 처리함

MapReduce Framework 주요 과정 개요 input split0 split1 split2 split3

MapReduce Framework MapReduce HDFS 주요 과정 개요 Namenode위치 등록 replication JVM IPC/RPC MapReduce HDFS input splits 계산, map/reduce task 배정 Namenode위치 등록 replication Local File MR Job map reduce map reduce Client tasktracker jobtracker Client datanode namenode Node 1 Node 2 Node 3 Node 4 Node 5 Node 6

MapReduce Framework 우리가 해야할 일 구현은 어떻게? Wordcount 예제로 한단계씩! 나머지는 신경쓰지 않아도 될 부분 구현은 어떻게? 자바 메소드로 Map과 Reduce를 구현 Wordcount 예제로 한단계씩!

WordCount ver. MR WordCount를 MapReduce로 변경 Map에서는? Reduce에서는? 띄어쓰기 기준으로 단어를 나누자, Key는 단어가 됨 그러면 Value는? 단어가 등장할 때마다 1을 넣어준 후 정렬된 이후에 다 더하면 되지 않을까? Reduce에서는? Key 별로 데이터가 묶여서 들어오니까 같이 넘어온 값을 전부 더한 후에 출력하면?

WordCount ver. MR Hadoop에서의 MapReduce 코딩 방법 실행할 클래스의 전체 구조 실행할 클래스 내에서만 사용할 것이라고 정의되었기 때문에 멤버 변수와 같이 멤버 클래스를 만듦 < > 안의 내용은 무엇인지? 붉은 색 입력의 Key 와 Value의 형태 푸른 색 출력의 Key 와 Value의 형태 Hashtable을 떠올려보자!

WordCount ver. MR Hadoop에서의 MapReduce 코딩 방법 실행할 클래스이므로 main 메소드가 필요함 하둡에서의 작업 단위는 Job 이기 때문에 Job에 대한 설정이 필요 job의 이름 설정 job 실행 시 사용할 클래스 job의 Mapper에서 출력 Key 클래스 job의 Mapper에서 출력 Value 클래스 job에서 Map에서 사용할 클래스 job에서 Reduce에서 사용할 클래스 job의 입력 형태 job의 출력 형태 job의 입력 경로 job의 출력 경로 job을 하둡 클러스터에 전송한 후 해당 Job이 종료될 때까지 대기

WordCount ver. MR Hadoop에서의 MapReduce 코딩 방법 Map 클래스의 멤버 변수로 map 메소드가 필요 입출력 형태에 주의

WordCount ver. MR Hadoop에서의 MapReduce 코딩 방법 Reduce 클래스의 멤버 변수로 reduce 메소드가 필요 입출력 형태에 주의 shuffle은 필요 없나? 하둡에서 자동적으로 해준다!

리눅스 환경 적응하기 직접 네임 노드에 접속하기에 앞서 설치된 OS 파일의 저장 계층 구조가 윈도우와는 상이 리눅스 중 우분투 배포판 파일의 저장 계층 구조가 윈도우와는 상이 C:\, D:\와 같이 드라이브 개념이 없음 최상위 폴더가 C:\가 아니라 ‘/’ 라는 곳, ‘루트’라고 부름 멀티 유저를 상정 -> 다른 유저의 폴더나 관리자 폴더에 접속 불가능 기본 유저의 폴더는 /home/[계정이름]

리눅스 환경 적응하기 직접 네임 노드에 접속하기에 앞서 실행 파일 주로 쓸 리눅스 명령어 윈도우와 다르게 exe파일이 아니고 바이너리(binary AKA bin)임 확장자가 따로 없는 경우도 많음 [실행파일] [옵션(실행 파일에 따라 여러 개 가능)] hadoop fs –ls / 주로 쓸 리눅스 명령어 cd [To] Change directory / 현재 디렉토리를 변경 ls [directory] list / 현재 디렉토리의 내용을 보여줌 cat [target] catenate / 지정된 파일의 내용을 보여줌

리눅스 환경 적응하기 직접 네임 노드에 접속하는 방법 Xshell 프로그램 접속 SSH(Secure SHell)를 사용할 수 있는 클라이언트 프로그램 SSH는 네트워크 상의 다른 컴퓨터에 접속하거나 원격에서 명령을 전송하거나 파일을 복사할 수 있는 프로토콜 FTP는 데이터 패킷을 중간에 가로챌 경우 사용자의 계정과 비밀번호를 알아낼 수 있음 SFTP는 SSH를 이용한 파일 전송 프로토콜 (안심하고 사용 ㄱㄱ) 개인/학교는 무료 접속 IP : 203.253.9.126, port : 22 계정 : stat, 비번 : stat513

리눅스 환경 적응하기 직접 네임 노드에 접속하는 방법 Xshell 프로그램

HDFS로 파일 입출력 테스트할 파일을 업로드! 주의사항! 다음 명령어 입력 같은 계정으로 같은 컴퓨터에 접속해있는 것이기 때문에 명령을 잘못 날릴 경우 다른 사람에게도 영향을 미치므로 데이터는 개인 폴더에 업로드 다음 명령어 입력 mkdir bigCourse/[학번] 개인 폴더 생성 cd bigCourse /[학번] 본인 개인 디렉토리로 이동 hadoop fs –ls / HDFS에서 루트에 저장된 내용을 보여줌 hadoop mkdir /bigCourse/[학번] /bigCourse/[학번] 디렉토리를 생성 hadoop fs –copyFromLocal ~/bigCourse/alice.txt /bigCourse/[학번] 테스트용 파일은 ‘이상한 나라의 앨리스’ 챕터 1임 hadoop fs –ls /bigCourse/[학번]/ 업로드된 파일을 확인

HDFS로 파일 입출력 파일 다운로드 HDFS의 파일 삭제 이후 실습을 위한 파일 재 업로드 다음 명령어 입력 hadoop fs –copyToLocal /bigCourse/[학번]/alice.txt ~/bigCourse/[학번] 업로드 하였던 파일을 내 디렉토리에 다운로드 cat alice.txt 파일 확인! HDFS의 파일 삭제 hadoop fs –rm /bigCourse/[학번]/alice.txt 이후 실습을 위한 파일 재 업로드 hadoop fs –copyFromLocal ~/users/alice.txt /bigCourse/[학번]

WordCount 돌려보기 하둡 클러스터로 전송하기 위하여 라이브러리로 생성 하둡 클러스터로 전송 하둡에서 실행 export -> Java -> jar 로… 하둡 클러스터로 전송 Xshell을 이용하여 전송 ~/bigCourse/[학번] 폴더로 전송 하둡에서 실행 다음 명령어를 실행 hadoop jar WordCountMR.jar WordCountMR /bigCourse/[학번]/alice.txt /bigCourse/[학번]/output 이때 /bigCourse/[학번]/output 디렉토리는 없어야함 있다면 삭제하자 alice.txt파일이 없다면 새로 업로드하자

WordCount 돌려보기 결과 확인을 위하여 하둡에서 결과 파일 내려받기 결과 파일 열어보기 hadoop fs –copyToLocal /bigCourse/[학번]/output . 결과 파일 열어보기 Reduce의 결과는 그 개수에 따라 따로 저장함 part-r-00000 cat part-r-00000

Appendix Xshell Hadoop libraries https://drive.google.com/open?id=0B2C49wBdxcD5QjdfcTJEekM4Zlk Hadoop libraries https://drive.google.com/open?id=0B2C49wBdxcD5TzdvNU82NzRmTzA

THANKS