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

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
컴퓨터와 인터넷.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
뇌를 자극하는 Windows Server 2012 R2
소리가 작으면 이어폰 사용 권장!.
Image & Video processing
Consumer PC & AIO PC DMI Refresh 방법 설명 (UEFI DMI Ver)
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
MYSQL 설치.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Power Java 제2장 자바 개발 도구.
Hadoop 2.완전 분산 처리.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Windows Server 장. 사고를 대비한 데이터 백업.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
5장 Mysql 데이터베이스 한빛미디어(주).
Ubiquitous Computing Practice - Part I (Installation) -
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
4-1장. MySQL 제13장.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
Introduction to Big Data, Summer, 2013
DataScience Lab 박사과정 김희찬 (금)
1. C++ 시작하기.
FTP 프로그램 채계화 박재은 박수민.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Root Filesystem Porting
컴퓨터정보공학부 서버 안내 [ IBM x3500 ] it.sangji.ac.kr ict.sangji.ac.kr 혹은
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
HDFS와 대용량 데이터 처리 콘텐츠서비스연구팀 최완.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Cross Compiler 설치.
5장 Mysql 데이터베이스 한빛미디어(주).
Cross Compiler를이용한 커널 컴파일 및 포팅
[INA470] Java Programming Youn-Hee Han
자바 5.0 프로그래밍.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
뇌를 자극하는 Windows Server 2012 R2
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
DataScience Lab. 박사과정 김희찬 (목)
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Nessus 4 설치 정보보호응용 조용준.
PC에 설치된 엔드포인트 클라이언트 프로그램을 클릭하여 프로그램 상자를 엽니다
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
TVM ver 최종보고서
9 브라우저 객체 모델.
소리가 작으면 이어폰 사용 권장!.
Git을 이용한 버전 관리 - Branch 실습
어드민 로그인 ID : admin 비밀번호 : 서보테크 1. 제품소개 등록 - MISUBISHI
숙제 작성 및 제출 과정 김진하 2008/03/14.
Docker Study 6~7.
6 객체.
Presentation transcript:

DataScience Lab. 박사과정 김희찬 2017-07-14 (목) Big Data Analytics Short Courses, Summer, 2017 Hadoop과 MapReduce DataScience Lab. 박사과정 김희찬 2017-07-14 (목)

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

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

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

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

MapReduce Framework 주요 과정 개요 Map Shuffle Reduce 입력받은 데이터를 순차적으로 처리하고 결과를 Key, Value의 쌍으로 출력 Shuffle Reduce 단계로 넘어가기 전에 Key끼리 묶은 후 Value의 순서로 정렬함 Reduce 정렬된 데이터를 입력받아 순차적으로 처리 후 Key, Value쌍으로 출력

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

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

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

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

MapReduce on HDFS 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 좀더 세련된 결과를 추출하자 각 단어에 적용할 reduceNoise() 메소드를 짜보자 문장부호 때문에 단어가 제대로 안뭉쳐짐 또한 대소문자 구분도 무의미한 것이라 판단됨 각 단어에 적용할 reduceNoise() 메소드를 짜보자 소문자로 변경 String 객체의 toLowerCase() 메소드 특수 문자 제거 빈 String 객체 생성 String 객체의 charAt() 메소드로 글자를 하나씩 가져옴 각 글자가 ‘a’ 이상이면서 ‘z’이하일 때만 앞서 생성한 객체에 정보를 저장 ASCII 코드를 기억해보자 map() 메소드 내에 reduceNoise() 메소드를 적용

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

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

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

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

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

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

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

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

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 WordCount /bigCourse/[학번]/alice.txt /bigCourse/[학번]/output 이때 /bigCourse/[학번]/output 디렉토리는 없어야함 있다면 삭제하자 alice.txt파일이 없다면 새로 업로드하자

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

THANKS

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