DataScience Lab 박사과정 김희찬 (금)

Slides:



Advertisements
Similar presentations
제철고 프로그래밍언어 2015 가을학기 연습 #1 Python 연산식 이다훈 POSTECH 컴퓨터공학과 2015 년 9 월 23 일.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
컴퓨터와 인터넷.
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
Consumer PC & AIO PC DMI Refresh 방법 설명 (UEFI DMI Ver)
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
Cross Compiler를이용한 커널 컴파일 및 포팅
MYSQL 설치.
Power Java 제2장 자바 개발 도구.
Hadoop 2.완전 분산 처리.
DataScience Lab. 박사과정 김희찬 (목)
Linux/UNIX Programming
Windows Server 장. 사고를 대비한 데이터 백업.
ANSYS17.2 Student 제품 무료 다운로드
5장 Mysql 데이터베이스 한빛미디어(주).
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
Hadoop 김연왕
Hadoop 김연왕
Root Filesystem Porting
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Root Filesystem Porting
소프트웨어 분석과 설계 Struts2 & JBOSS 설치하기
HDFS와 대용량 데이터 처리 콘텐츠서비스연구팀 최완.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
Cross Compiler 설치.
5장 Mysql 데이터베이스 한빛미디어(주).
환경 : Windows7 64bit 버전 : apache-ant-1.9.7
Cross Compiler를이용한 커널 컴파일 및 포팅
IPAD2(ios 5.0.1) 사용자 메뉴얼 Mobile Service Team.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
IPython Notebook + Spark + TensorFlow on MacOS
영상처리 실습 인공지능연구실.
뇌를 자극하는 Windows Server 2012 R2
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
툴 설치 가이드 PrimeTime SynopsysMentor.
툴 설치 가이드 Formality SynopsysMentor.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
DataScience Lab. 박사과정 김희찬 (목)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
스크린 샷 클릭가능 클릭시 영한사전 반영.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
 파일 아카이브와 압축 명령 익히기.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
12 그리드 시스템.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
함수, 모듈.
발표자 : 이지연 Programming Systems Lab.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
1. 강의 소개 컴퓨팅적 사고와 문제해결.
숙제 작성 및 제출 과정 김진하 2008/03/14.
Docker Study 6~7.
6 객체.
Presentation transcript:

DataScience Lab 박사과정 김희찬 2015-07-17(금) Big Data 처리를 위한 기초 in Big Data Analytics Short Courses Fast Tutorial! DataScience Lab 박사과정 김희찬 2015-07-17(금)

목 차 Hadoop이란? Hadoop Distributed File System MapReduce Framework 실습!

Hadoop이란? 소개 왜 사용하는가? 신뢰가능하고 확장성이 높은 분산처리 컴퓨팅을 위한 오픈소스 소프트웨어 많은 CPU/디스크를 한번에 관리 필요 (Scalable) 가끔 디스크가 망가지더라도 데이터 유지 필요 (Reliable) 몇몇 디스크가 망가지거나 기타 다른 에러가 발생해도 전체 작업은 문제없이 구동되어야함 (Fault-tolerant) 여러 컴퓨터 끼리 데이터를 주고 받기가 간편 (Simple)

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

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

Hadoop Distributed File System HDFS와 Local Disk의 구분 우분투가 깔려있는 Disk와 HDFS는 분리되어있음 한 컴퓨터의 Disk의 일부를 HDFS에 사용하도록 나누어둔 것 HDFS 전체는 여러 대의 컴퓨터의 Disk의 일부를 이용하는 것! 즉 HDFS는 가상의 하나의 큰 Disk가 됨 그래서 하나의 PC에서는 HDFS의 파일 내용을 정상적으로는 확인할 수 없음 HDFS에 데이터를 업로드하는 이유 본인의 컴퓨터에서 데이터를 이 가상의 Disk로 데이터를 올려야 Hadoop이 해당 데이터를 인식할 수 있기 때문에 이후의 작업이 가능함

