Hadoop 김연왕 2007745012.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

7 월 12 일 실습 StockQuoteClient.java MarketClient.java.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
캡스톤 프로젝트(자바) 입출력.
네트워크 프로그래밍 및 실습.
자바 5.0 프로그래밍.
CHAP 22. 블루투스.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
제14장 동적 메모리.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
최윤정 Java 프로그래밍 클래스 상속 최윤정
Ch.07-5 xml-rpc 사용하기 김상엽.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
10장 예외 Lab 10-1.
Hadoop 2.완전 분산 처리.
파일 입출력에 사용되는 자바 클래스들 JDK 라이브러리의 파일을 다루는 클래스들 파일의 내용을 읽고 쓰는 클래스들
JAVA 언어로 배우는 디자인 패턴 입문 chap. 1-2.
Lesson 3. 입출력과 제어문.
7장 배열 ②.
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 9. 예외처리.
Lesson 6. 형변환.
Hadoop 김연왕
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Chap08 다중 스레드 8.1 스레드 개요 8.2 Thread 클래스와 스레드 생명주기 8.3 스레드 생성과 사용
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
Hadoop 김연왕
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
주소록 프로그램.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
명품 JAVA Essential.
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
자바 5.0 프로그래밍.
C#.
I/O&socket통신 POWERPOINT & GROUP STUDY 한재희 김상훈 최기람 황인준 이어진.
7장 인터페이스와 추상 클래스.
Method & library.
자바응용.
Lesson 4. 수식과 연산자.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
영상처리 실습 인공지능연구실.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Power Java 제11장 상속.
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
JA A V W. 06.
맵리듀스 Yonsei University 2nd Semester, 2014 Sanghyun Park
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
[ 단원 04 ] 반복과 배열.
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
MIDP 네트워크 프로그래밍 ps lab 김윤경.
발표자 : 이지연 Programming Systems Lab.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
JSP Programming with a Workbook
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
7 생성자 함수.
20 XMLHttpRequest.
Presentation transcript:

Hadoop 김연왕 2007745012

Hadoop 예제 (데이터쓰기) FileSystem 클래스는 파일을 생성하기 위한 다수의 메소드를 가지고있다. 생성할 파일을 Path로 입력받아 쓰려고하는 출력 스트림을 FSDataOutputStream으로 반환받는 방식이다. Public FSDataOutputStream create(Path f) throws IOException 이 메소드는 기존의 파일을 강제로 덮어쓰기,파일의 복제 계수, 파일 쓰기의 버퍼 크기, 파일의 블록 크기, 파일 권한에 해당하는 오버로드 메소드 버전을 지원한다. 64KB의 데이터 패킷이 데이터 노드 파이프라인에 쓰일때마다 하둡에 의해 progress()메소드가 호출되고, 그때마다 마침표를 프린트하여 진행상황을 보고한다.(보고방식은 특별히 API에 지정되지 않았기 떄문에 하둡의 향후 버전에서 변경될 수 있다. 단지 API에 뭔가 일어나고 있다는 추측을 할수 있다. 2 / 12

Hadoop 예제 (데이터쓰기) import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.util.Progressable; public class FileCopyWithProgress { public static void main(String[] args) throws Exception { String localSrc = args[0]; String dst = args[1]; InputStream in = new BufferedInputStream(new FileInputStream(localSrc)); Configuration conf = new Configuration(); 3 / 12

Hadoop 예제 (데이터쓰기) FileSystem fs = FileSystem.get(URI.create(dst),conf); OutputStream out = fs.create(new Path(dst), new Progressable() { public void progress() { System.out.print("."); } }); IOUtils.copyBytes(in,out,4096,true); 현재 , 다른 하둡 파일시스템은 쓰는 동안에 progress()를 호출하지 않는다. 향후에 보겠지만, 진행상황은 맵리듀스 응용프로그램에서 중요하다. 4 / 12

Hadoop 예제 (파일 리스팅) FileSystem은 디렉터리를 생성하기 위한 메소드를 제공한다. Public boolean mkdirs(Path f) throws IOException 성공한다면 true를 반환한다. Create()를 호출한 파일쓰기는 모든 부모 디렉터리들을 자동으로 생성해 주기 떄문에 대개는 디렉터리를 명시적으로 생성할 필요가 없다. 디렉터리의 내용물을 리스트할 필요가 있을때 FileSystem의 listStatus()메소드로는 다음과 같은 것이 있다. Public FileStatus[] listStatus(Path f) throws IOException Public FileStatus[] listStatus(Path f, PathFilter filter) throws IOException Public FileStatus[] listStatus(Path[] files) throws IOException Public FileStatus[] listStatus(Path[] files, PathFilter filter) throws IOException 인자가 파일이면 , 길이가 1인 FIleStatus객체에 대한 하나의 배열을 반환 인자가 디렉터리면, 그 디렉터리에 포함된 파일과 디렉터리를 나타내기 위하여 0이상의 FIleStatus 개체를 반환한다. 5 / 12

Hadoop 예제 (파일 리스팅) import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.Path; public class ListStatus { public static void main (String[] args) throws Exception { String uri = args[0]; Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(URI.create(uri), conf); Path[] paths = new Path[args. length]; for(int i=0; i<paths.length; i++) { paths[i] = new Path (args[i]); } FileStatus[] status= fs.listStatus(paths); Path[] listedPaths = FileUtil.stat2Paths(status); for(Path p : listedPaths) { System.out.println(p); }}} 6 / 12

Hadoop 예제 (파일 리스팅) 경로 집합에 대한 디렉터리 리스트의 합집합을 찾기 위하여 사용될 수 있다. 7 / 12

Hadoop 예제 (데이터흐름) 파일 읽기 해부 1단계: DistributedFileSystem의 인스턴스에 해당하는 FileSystem 객체의 open()을 호출하여 읽기 원하는 파일을 연다. 2단계: 블록의 위치를 파악하기 위해 RPC를 사용하여 네임노드를 호출한다. 3단계: 클라이언트는 해당 스트림에 대해 read()를 호출한다. 4단계: 클라이언트는 스트림에 대해 반복적으로 read()를 호출하고, 데이터는 데이터노드로 부터 전송된다. 5단계: 블록의 끝에 이르면, DFSInputStream은 데이터노드로의 연결을 닫고, 다음 블록을 위해 가장 적합한 네임노드를 찾는다. 6단계: 읽기가 끝나면, 클라이언트는 FSDataInputStream에서 close()를 호출한다. 8 / 12

Hadoop 예제 (데이터흐름) 파일 쓰기 상세 1단계:클라이언트는 DistributedFileSystem의 create()를 호출하여 파일을 생성한다. 2단계:파일시스템의 네임스페이스에 새로운파일을 생성하기위해 네임노드로 하나의 RPC를 호출한다. 3단계:클라이언트가 데이터를 쓸떄 DFSOutputStream은 그 데이터를 패킷으로 쪼개서 데이터 큐라고 불리는 내부 큐에 쓴다. 4단계:DataStreamer는 패킷을 파이프라인에 있는 첫 번째 데이터 노드로 전달한다. 두번째 데이터노드는 그 패킷을 저장하고 파이프라인의 세번째 데이터 노드로 전달한다. 5단계:하나의 패킷은 파이프라인에 있는 데이터 노드로 부터 모두 승인 되었을 때에만 승인 큐로부터 제거된다. 6단계:클라이언트는 데이터쓰기를 완료할때, 그 스트림으로 close()를 호출한다. 9 / 12

감사합니다.