빅데이터공부하기60

스트리밍

 

- 하둡은 자바이외의 언어로 MapReduce 프로그램을 작성가능하게 해주는 API제공

: 하둡패키지의 일부로 제공되는 contrib / streaming / hadoop-streming-1.0.3.jar을 사용

 

- Mapper task 혹은 reducer task는 mapper 혹은 reducer 스크립트를 자식프로세스로 실행하고 표준 입출력을 통해 통신을 수행

 

- 텍스트 프로세싱에 적합

: 텍스트 라인 하나가 결국 하나의 입력 레코드로 취급됨. 이것의 해석은 mapper에 달림

: Mapper의 출력이나 Reducer의 입출력은 모두 tab을 키와 밸류간의 delimiter로 사용. tab 이외의 문자도 사용가능(configurable)

: 이는 내부적으로 디폴트로 자바의 TextlnputFormat과 TextOutputFormat을 사용하기 때문

 

- Reducer의 경우 입력키에 대해 같은 값을 갖는 밸류리스트가 한라인으로 한번에 넘어오는 것이 아니라 Flatten되어 개별 쌍이 넘어옴

: reduce(k, [v1, v2, v3])이 아니라 "reduce(k1, v1), reduce(k1, v2), reduce(k1, v3)"의 형태가 됨

 

- 단순 셀유틸리티들로 Streaming을 쉽게 테스트가능

: cat 입력파일 |your_mapper_script|sort|your_reducer_script

 

- 카운터의 경우는 stderr로 특별히 포맷된 문자를 출력하면 가능.

: Python에서의 예 : sys.stdrr.write("reporter:counter.그룹이름, 카운터이름, 카운터증가수\n")

 

- 자바에서 쓸 수 있는 거의 모든 기능들이 Streaming에서도 가능

: Combiner, Partitioner, IdentityReducer 등등..

 

 

 

JAVA공부하기140

Variable Naming Convention

 

상수가 아닌 인스턴스 변수, 클래스 변수 이름

: 소문자로 시작하는 명사(혹은 축약된 명사)

: 이름속에 포함된 각 단어는 (첫 번째 단어를 제외하고) 대문자로 시작

 

 

final 변수(기본 자료형일 경우)

: 모두 대문자

: 이름속에 포함된 각 단어

: 사이는 '_' 를 삽입

 

 

지역변수, 매개변수

: 의미있는 잛은 이름

: n i, j, k, m, n은 integer 임시변수용 / c, d, e 는 character 임시변수용으로 많이 쓰임

: 의미를 잃어버리느니 차라리 길게 쓴다. i,j 같은 건 충분히 의미가 있다.(루프용)

 

JAVA공부하기 139

Method Naming Convention

 

메소드 이름

- 소문자로 시작하는 동사

- 이름 속에 포함된 각 단어는(첫 번째 단어를 제외하고) 대문자로 시작

- 자료형 T인 v라는 이름의 속성을 접근하기 위한 메소드 이름

 

 

Take, pick 등은 의미가 유사하더라도 사용하지 않는다.

 

 

JAVA공부하기 138

Class Naming Convention

 

클래스 이름

: 대문자로 시작하는 명사

(필요한 경우 명사 앞에 형용사로 꾸미기도 한다.)

: 이름 속에 포함된 각 단어 또한 대문자로 시작

: URL이나 HTML처럼 잘 알려진 약자가 아니면 사용하지 않는다

 

 

인터페이스 이름

: 대문자로 시작하는 명사 혹은 형용사

: 이름속에 포함된 각 단어 또한 대문자로 시작

: able로 끝나는 인터페이스 이름의 의미는 이 인터페이스를 구현할 경우 ~~ 할 수 있다는 뜻이다.

즉 Runnable 인터페이스를 구현한 클래스는 Run(실행)할 수 있는 클래스다.

 

 

 

 

 

 

JAVA공부하기 137

Package Naming Convention

 

패키지 이름의 이름 짓기 관례

- 널리 쓰이는 패키지인 경우

: 자신이 속한 조직의 인터넷 도메인 이름을 뒤집은 이름을 사용하여 패키지 이름 구성

: 부서, 프로젝트, 컴퓨터, 로긴 이름 등을 부가해서 패키지 이름을 만들 수 있다.

 

 

- 지역적으로만 사용하는 패키지인 경우

: 소문자로 시작

: java. 및 javax.는 자바 표준 패키지에만 사용되도록 예약되어 있음

 

 

 

 

JAVA공부하기 136

Naming Convention이란?

 

Code Convention

: 소프트웨어 제작 비용의 80%가 유지보수에 소요된다.

: 일반적으로 소프트웨어는 원 프로그래머에 의해 유지보수되는 경우는 드물다.

: 코드 컨벤션은 소프트웨어의 가독성을 높여주고, 엔지니어가 새 코드를 쉽고 자세히 이해할 수 있도록해준다.

 

Naming Convention

: Code Convention중 이름 짓기에 관련된 것들

: Class, Method, Member Variable 이름 같은 것이 일정한 형태를 띄고 있어야 이게 뭐 하는 것인지 알아내기 쉽다.

: 익숙한 것이 눈에 잘 들어옴

: AA라는 class보다 Students과 같은 class가 목적을 쉽게 알 수 있다.

 

Code Convention의 종류

: Sun의 Code Conventions for the Java Programming :

: http://java.sun.com/docs/codeconv/

: MS의 헝가리안 표기법 : C, C++코딩 시 사용

 

 

 

JAVA 공부하기135

자바 아카이브 프로그램:jar (JDK1.1)

 

사용법

- jar {ctx} {vfm0 M} [jar-file] [manifest-file] files...

 

명령행 옵션(필수)

-  -t: JAR 파일 목록추출(table)

-  -x: JAR 파일로부터 구성파일 추출(extract)

-  -c: JAR 파일생성

 

명령행 옵션(생략가능)

-  -f: JAR 파일 이름(jar-file)이 명령행에 주어짐

-  -o: zip 압축을 하지않고 jar 파일 생성(디폴트는 압축)

-  -m: manifest-file파일로부터 manifest파일 생성

-  -M: manifest 파일을 jar 파일속에 만들지 않음

-  -v: 프로그램 수행 중 자세한 정보를 보여줌

 

명령행에 주어진 파일 이름이 디렉토리인 경우 재귀적으로 처리

 

CALSSPATH에 JAR파일사용

 

jar cvf MyApplication.jar -C

C:\java\workspace\package1\shape\

 

JAVA공부하기 134

자바 아카이브 파일 _ Java Archive, JAR

 

- 여러 파일을 하나의 파일 내에 포함시키는 zip 포맷파일

: 확장자만 zip으로 바꾸면 winzip으로 열림

: 관련된 자료를 1개의 파일로 유지, 디스크 조각화 감소

: 네트워크 전송 시 전송 시간 개선

: 클래스 탐색 경로에 JAR 파일 이름 포함

 

- 특징

: 파일 묶기 : 여러 개의 파일을 묶어 하나의 JAR로 유지

: 파일 압축

: 파일 오류 검사

: 포함된 파일에 대한 정보

: 디지털 서명

 

 

 

+ Recent posts