MapReduce Framework MapReduce란? 여러 대의 컴퓨터를 이용하여 데이터를 처리하기 위한 방법 Key, Value (Hashtable과 유사) Map은 각각의 컴퓨터가 일정한 처리를 하는 단계 Reduce는 Map에서 처리한 데이터를 특정 키를 가지고 데이터를 모은 후 처리를 하는 단계 Map과 Reduce 사이에 키를 가지고 데이터를 정렬함

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

실 습! 실습할 내용 Hadoop 설치 Terminal 실행 VM에 설치된 DB는 많은 사양을 요구하므로 삭제 실 습! 실습할 내용 Hadoop 설치 Terminal 실행 VM에 설치된 DB는 많은 사양을 요구하므로 삭제 sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-workbench sudo apt-get autoremove sudo apt-get autoclean 다른 컴퓨터와 통신을 위한 SSH 설치 및 키 생성 sudo apt-get install ssh ssh-keygen –t rsa cat ~/.ssh.id_rsa.pub >> ~/.ssh/authorized_keys 본인 아이피 확인 ifconfig 통신 시 편리함을 위해 아이피에 별명 추가 sudo gedit /etc/hosts 아래 내용 추가 192.168.xxx.100 courseMaster 192.168.xxx.101 courseSlave

실 습! 실습할 내용 Hadoop 설치 웹 브라우저를 이용하여 Hadoop 바이너리 다운로드 실 습! 실습할 내용 Hadoop 설치 웹 브라우저를 이용하여 Hadoop 바이너리 다운로드 hadoop.apache.org -> Releases -> Mirror site -> http 미러 중 하나 접속 -> hadoop-1.2.1 폴더로 이동 -> hadoop-1.2.1.tar.gz 다운로드

실 습! 실습할 내용 Hadoop 설치 압축 해제할 파일 생성 다운받은 파일 이동 압축 해제 실 습! 실습할 내용 Hadoop 설치 압축 해제할 파일 생성 mkdir binary 다운받은 파일 이동 mv ~/Downloads/hadoop-1.2.1.tar.gz ~/binary/ 압축 해제 cd ~/binary tar xvzf hadoop-1.2.1.tar.gz 폴더 이름을 짧게 수정하기 위해 소프트링크 생성 ln –s hadoop-1.2.1 hadoop Hadoop 임시 파일과 데이터를 저장하기 위한 폴더 생성 mkdir ~/binary/course/binary/hadoop/dfs mkdir ~/binary/course/binary/hadoop/dfs/name mkdir ~/binary/course/binary/hadoop/dfs/data mkdir ~/binary/course/binary/hadoop/tmp

실 습! 실습할 내용 Hadoop 설치 Hadoop 환경 설정을 변경해야할 파일 리스트 hadoop-env.sh 실 습! 실습할 내용 Hadoop 설치 Hadoop 환경 설정을 변경해야할 파일 리스트 hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slave

