How Hadoop Works HDFS Shell haddop fs Java
- Slides: 37
How Hadoop Works 박영택 컴퓨터학부
HDFS 접근 방법 § Shell 커맨드 라인을 사용: haddop fs § Java API § Ecosystem 프로젝트 ‐Flume ‐ network sourc로 부터 데이터 수집 ‐Sqoop ‐ HDFS와 RDBMS 사이의 데이터 전송 ‐Hue ‐ Web 기반의 interactive UI로 browse, upload, download, file view 등이 가능
Example: Storing and Retrieving Files (1)
Example: Storing and Retrieving Files (2)
Example: Storing and Retrieving Files (3)
Example: Storing and Retrieving Files (4)
HDFS Name. Node Availability § Name. Node daemon은 반드시 항상 실행되고 있어야 함 ‐Name. Node가 중단되면, 클러스터는 접근이 불가능 § High Availability mode (in CDH 4 and later) ‐ 2개의 Name. Node : Active와 Standby § Classic mode ‐ 1개의 Name. Node ‐또 다른 “helper” node는 Secondary. Name. Node ‐ backup이 목적이 아니며, 장애 발생 시 Name. Node를 대신하는 것이 불가능 ‐ Name. Node를 복구 할 수 있는 정보를 제공
Hadoop Server roles Clients Data Storage Jobs Data Analytics Jobs HDFS Map Reduce Job Tracker Name Node Data Node & Task. Tracker Task Data Node & Task Tracker Data Node && Data Task Tracker Data Node & Task Tracker . . . Secondary Name Node Masters Data Node & Task Tracker Slaves Data Node & Task Tracker
맵퍼 예제: Upper Case Mapper § 대문자로 바꾸기(pseudo-code): Let map(k, v) = emit(k. to. Upper(), v. to. Upper()) (‘foo’, ‘bar’) -> (‘FOO’, ‘BAR’) (‘foo’, ‘other’) -> (‘FOO’, ‘OTHER’) (‘baz’, ‘more data’) -> (’BAZ’, ‘MORE DATA’)
맵퍼 예제: Filter Mapper § 입력값의 Value가 소수인 경우에만 Key/Value 쌍 출력(pseudo-code): Let map(k, v) = if (is. Prime(v)) then emit(k, v) (‘foo’, 7) -> (‘foo’, 7) (‘baz’, 10) -> nothing
리듀서 예제 : Sum Reducer § 각 중간 키 값과 관련있는 모든 값들을 합 (pseudo-code) let reduce(k, vals) = sum = 0 foreach int i in vals: sum += i emit(k, sum) (’bar', [9, 3, -17, 44]) -> (’bar’. 39) (’foo', [123, 100, 77]) -> (’foo', 300)
리듀서 예제 : Identity Reducer § Identity 리듀서 는 매우 흔하다. (pseudo-code) let reduce(k, vals) = foreach v in vals: emit(k, v) ('bar', [123, 100, 77]) -> ('bar', 123), ('bar', 100), ('bar', 77) ('foo', [9, 3, -17, 44]) -> ('foo', 9), ('foo', 3), ('foo', -17), ('foo', 44)
맵리듀스 예제: Word Count § 큰 Input 데이터에서 나타나는 각 단어의 개수를 세는 것 ‐Word Count 는 맵리듀스 프로그래밍에서 ‘Hello world’ 와 같다. map(String input_key, String input_value) foreach word w in input_value: emit(w, 1) reduce(String output_key, Iterator<int> intermediate_vals) set count = 0 foreach v in intermediate_vals: count += v emit(output_key, count)
맵리듀스 예제: Word Count (cont’d) § 맵퍼의 Input (3414, 'the cat sat on the mat') (3437, 'the aardvark sat on the sofa') § 맵퍼로 부터의 Output ('the', 1), ('cat', 1), ('sat', 1), ('on', 1), ('the', 1), ('mat', 1), ('the', 1), ('aardvark', 1), ('sat', 1), ('on', 1), ('the', 1), ('sofa', 1)
- Shell cleanliness shell soundness shell texture shell shape
- Firmness of the yolk and freedom from yolk defects
- Hdfs latency
- Hadoop i/o
- Hadoop distribution
- Mongodb hadoop connector java example
- Hdfs
- Hdfs full form
- Cern dfs
- Apache marathon latency
- Hdfs kubernetes
- Hadoop fs mkdir
- Gfs vs hdfs
- Hairong kuang
- Cloudera
- Safety at street works and road works a code of practice
- Jess rule engine
- Java expert system shell
- Java expert system shell
- Recursion in java
- Perbedaan java swing dan awt
- Import java.io.* in java
- Import java util scanner
- Java 讀檔
- Import java.awt.event.*;
- Public class
- Java import java.util.*
- Java import java.util.*
- Java compiler translates java source code into
- Java thread import
- Java applet swing
- Java.util.random
- Rmi javatpoint
- Java import java.io.*
- Hadoop parallel world
- Facebook hadoop
- Hadoop
- Hadoop matrix multiplication