실 습! 실습할 내용 Hadoop 설치 hadoop-env.sh 설정 실 습! 실습할 내용 Hadoop 설치 hadoop-env.sh 설정 gedit ~/binary/hadoop/conf/hadoop-env.sh 파일에 아래 내용 추가 export HADOOP_HOME=/home/course/binary/hadoop 주석 제거 (앞의 #제거) export HADOOP_LOG_.... export HADOOP_SLAVES…. 주석 제거 및 내용 수정 (앞의 #제거) export JAVA_HOME =/usr/lib/jvm/java-7-openjdk-i386/

실 습! 실습할 내용 Hadoop 설치 core-site.xml 설정 실 습! 실습할 내용 Hadoop 설치 core-site.xml 설정 gedit ~/binary/hadoop/conf/core-site.xml <property> <name>fs.default.name</name> <value>hdfs://courseMaster:54310</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/course/binary/hadoop/tmp</value> </property>

실 습! 실습할 내용 Hadoop 설치 hdfs-site.xml 설정 실 습! 실습할 내용 Hadoop 설치 hdfs-site.xml 설정 gedit ~/binary/hadoop/conf/hdfs-site.xml <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.name.dir</name> <value>/home/course/binary/hadoop/dfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/course/binary/hadoop/dfs/data</value> </property>

실 습! 실습할 내용 Hadoop 설치 mapred-site.xml 설정 실 습! 실습할 내용 Hadoop 설치 mapred-site.xml 설정 gedit ~/binary/hadoop/conf/mapred-site.xml <property> <name>mapred.job.tracker</name> <value>courseMaster:54311</value> </property>

실 습! 실습할 내용 Hadoop 설치 hadoop-env.sh 설정 실 습! 실습할 내용 Hadoop 설치 hadoop-env.sh 설정 gedit ~/binary/hadoop/conf/masters courseMaster gedit ~/binary/hadoop/conf/slaves courseSlave

실 습! 실습할 내용 Hadoop 설치 VM 종료 후 VM 메모리를 1기가로 줄임 VM 폴더를 복사 실 습! 실습할 내용 Hadoop 설치 VM 종료 후 VM 메모리를 1기가로 줄임 VM 폴더를 복사 복사한 폴더의 이름은 BigDataShortCourse2로 설정 VMware Player에서 새로운 VM을 불러옴 이름이 같으니 복잡하므로 맨 위에 새로 생긴 VM의 이름을 BigDataShortCourse2로 수정 두 VM을 실행함 VM 실행 후 Terminal을 실행하여 각각의 VM에서 아래 명령어를 수행 ifconfig courseMaster와 courseSlave 각각의 IP와 맞는지 확인 BigDataShortCourse VM의 터미널에서 아래 명령어 실행 ~/binary/hadoop/bin/hadoop namenode –format ~/binary/hadoop/bin/start-all.sh

실 습! 실습할 내용 Hadoop 설치 VM 종료 후 VM 메모리를 1기가로 줄임 VM 폴더를 복사 실 습! 실습할 내용 Hadoop 설치 VM 종료 후 VM 메모리를 1기가로 줄임 VM 폴더를 복사 복사한 폴더의 이름은 BigDataShortCourse2로 설정 VMware Player에서 새로운 VM을 불러옴 이름이 같으니 복잡하므로 맨 위에 새로 생긴 VM의 이름을 BigDataShortCourse2로 수정 두 VM을 실행함 VM 실행 후 Terminal을 실행하여 각각의 VM에서 아래 명령어를 수행 ifconfig courseMaster와 courseSlave 각각의 IP와 맞는지 확인 BigDataShortCourse VM의 터미널에서 아래 명령어 실행 ~/binary/hadoop/bin/hadoop namenode –format ~/binary/hadoop/bin/start-all.sh 접속허용을 물어보는 질문에는 yes로 대답

실 습! 실습할 내용 Hadoop 설치 VM 종료 후 VM 메모리를 1기가로 줄임 VM 폴더를 복사 실 습! 실습할 내용 Hadoop 설치 VM 종료 후 VM 메모리를 1기가로 줄임 VM 폴더를 복사 복사한 폴더의 이름은 BigDataShortCourse2로 설정 VMware Player에서 새로운 VM을 불러옴 이름이 같으니 복잡하므로 맨 위에 새로 생긴 VM의 이름을 BigDataShortCourse2로 수정 두 VM을 실행함 VM 실행 후 Terminal을 실행하여 각각의 VM에서 아래 명령어를 수행 ifconfig courseMaster와 courseSlave 각각의 IP와 맞는지 확인 BigDataShortCourse VM의 터미널에서 아래 명령어 실행 ~/binary/hadoop/bin/hadoop namenode –format ~/binary/hadoop/bin/start-all.sh 접속허용을 물어보는 질문에는 yes로 대답 설치 확인 localhost:50030, localhost:50070 접속해보기

실 습! Wordcount 입력된 문서에 ‘특정’ 단어가 몇 번 나왔을까? 사람이 샘을 한다면 아래와 같을 것 실 습! Wordcount 입력된 문서에 ‘특정’ 단어가 몇 번 나왔을까? 사람이 샘을 한다면 아래와 같을 것 파일을 읽어오고 각 줄을 훑어보며 특정 단어가 나왔는지를 확인 단어가 나왔다면 횟수를 세어나감 컴퓨터에게 이 일을 시키려면 아무것도 모르는 사람을 다루듯이 파일이 ‘어느 경로’에 있으니 그 파일을 프로그램으로 불러올 것임 단어의 등장 횟수를 기록해둘 공간을 확보 파일의 처음부터 끝까지 한 줄씩 읽어서 각 줄에 특정 단어가 나왔는지 확인하고 단어가 나왔다면 아까 확보해둔 공간에 횟수를 하나 늘려서 기록함 파일 끝까지 읽었다면 세어나간 횟수를 출력함

실 습! Wordcount 입력된 문서에 ‘특정’ 단어가 몇 번 나왔을까? 실 습! Wordcount 입력된 문서에 ‘특정’ 단어가 몇 번 나왔을까? 컴퓨터에게 이 일을 시키려면 아무것도 모르는 사람을 다루듯이 파일이 ‘어느 경로’에 있으니 그 파일을 프로그램으로 불러올 것임 단어의 등장 횟수를 기록해둘 공간을 확보 파일의 처음부터 끝까지 한 줄씩 읽어서 각 줄에 특정 단어가 나왔는지 확인하고 단어가 나왔다면 아까 확보해둔 공간에 횟수를 하나 늘려서 기록함 파일 끝까지 읽었다면 세어나간 횟수를 출력함

실 습! Wordcount 입력된 문서에 ‘특정’ 단어가 몇 번 나왔을까? 직접 생성해보자! 실 습! Wordcount 입력된 문서에 ‘특정’ 단어가 몇 번 나왔을까? 직접 생성해보자! shortcourse 패키지 우 클릭 -> New -> Class 클래스 이름 : Wordcount 아래 main 함수 생성 클릭

실 습! Wordcount 입력된 문서에 ‘특정’ 단어가 몇 번 나왔을까? 직접 생성해보자!

실 습! Wordcount Advanced 입력된 문서에 각 명사가 몇 번 나왔을까? 이렇게 생각해보자 실 습! Wordcount Advanced 입력된 문서에 각 명사가 몇 번 나왔을까? 이렇게 생각해보자 문장을 읽는 부분에서 JSON 형태니까 변환하고, 형태소 분석을 진행한 후에 명사만 추출하고 각 명사에 대해 숫자를 각각 따로 세어주면 되지 않을까? 컴퓨터에게 이것을 시킨다면? 1. 각 명사의 출현횟수를 저장할 공간을 생성 2. JSON 문자열을 객체로 변환 3. 객체의 본문 내용을 가지고 와서 형태소 분석 4. 형태소 분석한 결과를 이용하여 명사만 추출 5. 출현횟수를 저장할 공간에서 이번 명사가 처음 등장한 것이면 명사와 1을 넣어주고 이미 등장한 적이 있다면 그 전에 등장한 횟수를 가지고 와서 명사와 이전 횟수에 1을 더한 횟수를 넣어줌

실 습! Wordcount Advanced on Hadoop 입력된 문서에 각 명사가 몇 번 나왔을까? 실 습! Wordcount Advanced on Hadoop 입력된 문서에 각 명사가 몇 번 나왔을까? 이번 작업의 특징을 먼저 잡아내자 단어 별로 횟수를 세는 것 (Hashtable의 Key가 무엇이었던가) 단어를 Key로 한다면 MR Framework가 자동으로 키는 모아주니까 좀 더 쉽게 횟수를 샐 수 있음 Map에서는 앞의 2, 3, 4를 진행하고 각 단어를 Key로, Value를 1로 하여 Reduce로 전송 Reduce에서는 같은 Key끼리 묶여 있으므로 Value를 전부 더하면 해당 단어가 출현한 횟수가 됨

THANKS