Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
์‹ค์‹œ๊ฐ„ ๋น… ๋ฐ์ดํ„ฐ ๊ธฐ์ˆ  ํ˜„ํ™ฉ ๋ฐ
Daum ํ™œ์šฉ ์‚ฌ๋ก€ ์†Œ๊ฐœ
์œค์„์ฐฌ
๋‹ค์Œ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜
channy@daumcorp.com
Agenda
Daum์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ๊ธฐ์ˆ 
โ€“ ๋Œ€์šฉ๋Ÿ‰ ์Šคํ† ๋ฆฌ์ง€ ์ œ๊ณต (Tenth)
โ€“ ํญ์ฆํ•˜๋Š” ์†Œ์…œ ๋ฐ์ดํ„ฐ (Santa/Wcache)

์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๊ธฐ์ˆ  ์†Œ๊ฐœ ๋ฐ ๋™ํ–ฅ
โ€“ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋ฐ SQL on Hadoop ๊ธฐ์ˆ  ์†Œ๊ฐœ

Daum์˜ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ํ™œ์šฉ ์‚ฌ๋ก€
โ€“ ๋ฏธ๋””์–ด ๋‹ค์Œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€
โ€“ ๋‹ค์Œํƒ‘ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€
์˜›๋‚  ์ด์•ผ๊ธฐ
Daum์ด ์ง๋ฉดํ–ˆ๋˜ ๋‘

๊ฐ€์ง€ ๋ฌธ์ œ

๋น…๋ฐ์ดํ„ฐ ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์€
๋„์ „์  ํ™˜๊ฒฝ์˜ ๊ฒฐ๊ณผ!
1. ๋Œ€์šฉ๋Ÿ‰ ์Šคํ† ๋ฆฌ์ง€ ์ œ๊ณต

๋ช…์‹ค ์ƒ๋ถ€ํ•œ

๊ตญ๋‚ด ์ตœ๋Œ€
์ €์žฅ์šฉ๋Ÿ‰
์ œ๊ณต ์ค‘

per User

2004

2006

2012
How to? Tenth(2005) ํ”„๋กœ์ ํŠธ

๋Œ€๋ถ€๋ถ„ ์ฒจ๋ถ€ ํŒŒ์ผ์€ 30์ผ์ด ์ง€๋‚˜๋ฉด ์•ˆ๋ณธ๋‹ค?
์˜ค๋ž˜๋œ ํŒŒ์ผ์€ ๊ฐ’์‹ผ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•ด ๋‘๊ณ 
์‚ฌ์šฉ์ž๊ฐ€ ์›ํ• ๋•Œ ๋นจ๋ฆฌ ์ฐพ์•„์ฃผ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?
โ€ข ์™ธ๋ถ€ ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€ ๊ธฐ์ˆ 
๏ƒ˜
๏ƒ˜
๏ƒ˜

Google GFS (2003)
Yahoo HDFS (2007)
NHN OwFS (2010)

๊น€๋‚จํฌ(2008), Tenth: Daum์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ์†Œ๊ฐœ
http://www.platformday.com/2008/files/tenth-daum.pdf
Tenth vs. HDFS
Tenth๋Š” ํ•œ๋ฉ”์ผ, ์นดํŽ˜ ์ฒจ๋ถ€ ํŒŒ์ผ ๋“ฑ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์ €๋ ดํ•˜๊ฒŒ ์ €์žฅํ•˜
๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ 2005๋…„ ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ
โ€“ 2006๋…„ ๋ผ์ด์ฝ”์Šค๋ฉ”์ผ, ์นดํŽ˜ ๋„์ž…
โ€“ 2007๋…„ ํ•œ๋ฉ”์ผ ๊ธฐ๊ฐ€ ์šฉ๋Ÿ‰ ๋„์ž…
โ€“ 2009๋…„ ๋™์˜์ƒ ์—…๋กœ๋“œํŒœ ๋„์ž…
โ€“ 2010๋…„ ๋‹ค์Œ ํด๋ผ์šฐ๋“œ ๋„์ž…

2013 ํ˜„์žฌ, ํŒŒ์ผ 800์–ต๊ฐœ(Dual Backup), 30ํŽ˜ํƒ€๋ฐ”์ดํŠธ (Zipped)
Tenth

๋น„๊ต

HDFS

2005

๊ฐœ๋ฐœ ์‹œ์ž‘

2006

C++

๊ตฌํ˜„ ์–ธ์–ด

Java

์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜
์Šคํ† ๋ฆฌ์ง€ ์ฒ˜๋Ÿผ ์ด์šฉ ๊ฐ€๋Šฅ

์ด์šฉ ๋ชฉ์ 

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ ์ €์žฅ ์šฉ
๋„๋กœ ํ™œ์šฉ

๋‹ค์ค‘ (MySQL์ด์šฉ)

๋„ค์ž„ ๋…ธ๋“œ

์‹ฑ๊ธ€

1~4MB (fixed chunks)

ํŒŒ์ผ ํ˜•ํƒœ

64MB (fixed blocks)

๋ฏธ์ง€์›

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

์ง€์›ํ•จ
2. ํญ์ฆํ•˜๋Š” ์†Œ์…œ ๋ฐ์ดํ„ฐ

์ด›๋ถˆ์ง‘ํšŒ ํ›„ ์ˆ˜ ์‹ญ๋งŒ๋ช…์ด ๋™์‹œ์— ๊ธ€์„ ์“ฐ๋ฉด?
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)๋Š” ๊ณผ๋„ํ•œ ์“ฐ๊ธฐ(์ˆ˜์ •)๋ฅผ
ํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

์œค์„์ฐฌ(2008), ๋Œ€ํ†ต๋ น ํƒ„ํ•ต ์ฒญ์›์œผ๋กœ ๋ณธ ์•„๊ณ ๋ผ์˜ ๊ธฐ์ˆ ์  ๋„์ „
http://blog.creation.net/260
How to? ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์บ์‹œ
โ‘  ๊ธ€ ์กฐํšŒ์ˆ˜๋ฅผ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ์— ๋ชจ์•„ ๋‘์—ˆ๋‹ค๊ฐ€
์–ด๋Š ์ •๋„ ๋ชจ์ด๋ฉด ํ•œ๊บผ๋ฒˆ์— ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์–ด๋–จ๊นŒ?

์ตœ๋ฒ”๊ท (2008), EHCache๋ฅผ ์ด์šฉํ•œ Gaia ์บ์‹œ ๊ตฌํ˜„,
http://javacan.tistory.com/123

โ‘ก DB ์•ž์— ๋ฐ์ดํ„ฐ ์บ์‹œ ์„œ๋ฒ„๋ฅผ ๋‘๋ฉด ์–ด๋–จ๊นŒ?
Pizza(2002)

Santa(2008)

Wcache(2010)

ํšŒ์‚ฌ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ธํ•˜์šฐ์Šค ๋ฏธ๋“ค์›จ์–ด๋กœ JDBC ๋ณ‘๋ชฉํ•ด
๊ฒฐ, ๋ฐ์ดํ„ฐ ์บ์‹œ ์„œ๋ฒ„ ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ์บ์‹œ ์„œ๋ฒ„ ํŒœ ๋“ฑ์œผ๋กœ ์ง„ํ™”.
Twitter๋„ ๋‹ค๋ฅด์ง€ ์•Š์•˜๋‹ค!

์ „ ์„ธ๊ณ„ ์‚ฌ๋žŒ๋“ค์ด ํ•จ๊ป˜ ํ† ๋ก ํ•˜๋ฉด ์–ด๋–ป
๊ฒŒ ๋ ๊นŒ? ๋ผ๋Š” ๋”œ๋ ˆ๋งˆ์— ๋น ์ง ์žฆ์€ ์žฅ์• 

์œค์„์ฐฌ(2009), ํŠธ์œ„ํ„ฐ์˜ ์žฅ์•  ๊ทน๋ณต ์ด์•ผ๊ธฐ
http://channy.creation.net/blog/714
๋ฐ์ดํ„ฐ ํญ์ฆ ์‹œ๋Œ€์˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ

@mdennis, datastax
๋น…๋ฐ์ดํ„ฐ๋ž€?
์ตœ๊ทผ BigData ๊ธฐ์ˆ  ๋™ํ–ฅ
๋น„๊ด€๊ณ„ํ˜•(Non-releational)

์‹œ๊ฐํ™”
D3js
Pentaho

Hadoop
Horton
Cloudera
MapR
Intel
EMC

๊ด€๊ณ„ํ˜•(Relational)

์‹ค์‹œ๊ฐ„
Storm/Shark
Apache S4/Kafka
Apache Drill
Apache Tazo

Teradata
Aster
EMC
Greenplum

IBM InfoSphere
HP Vertica
SAP Hana Oracle
SAP

Cloudera Impala
Google BigQuery

Oracle

IBMDB2

NewSQL

NoSQL
ํ‚ค/๊ฐ’
Redis
Membrain
BerkeleyDB

CouchBase
Cassandra

SQLServer

๋ฌธ์„œ๊ธฐ๋ฐ˜
CouchDB
MongoDB
๋น…ํ…Œ์ด๋ธ”
HyperTable
Hbase

Data as a Service
AppEngine
Amazon RDS
SimpleDB
SQL Azure
๊ทธ๋ž˜ํ”„
FlockDB
Neo4j

Drizzle
MySQL Cluster
NimbusDB
ScaleBase
VoltDB

Modified ยฉ Inforchimps. 2012
Hadoop ๊ธฐ์ˆ  batch analytics

REDUCE

MAP

Input

โ€ฆ

๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ์ชผ๊ฐ ๋‹ค

โ€ฆ
๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋‚˜๋ˆ„์–ด์„œ ํ•ด๊ฒฐํ•œ๋‹ค
๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„์„œ ํ•ฉ์นœ๋‹ค
Output

โ€ฆ
Hadoop์˜ ์žฅ๋‹จ์ 
์žฅ์  : ๊ธฐ์กด ๋ถ„์„ ๊ธฐ์ˆ ์— ๋น„ํ•ด ์ €๋ ดํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฐ€๋Šฅ
โ€“ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ผ ๋ณด๋Š” ๊ด€์ ์˜ ์ฐจ์ด (์ €๋ ดํ•œ ์ฒ˜๋ฆฌ ๋น„์šฉ)
โ€“ ์ƒ˜ํ”Œ๋ง์ด ํ•„์š” ์—†์Œ (๋Œ€์šฉ๋Ÿ‰ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ)
โ€“ ์šด์˜ ๋น„์šฉ์ด ์ ์Œ (์ธํ”„๋ผ ์šด์˜์ด ๊ด€๋ฆฌ ๊ฐ€๋Šฅ)
โ€“ ๋ถ„์„๋„๊ตฌ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋…๋ฆฝ์ ์ž„
โ€“ ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ (์˜คํ”ˆ ์†Œ์Šค ์ง€์›)

๋‹จ์ : ๋ถ„์„ ๋ฐฉ์‹์˜ ๋ณ€ํ™” ๋ฐ ๋‚ด์žฌํ™” ๋น„์šฉ
โ€“ ๊ฐœ๋…์˜ ๋ณ€ํ™”๊ฐ€ ํ•„์š” (Map/Reduce์‹ ์‚ฌ๊ณ  ์ „ํ™˜ ํ•„์š”)
โ€“ Hadoop์€ ์ง„ํ™” ์ค‘(๋ฒค๋” ๋ฐฐํฌํŒ ์‚ฌ์šฉ ๊ธฐํšŒ ๋Š˜์–ด๋‚จ)
โ€“ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ๋งŽ์Œ(๋ฒ„์ „ ํ˜ธํ™˜์„ฑ์ด ๋‚ฎ์€ ํŽธ)
โ€“ ์žฅ์• ์— ๋Œ€ํ•œ ๋Œ€๋น„ ํ•„์š”(๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋„คํŠธ์› ๊ด€๋ จ ์‹œํ–‰์ฐฉ์˜ค)
โ€“ ์‹ค์‹œ๊ฐ„ ๋ถ„์„์— ๋Œ€ํ•œ ํ•„์š”์„ฑ (๋Œ€์•ˆ ๊ธฐ์ˆ  ์„ ํƒ์  ์‚ฌ์šฉ)
NoSQL Not Only SQL

Yahoo! Research(2010), Cloud Serving Benchmark
http://research.yahoo.com/files/ycsb-v4.pdf

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ๋ฐ ์กฐํšŒ ์‹œ,
๊ธฐ์กด RDBMS์— ๋น„ํ•ด ๋น ๋ฅธ ์„ฑ๋Šฅ ์ œ๊ณต
๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•œ ๋Œ€๋Ÿ‰ ์ด๋ฒคํŠธ ๋ฐ ๋กœ๊ทธ
๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์กฐํšŒ ์‹œ ์œ ์šฉ
NoSQL์˜ ์žฅ๋‹จ์ 
์žฅ์ : ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์กฐํšŒ ๋Šฅ๋ ฅ
โ€“ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ์„œ ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜๋งŒ ๋Š˜๋ฆฌ๋ฉด ๋จ(ํ™•์žฅ์„ฑ๊ณผ ๊ฐ€์šฉ์„ฑ)
โ€“ Key-Value ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๋ฏ€๋กœ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(Schemaless)
โ€“ ๋ฐ์ดํ„ฐ ์ธ๋ฑ์‹ฑ์œผ๋กœ ๋น ๋ฅธ ์‘๋‹ต ๊ฐ€๋Šฅ(๊ณ ์„ฑ๋Šฅ)์žฅ์  : ๊ธฐ์กด ๋ถ„์„ ๊ธฐ์ˆ ์— ๋น„ํ•ด
์ €๋ ดํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฐ€๋Šฅ

๋‹จ์ : ๋ถ„์„ ๋ฐฉ์‹์˜ ๋ณ€ํ™” ๋ฐ ๋‚ด์žฌํ™” ๋น„์šฉ
โ€“ ์Šคํ‚ค๋งˆ ์„ค๊ณ„, ์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ, ๋ฉ”๋ชจ๋ฆฌ/IO ๋“ฑ์— ์‹œํ–‰์ฐฉ์˜ค
โ€“ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ(integrity)์„ ์œ„ํ•œ ์ฒ˜๋ฆฌ ๋น„์šฉ์ด ํผ
โ€ข ํŠธ๋žœ์žญ์…˜๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•˜์ง€ ์•Š์Œ
โ€ข ์žฅ์• ์‹œ ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ์— ๋“œ๋Š” ๋…ธ๋ ฅ์ด ๋งŽ์ด ๋“ฆ

โ€“ Schemaless๋ผ์„œ Join ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ ์‚ฌ์šฉ ์–ด๋ ค์›€
โ€ข MongoDB ๊ฐ™์€ ๊ฒฝ์šฐ, ๋น ๋ฅธ ์ธ๋ฑ์‹ฑ ๋ฐ SQL ์นœํ™”์ ์ธ ์ง€์› ๊ฐ€๋Šฅ
Realtime

Event-streaming

๋ถ„์„์— ํฌํ•จ ๋˜์ง€ ๋ชปํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ํŒŒ์•…
์˜คํ”ˆ์†Œ์Šค
๊ธฐ์ˆ ๋ช…

๊ตฌํ˜„ ๋ฐฉ์‹

๊ตฌํ˜„ ์–ธ์–ด

๋ฌธ์„œํ™”

์ฆ‰์‹œ Rule
์ถ”๊ฐ€ ๊ธฐ๋Šฅ

์„ฑ์ˆ™๋„

์ปค๋ฎค
๋‹ˆํ‹ฐ

Scaleout
๋ฐฉ์‹

Esper

์„ ์–ธ์  SQL
Like

Java

๋งค์šฐ ์ข‹์Œ

๊ฐ€๋Šฅ

๋†’์Œ

์ค‘๊ฐ„

Droools
Fusion

์„ ์–ธ์  SQL
Like ๋ฐ Rule

Java

์ข‹์Œ

๊ฐ€๋Šฅ

๋†’์Œ

์ž‘์Œ

Storm

Scaleup
๋ฐฉ์‹

Job ์„ค๊ณ„

Cloujure

์žˆ์Œ

Zoopkeeper
์ด์šฉ

์ค‘๊ฐ„

๋น ๋ฅด๊ฒŒ
์„ฑ์žฅ์ค‘

Apache S4

Job ์„ค๊ณ„

Java

ํ‰๊ท 

Zoopkeeper
์ด์šฉ

๋‚ฎ์Œ

์ค‘๊ฐ„

Apache
Kafka

Job ์„ค๊ณ„

Java

์ข‹์Œ

Zoopkeeper
์ด์šฉ

์ค‘๊ฐ„

์ž‘์Œ

๊น€๋ณ‘๊ณค(2013), ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ•
http://www.youtube.com/watch?v=HmVegCGWbsU
์‹ค์‹œ๊ฐ„ ๋ถ„์„์˜ ์–ด๋ ค์›€
โ€“ Hadoop์€ ๋ฐฐ์น˜(Batch) ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋ผ ์‹ค์‹œ๊ฐ„์— ์ ํ•ฉํ•˜์ง€ ์•Š์Œ
โ€“ NoSQL์€ ๋ฐ์ดํ„ฐ ์ €์žฅ๋งŒ ๋น ๋ฅด์ง€ ๋ถ„์„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ ์–ด๋ ค์›€

Storm

https://github.com/nathanmarz/storm/wiki

โ€“ Twitter(๊ตฌ, BackType)์—์„œ ์ง์ ‘ ๊ฐœ๋ฐœํ•ด์„œ ์˜คํ”ˆ์†Œ์Šคํ™”
โ€“ Data Stream์„ ๋ฐ”๋ผ๋ณด๊ณ  ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๋กœ์ง์„ ๊ตฌํ˜„
โ€“ ๋กœ์ง(Topology)๋ฅผ Storm Cluster๋กœ ๋˜์ง€๋ฉด ์ ์ ˆํžˆ ์‹คํ–‰ํ•ด์„œ ๋ถ„์„

Data Stream

NoSQL

Data Stream

Node.js

Spout

Bolt
SQL on Hadoop

๋ถ„์„ ์ „์ฒ˜๋ฆฌ ์ž‘์—… ์—†์ด ๋ฐ์ดํ„ฐ ํ˜„ํ™ฉ ํŒŒ์•… ํ•„์š” ์‹œ
โ€“ ์ธ๋ฉ”๋ชจ๋ฆฌ/ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ถ„์‚ฐ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ ์ฟผ๋ฆฌ ์—”์ง„
โ€“ Map/Reduce๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์งˆ์˜ ์กฐ๊ฑด์ผ ๋•Œ ํ™œ์šฉ

์ฃผ์š” ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ์ˆ 
โ€“ Impala: Cloudera Hadoop ๋ฐฐํฌํŒ ๋ฐ HiveQL ํ˜ธํ™˜
โ€“ Apache Tajo: HDFS ์ง€์› ๋ฐ ํ‘œ์ค€ SQL ํ˜ธํ™˜
โ€“ Apache Dremel: MapR์—์„œ ์ฃผ๋„ํ•˜๋ฉฐ, ์•„์ง ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„

์ƒ์šฉ ์„œ๋น„์Šค: Google BigQuery
โ€“ Dremel ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ ์ƒ์šฉ ์„œ๋น„์Šค

Cloudera Impala
Horton Hawq
MapR Stinger
Apache Tajo
Apache Drill
Berkeley Stack
์ฃผ์š” ํŠน์ง•
โ€“
โ€“

์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ์ƒˆ๋กœ์šด ์˜คํ”ˆ์†Œ์Šค ๋ถ„์„ ๊ธฐ์ˆ ๋กœ ํŠน์ •
๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ, Haoop์— ๋น„ํ•ด ์ˆ˜ ์‹ญ๋ฐฐ ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„
๊ธฐ์กด Hadoop ๊ธฐ์ˆ ๊ณผ ํ˜ธํ™˜์„ฑ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ์ง€์›,
But ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์ง€๋Š” ํ•œ๊ณ„ ์žˆ์Œ

Spark http://spark-project.org
โ€“
โ€“
โ€“

์Šคํ† ๋ฆฌ์ง€ In/Out ๋Œ€์‹  ์ฃผ์š” ๋ฐ์ดํ„ฐ์…‹์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค
์„œ Iteration์— ์ตœ์ ํ™” ์‹œํ‚ด (๋จธ์‹ ๋Ÿฌ๋‹/๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰)
Interactive Data Mining์— ๋Œ€ํ•œ ์ตœ์ ํ™”
(R/Excel/Python ๋“ฑ)
๊ธฐ์กด HDFS ํ˜ธํ™˜ ๋ฐ Scala, Java, Python ๊ธฐ๋ฐ˜ ํ”„๋กœ
๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅ

Spark Streaming
โ€“

์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ถ„์„ ๊ธฐ๋Šฅ ์ œ๊ณต

Shark http://shark.cs.berkeley.edu/
โ€“

HiveQL ๊ธฐ๋ฐ˜์˜ ๋ถ„์„ ๊ธฐ๋Šฅ ์ œ๊ณต

UC BERKELEY
์š”์•ฝํ•˜๋ฉดโ€ฆ
Hadoop = Function (All Data)
โ€“ Cloudera, Horton, MapR, Intel, EMC

Realtime Event = Function (Data Stream)
โ€“ Storm, S4, Kafla

SQL on Hadoop = Query (All Data)
โ€“ Impala, Dremel, Tajo, BigQuery

NoSQL = Query (Data Store)
โ€“ Mongodb, Hbase, Cassandraโ€ฆ
SQL on Hadoop 100๋ฐฐ, 200๋ฐฐ ์„ฑ๋Šฅ์˜ ์ง„์‹ค
http://jaso.co.kr/480

ํ˜„์žฌ SQL-On-Hadoop ์ง„์˜์—์„œ ์ œ์‹œํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์„ฑ๋Šฅ ์ˆ˜์น˜๋Š” ์ผ๋ฐ˜์ ์ธ ์งˆ
์˜๋‚˜ ์ „์ฒด ์งˆ์˜์— ๋Œ€ํ•ด์„œ ํ‰๊ท  ๋ช‡ ๋ฐฐ ๋น ๋ฅด๋‹ค๊ฐ€ ์•„๋‹Œ ์ž์‹ ๋“ค์ด ์œ ๋ฆฌํ•œ ์กฐ๊ฑด

์—์„œ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ๋งŒ์„ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ•„์ž์˜ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ
๋ฅผ ๋ณด๋ฉด ๋Œ€๋žต ํ‰๊ท  3 ~ 5๋ฐฐ ์ •๋„์ด๊ณ  ์งˆ์˜์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ˆ˜ ์‹ญ๋ฐฐ ์ •๋„ ๋น ๋ฅผ ์ˆ˜
๋„ ์žˆ๊ณ , ๋” ๋Š๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค.

์ž์‹ ์˜ ๋ฐ์ดํ„ฐ ์†์„ฑ๊ณผ ์งˆ์˜ ์†์„ฑ์— ๋งž๋Š” ํ”Œ๋žซํผ์„ ์„ ํƒํ•˜๋Š” ์•ˆ
๋ชฉ์ด ํ•„์š”ํ•  ๋•Œ์ด๋‹ค. ๋ฏธ๊ตญ์‚ฐ ๋ฒค๋”, ๋ธ”๋กœ๊ทธ, ์–ธ๋ก ์—์„œ ์ œ์‹œํ•œ ์ˆ˜์น˜๋ผ๊ณ  ๋งน์‹ ํ•˜
๋Š” ๊ฒƒ์€ ๊ธˆ๋ฌผ์ด๋‹ค.
SQL on Hadoop 100๋ฐฐ, 200๋ฐฐ ์„ฑ๋Šฅ์˜ ์ง„์‹ค (๊น€ํ˜•์ค€) ์ค‘์—์„œโ€ฆ
Daum ๋น…๋ฐ์ดํ„ฐ ํ™œ์šฉ ์‚ฌ๋ก€
โ€ข

โ€“
โ€“
โ€“
โ€“
โ€“
โ€“

โ€ข

์‡ผํ•‘ ํ•˜์šฐ ์ƒํ’ˆ ํด๋ฆญ ๋ถ„์„ ์‚ฌ๋ก€
๋‹ค์Œ Top ํ† ํ”ฝ ๋ถ„์„ ๋ฐ ์ถ”์ฒœ ์„œ๋น„์Šค
UCC ๋ฌธ์„œ์˜ ์ŠคํŒธ ์œ ์ € ํ•„ํ„ฐ๋ง
์‚ฌ๋ฌผ ๊ฒ€์ƒ‰ ์ด๋ฏธ์ง€ ์—ญ์ƒ‰์ธ
์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ํ…์ŠคํŠธ ๋ถ„์„
๋ชจ๋ฐ”์ผ ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ๋ณ„ ๋งค์ฒด ๋ถ„์„ ๋“ฑ

์—ฐ๊ตฌ ๊ฐœ๋ฐœ ์‚ฌ๋ก€
โ€“
โ€“

์ด๋ฏธ์ง€ ์œ ์‚ฌ์„ฑ ๋งค์นญ ๋ถ„์„
๋Œ€์šฉ๋Ÿ‰ ์‹œ๋งจํ‹ฑ ์›น ๊ฒ€์ƒ‰ ์—”์ง„ ๊ฐœ๋ฐœ

โ€ข

๋งˆ์ด ์•„๊ณ ๋ผ
๊ฒ€์ƒ‰ ๊ด‘๊ณ  ๋…ธ์ถœ ์ตœ์ ํ™”
์ตœ๊ทผ ๋ฐฉ๋ฌธ ์นดํŽ˜ ์ €์žฅ
์‚ฌ๋‚ด ์บ์‹œ ์„œ๋ฒ„(Redis)
์‚ฌ๋‚ด Git ์ €์žฅ์†Œ(Redis)

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (Hbase)
โ€ข
โ€ข
โ€ข
โ€ข

๊ฒ€์ƒ‰ ์—”์ง„ ์ƒ‰์ธ ๋ฌธ์„œ ์ €์žฅ
์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ ์ €์žฅ
๋กœ๊ทธ์ธ ๋กœ๊ทธ ์ €์žฅ
์นดํŽ˜ ๋ฐฉ๋ฌธ ๋กœ๊ทธ ์ €์žฅ

์œค์„์ฐฌ(2012), Daum ๋น… ๋ฐ์ดํ„ฐ ๊ธฐ์ˆ  ํ™œ์šฉ ์‚ฌ๋ก€
http://www.slideshare.net/Channy/daums-hadoop-usecases
http://devon.daum.net/2012/session/o1

์ด๋ฏธ ๊ณต์œ  ๋งŽ์ด ํ–ˆ์–ด์š”!!
์ฐพ์•„๋ณด์„ธ์š”~~

์„œ๋น„์Šค ์ ์šฉ (MongoDB/์นด์‚ฐ๋“œ๋ผ)
โ€ข
โ€ข
โ€ข
โ€ข
โ€ข

์ „์‚ฌ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ํ†ต๊ณ„ ๋ถ„์„
๊ด‘๊ณ  ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€๊ฒŸํŒ…
๊ฒ€์ƒ‰ ํ’ˆ์งˆ ๋žญํ‚น ๋ถ„์„ ๋ฐ ๊ฐœ์„ 
๊ด‘๊ณ  ๋ฐ ํด๋ฆญ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€์ผ“ํŒ…
์นดํŽ˜ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์นดํŽ˜ ์ถ”์ฒœ
๊ฒŒ์ž„ ์„œ๋ฒ„ ๋กœ๊ทธ ๋ถ„์„ ๋“ฑ

๋ฐ์ดํ„ฐ ๋ถ„์„ ์‚ฌ๋ก€
โ€“
โ€“
โ€“
โ€“
โ€“
โ€“

โ€ข

โ€ข

๋กœ๊ทธ ๋ถ„์„ ์‚ฌ๋ก€

๊น€์šฉ์šฐ, ์ด์„ ํ˜ธ(2012), Hadoop ์‹ค์ „ ์‚ฌ์šฉ๊ธฐ
http://devon.daum.net/2012/session/o2
์œ ์‘์„ญ, ์ตœ์ค€๊ฑด(2012), ์•Œ๊ณ ์“ฐ์ž! NoSQL
http://devon.daum.net/2012/session/o3
์•ˆ์„ธ์ค€(2012), ์‚ฝ์งˆ๋กœ ์ผ๊ถˆ๋‚ธ ์นด์‚ฐ๋“œ๋ผ ์‚ฌ์šฉ๊ธฐ
http://devon.daum.net/2012/session/o4

์œค์„์ฐฌ(2012), Daum ๋น… ๋ฐ์ดํ„ฐ ๋น„์ง€๋‹ˆ์Šค ๋ถ„์„ ์‚ฌ๋ก€
http://www.slideshare.net/Channy/daum-bigdata-analytics-usecases
Daum ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€
โ€ข

๋กœ๊ทธ ๋ถ„์„ ์‚ฌ๋ก€
โ€“
โ€“
โ€“
โ€“
โ€“
โ€“

โ€ข

๋ฐ์ดํ„ฐ ๋ถ„์„ ์‚ฌ๋ก€
โ€“
โ€“
โ€“
โ€“
โ€“
โ€“

โ€ข

์ „์‚ฌ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ํ†ต๊ณ„ ๋ถ„์„
๊ด‘๊ณ  ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€๊ฒŸํŒ…
๊ฒ€์ƒ‰ ํ’ˆ์งˆ ๋žญํ‚น ๋ถ„์„ ๋ฐ ๊ฐœ์„ 
๊ด‘๊ณ  ๋ฐ ํด๋ฆญ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€์ผ“ํŒ…
์นดํŽ˜ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์นดํŽ˜ ์ถ”์ฒœ
๊ฒŒ์ž„ ์„œ๋ฒ„ ๋กœ๊ทธ ๋ถ„์„ ๋“ฑ

์‡ผํ•‘ ํ•˜์šฐ ์ƒํ’ˆ ํด๋ฆญ ๋ถ„์„ ์‚ฌ๋ก€
๋‹ค์Œ Top ํ† ํ”ฝ ๋ถ„์„ ๋ฐ ์ถ”์ฒœ ์„œ๋น„์Šค
UCC ๋ฌธ์„œ์˜ ์ŠคํŒธ ์œ ์ € ํ•„ํ„ฐ๋ง
์‚ฌ๋ฌผ ๊ฒ€์ƒ‰ ์ด๋ฏธ์ง€ ์—ญ์ƒ‰์ธ
์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ํ…์ŠคํŠธ ๋ถ„์„
๋ชจ๋ฐ”์ผ ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ๋ณ„ ๋งค์ฒด ๋ถ„์„ ๋“ฑ

์—ฐ๊ตฌ ๊ฐœ๋ฐœ ์‚ฌ๋ก€
โ€“
โ€“

์ด๋ฏธ์ง€ ์œ ์‚ฌ์„ฑ ๋งค์นญ ๋ถ„์„
๋Œ€์šฉ๋Ÿ‰ ์‹œ๋งจํ‹ฑ ์›น ๊ฒ€์ƒ‰ ์—”์ง„ ๊ฐœ๋ฐœ

โ€ข

์„œ๋น„์Šค ์ ์šฉ (MongoDB/์นด์‚ฐ๋“œ๋ผ)
โ€ข
โ€ข
โ€ข
โ€ข
โ€ข

โ€ข

๋งˆ์ด ์•„๊ณ ๋ผ
๊ฒ€์ƒ‰ ๊ด‘๊ณ  ๋…ธ์ถœ ์ตœ์ ํ™”
์ตœ๊ทผ ๋ฐฉ๋ฌธ ์นดํŽ˜ ์ €์žฅ
์‚ฌ๋‚ด ์บ์‹œ ์„œ๋ฒ„(Redis)
์‚ฌ๋‚ด Git ์ €์žฅ์†Œ(Redis)

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (Hbase)
โ€ข
โ€ข
โ€ข
โ€ข

๊ฒ€์ƒ‰ ์—”์ง„ ์ƒ‰์ธ ๋ฌธ์„œ ์ €์žฅ
์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ ์ €์žฅ
๋กœ๊ทธ์ธ ๋กœ๊ทธ ์ €์žฅ
์นดํŽ˜ ๋ฐฉ๋ฌธ ๋กœ๊ทธ ์ €์žฅ

โ€ข ์„œ๋น„์Šค ๋ถ„์„
โ€“ ๋ฏธ๋””์–ด ๋‹ค์Œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„
โ€“ ๋ชจ๋ฐ”์ผ/PCํƒ‘ ์‹ค์‹œ๊ฐ„ ๋ถ„์„

โ€ข ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
โ€“ Twitter ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ
Daum

๊ธฐ์ˆ  ํ™œ์šฉ ์‚ฌ๋ก€
์‹ค์‹œ๊ฐ„ ๋ถ„์„์ด ํ•„์š”ํ•  ๋•Œโ€ฆ
ํ™œ์šฉ ๋Œ€์ƒ ์˜์—ญ
โ€“ ์‡ผํ•‘๋ชฐ ์‚ฌ์ดํŠธ์˜ ์‚ฌ์šฉ์ž ํด๋ฆญ ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๊ฐœ์ธํ™”
โ€“ ์‚ฌ์šฉ์ž ์œ„์น˜ ์ •๋ณด ๊ธฐ๋ฐ˜ ๊ด‘๊ณ  ๋ฐ ์ถ”์ฒœ ๊ธฐ๋Šฅ
โ€“ ์‹œ์Šคํ…œ ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๋ณด์•ˆ ๊ฐ์‹œ
โ€“ ์ฐจ๋Ÿ‰ ์ถ”์  ๋ฐ ์œ„์น˜ ์ •๋ณด ์ˆ˜์ง‘์„ ์ด์šฉํ•œ ๋„๋กœ ๊ตํ†ต ์ƒํ™ฉ ํŒŒ์•…
โ€“ ์‚ฌ์šฉ์ž์˜ ์•ก์…˜ ์ˆ˜์ง‘์„ ์ด์šฉํ•œ ์ด์ƒ ํ–‰์œ„ ํƒ์ง€

๊ธฐํš์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ
โ€“ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ™”๋˜๋Š” ๋ชจ์Šต์„ ํ™”๋ฉด์—์„œ ๋ฐ”๋กœ ๋ณด๊ณ  ์‹ถ๋‹ค!
โ€“ ๊ฐ„๊ฒฐํ•œ ์ฐจํŠธ์™€ ์„ ํƒ ๋ฐ ์‹ค์‹œ๊ฐ„ ๋ณ€ํ™”๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค!

๊ธฐ์ˆ  ์š”๊ตฌ ์‚ฌํ•ญ
โ€“ ๋กœ๊ทธ ์ˆ˜์ง‘, ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋ฐ ์žฅ๊ธฐ ๋ถ„์„์„ ์œ„ํ•œ ์ €์žฅ์†Œ ํ•„์š”
โ€“ ์ฃผ๊ธฐ์  ์ฐจํŠธ ์ƒ์„ฑ ๋ฐ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ ํ•„์š”
1. ๋ฏธ๋””์–ด ๋‹ค์Œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€

๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํ˜„ํ™ฉ ํŒŒ์•…
โ€“ ์ด์Šˆ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ์ƒํ™ฉ ํŒŒ์•…์„ ์œ„ํ•œ ๊ด€๋ฆฌ ๋„๊ตฌ ์ œ๊ณต

๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํ˜„ํ™ฉ ํŒŒ์•…
โ€“ โ€˜๋‚˜๋Š”๊ฐ€์ˆ˜๋‹คโ€™, โ€˜KํŒ์Šคํƒ€โ€™ ๊ฐ™์€ ๋””์ง€ํ„ธ ๋ธŒ๋žœ๋“œ์— ๋Œ€ํ•œ ๋ณ€ํ™” ์ธก์ • ํ•„์š”
๋ฏธ๋””์–ด๋‹ค์Œ ์›”๊ฐ„ PV ํ˜„ํ™ฉ

ยฉ ์ฝ”๋ฆฌ์•ˆํด๋ฆญ(2013.10)
์„œ๋น„์Šค ๊ตฌํ˜„ ์‹œ ํ™œ์šฉ ๊ธฐ์ˆ 
Kestrel
โ€“ http://robey.github.io/kestrel/
โ€“ Blaine Cook์˜ "starling๏ผ‚์„ ๊ธฐ๋ฐ˜ํ•œ JVM ๋ถ„์‚ฐ ๋ฉ”์‹œ์ง€ ํ ์„œ๋ฒ„๋กœ
์„œ, memcached ๋ฐ thrift ํ”„๋กœํ† ์ฝœ์„ ์ง€์›

Storm
โ€“ https://github.com/nathanmarz/storm/wiki
โ€“ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹น

Redis
โ€“ http://redis.io/
โ€“ ๋””์Šคํฌ I/O ์—†์ด ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ in-memory key-value
store๋กœ์„œ ์ž„์‹œ ๋ถ„์„๊ฐ’์„ ์ €์žฅ

Cassandra
โ€“ http://cassandra.apache.org/
โ€“ ๋งŽ์ด ์ด์šฉ๋˜๋Š” NoSQL ์„œ๋ฒ„๋กœ์„œ ๋ถ„์„๊ฐ’์˜ ์˜๊ตฌ ์ €์žฅ์†Œ๋กœ์„œ, Hbase
๋‚˜ MySQL ๋“ฑ์ด ํ™œ์šฉ๋˜๊ธฐ๋„ ํ•จ
(1) ์ŠคํŠธ๋ฆฌ๋ฐ ๋กœ๊ทธ ์–ป๊ธฐ
์ฝ˜ํ…์ธ  ๋‹จ์œ„๋กœ ์ง์ ‘ ๋กœ๊ทธ ์ˆ˜์ง‘
(2) UV/PV ์˜ฌ๋ฆฌ๊ธฐ
PV/UV ์บ์‹œ ์ €์žฅ
(3) ๋ถ„์„ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์กฐํšŒ

Search, Aggregation, Ranking์„ ์œ„ํ•ด
์ง€๋‚œ 1๋ถ„๋™์•ˆ UV/PV ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋˜ ์ปจํ…์ธ ๋งŒ...
๋‰ด์Šค ๋‹จ์œ„๋ณ„ ์‹ค์‹œ๊ฐ„ ์กฐํšŒ ๊ฐ€๋Šฅ
๋‹ค์–‘ํ•œ ๋ถ„์„ ๊ธฐ๋Šฅ ์ œ๊ณต

๋ถ„ ๋‹จ์œ„ PV/UV ์กฐํšŒ
๊ธ‰๋“ฑ ์กฐํšŒ ๊ธฐ๋Šฅ

๊ธฐํš์ž๋ฅผ ์œ„ํ•œ ํฌ๋กฌ ํ™•์žฅ ๊ธฐ๋Šฅ

๋ถ„์„ ์กฐํšŒ API

์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ
(4) ์žฅ์•  ๋Œ€์‘
2. Daum Top ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€

๋‹ค์Œ PC์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์›น ์ฒซํ™”๋ฉด ์ฝ˜ํ…์ธ  ์•„์ดํ…œ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ”ฝ ํŒŒ์•…
์‚ฌ์šฉ์ž์—๊ฒŒ ๋งž๋Š” ์ฝ˜ํ…์ธ  ์ถ”์ฒœ ๋ฐ ํŒŒ๊ธ‰๋ ฅ ๋ถ„์„ ๊ฐ€๋Šฅ
3. Twitter ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ

Twitter, ํ‹ฐ์Šคํ† ๋ฆฌ๋กœ ๋ถ€ํ„ฐ ์˜ค๋Š” Stream Data ์ €์žฅ์†Œ
์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ์ธ๋ฑ์Šค๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ œ๊ณต
c.f. ๋ชจ๋ฐ”์ผ ์•ฑ ํฌ๋ž˜์‹œ ํ†ต๊ณ„
๋ชจ๋ฐ”์ผ ์•ฑ ๋””๋ฒ„๊น… ๋ฐฉ์‹
โ€“ ์‹ค์‹œ๊ฐ„์œผ๋กœ Crashing ๋ฐ
์ดํ„ฐ ์ˆ˜์ง‘ ํ•„์š”
(Storm/HBase?)
โ€ข WebView์—์„œ ๋‚˜๋Š” ์˜ค๋ฅ˜๋„
๋งŽ์Œ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ • ํ•„์š”

โ€“ ํŠน์ • ํฌ๋ž˜์‹œ์™€ ๊ด€๋ จ ๋ฒ„๊ทธ์—
๋Œ€ํ•œ ํ•™์Šต ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•จ
(Spark/Shark?)
โ€ข ๋ฒ„๊ทธ์™€ ํฌ๋ž˜์‰ฌ ์‚ฌ์ด์˜ ๊ด€๊ณ„

์ตœ์ข… ์‚ฌ์šฉ ๊ธฐ์ˆ 
โ€“ Hbase M/R

์˜ค๋ฒ„ ์—”์ง€๋‹ˆ์–ด๋ง์€ ๊ธˆ๋ฌผ!
์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๊ตฌ์ถ• ์‹œ ์œ ์˜ ์‚ฌํ•ญ
์ •๋ง ํ•„์š”ํ•œ๊ฐ€?
โ€“ Storm/S4 ๊ฐ™์€ ๊ธฐ์ˆ ์„ ๋„์ž… ์ „ ์ •๋ง ํ•„์š”ํ•œ์ง€ ํ™•์ธ ํ•ด์•ผ ํ•จ
โ€“ ์‹ค์‹œ๊ฐ„ ๋ถ„์„์€ ๋ช…ํ™•ํ•œ ์—…๋ฌด ์ •์˜๊ฐ€ ๋œ ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰ ํ•ด์•ผ ํ•จ
โ€“ ๊ธฐ์ˆ  ์„ ํƒ (Batch/Realtime/Query)์— ๋Œ€ํ•œ ์ดํ•ด ํŒŒ์•… ํ•„์š”

๊ณ ๋‚œ์„ ๊ฐ์˜คํ•ด๋ผ!
โ€“ ์ž˜ ์•Œ๋ ค์ง„ ์ผ€์ด์Šค๋Š” ๋งŽ์œผ๋‚˜ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๋‹ค ๋ณด๋ฉด ์–ด๋ ค์›€ ๋ด‰์ฐฉ
โ€“ ์‹œ์Šคํ…œ ์—”์ง€๋‹ˆ์–ด๋ง ์šด์˜ ๊ธฐ์ˆ  ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ(~98GB) ๊ธฐ๋ฐ˜ ์„œ
๋ฒ„ํŒœ ๋“ฑ์ด ํ•„์š”ํ•จ

์—ญ์‹œ ์˜คํ”ˆ ์†Œ์Šค!
โ€“ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ทœ๋ชจ์™€ ๋ฌธ์„œํ™” ์ผ€์ด์Šค ๋“ฑ์œผ๋กœ ์ง€์› ๊ฐ€๋Šฅํ•œ
์ง€ ํ™•์ธ ํ›„์— ์ง„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
References
1.

๊น€๋ณ‘๊ณค(2013), ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ•
โ€“

http://www.youtube.com/watch?v=HmVegCGWbsU

โ€“

http://readme.skplanet.com/?p=4605

2.

๊ถŒ๋™ํ›ˆ(2013), Hadoop์—์„œ์˜ ์‹ค์‹œ๊ฐ„ SQL ์งˆ์˜: Impala
โ€“

3.

http://helloworld.naver.com/helloworld/246342

๊น€์šฐ์Šน(2012), ์‹ค์‹œ๊ฐ„ ๋น… ๋ฐ์ดํ„ฐ(Real-time Big Data) ํ”„๋กœ์„ธ์‹ฑ ๋ง›๋ณด๊ธฐ
โ€“

4.

http://kimws.wordpress.com/2012/03/07/%EC%8B%A4%EC%8B%9C%EA%B0%84
-%EB%B9%85-%EB%8D%B0%EC%9D%B4%ED%84%B0real-time-big-data/

ํ•˜ํ˜ธ์ง„(2012), Storm๊ณผ Esper๋กœ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์ƒ˜ํ”Œ ์‚ฌ์šฉ๊ธฐ
โ€“

5.

http://mimul.com/pebble/default/2012/03/14/1331718971671.html

์‹ฌํƒ๊ธธ(2012), ์‹ค์‹œ๊ฐ„ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ธฐ์ˆ ๊ณผ ์ ์šฉ ์‚ฌ๋ก€
โ€“

http://www.ktcloudware.com/resources/platform/07.pdf
Daum์—๋Š”

๋ฐ์ดํ„ฐ๋„ ๋งŽ๊ณ  ์ „๋ฌธ๊ฐ€๋„ ๋งŽ์Šต๋‹ˆ๋‹ค!
http://recruit.daum.net
@channyun
channy@daumcorp.com

More Related Content

Realtime Big data Anaytics and Exampes of Daum (2013)

  • 1. ์‹ค์‹œ๊ฐ„ ๋น… ๋ฐ์ดํ„ฐ ๊ธฐ์ˆ  ํ˜„ํ™ฉ ๋ฐ Daum ํ™œ์šฉ ์‚ฌ๋ก€ ์†Œ๊ฐœ ์œค์„์ฐฌ ๋‹ค์Œ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ channy@daumcorp.com
  • 2. Agenda Daum์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ๊ธฐ์ˆ  โ€“ ๋Œ€์šฉ๋Ÿ‰ ์Šคํ† ๋ฆฌ์ง€ ์ œ๊ณต (Tenth) โ€“ ํญ์ฆํ•˜๋Š” ์†Œ์…œ ๋ฐ์ดํ„ฐ (Santa/Wcache) ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๊ธฐ์ˆ  ์†Œ๊ฐœ ๋ฐ ๋™ํ–ฅ โ€“ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋ฐ SQL on Hadoop ๊ธฐ์ˆ  ์†Œ๊ฐœ Daum์˜ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ํ™œ์šฉ ์‚ฌ๋ก€ โ€“ ๋ฏธ๋””์–ด ๋‹ค์Œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€ โ€“ ๋‹ค์Œํƒ‘ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€
  • 3. ์˜›๋‚  ์ด์•ผ๊ธฐ Daum์ด ์ง๋ฉดํ–ˆ๋˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ ๋น…๋ฐ์ดํ„ฐ ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์€ ๋„์ „์  ํ™˜๊ฒฝ์˜ ๊ฒฐ๊ณผ!
  • 4. 1. ๋Œ€์šฉ๋Ÿ‰ ์Šคํ† ๋ฆฌ์ง€ ์ œ๊ณต ๋ช…์‹ค ์ƒ๋ถ€ํ•œ ๊ตญ๋‚ด ์ตœ๋Œ€ ์ €์žฅ์šฉ๋Ÿ‰ ์ œ๊ณต ์ค‘ per User 2004 2006 2012
  • 5. How to? Tenth(2005) ํ”„๋กœ์ ํŠธ ๋Œ€๋ถ€๋ถ„ ์ฒจ๋ถ€ ํŒŒ์ผ์€ 30์ผ์ด ์ง€๋‚˜๋ฉด ์•ˆ๋ณธ๋‹ค? ์˜ค๋ž˜๋œ ํŒŒ์ผ์€ ๊ฐ’์‹ผ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•ด ๋‘๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ• ๋•Œ ๋นจ๋ฆฌ ์ฐพ์•„์ฃผ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ? โ€ข ์™ธ๋ถ€ ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€ ๊ธฐ์ˆ  ๏ƒ˜ ๏ƒ˜ ๏ƒ˜ Google GFS (2003) Yahoo HDFS (2007) NHN OwFS (2010) ๊น€๋‚จํฌ(2008), Tenth: Daum์˜ ๋Œ€์šฉ๋Ÿ‰ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ์†Œ๊ฐœ http://www.platformday.com/2008/files/tenth-daum.pdf
  • 6. Tenth vs. HDFS Tenth๋Š” ํ•œ๋ฉ”์ผ, ์นดํŽ˜ ์ฒจ๋ถ€ ํŒŒ์ผ ๋“ฑ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์ €๋ ดํ•˜๊ฒŒ ์ €์žฅํ•˜ ๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ 2005๋…„ ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ โ€“ 2006๋…„ ๋ผ์ด์ฝ”์Šค๋ฉ”์ผ, ์นดํŽ˜ ๋„์ž… โ€“ 2007๋…„ ํ•œ๋ฉ”์ผ ๊ธฐ๊ฐ€ ์šฉ๋Ÿ‰ ๋„์ž… โ€“ 2009๋…„ ๋™์˜์ƒ ์—…๋กœ๋“œํŒœ ๋„์ž… โ€“ 2010๋…„ ๋‹ค์Œ ํด๋ผ์šฐ๋“œ ๋„์ž… 2013 ํ˜„์žฌ, ํŒŒ์ผ 800์–ต๊ฐœ(Dual Backup), 30ํŽ˜ํƒ€๋ฐ”์ดํŠธ (Zipped) Tenth ๋น„๊ต HDFS 2005 ๊ฐœ๋ฐœ ์‹œ์ž‘ 2006 C++ ๊ตฌํ˜„ ์–ธ์–ด Java ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ์Šคํ† ๋ฆฌ์ง€ ์ฒ˜๋Ÿผ ์ด์šฉ ๊ฐ€๋Šฅ ์ด์šฉ ๋ชฉ์  ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ ์ €์žฅ ์šฉ ๋„๋กœ ํ™œ์šฉ ๋‹ค์ค‘ (MySQL์ด์šฉ) ๋„ค์ž„ ๋…ธ๋“œ ์‹ฑ๊ธ€ 1~4MB (fixed chunks) ํŒŒ์ผ ํ˜•ํƒœ 64MB (fixed blocks) ๋ฏธ์ง€์› ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์ง€์›ํ•จ
  • 7. 2. ํญ์ฆํ•˜๋Š” ์†Œ์…œ ๋ฐ์ดํ„ฐ ์ด›๋ถˆ์ง‘ํšŒ ํ›„ ์ˆ˜ ์‹ญ๋งŒ๋ช…์ด ๋™์‹œ์— ๊ธ€์„ ์“ฐ๋ฉด? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)๋Š” ๊ณผ๋„ํ•œ ์“ฐ๊ธฐ(์ˆ˜์ •)๋ฅผ ํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์œค์„์ฐฌ(2008), ๋Œ€ํ†ต๋ น ํƒ„ํ•ต ์ฒญ์›์œผ๋กœ ๋ณธ ์•„๊ณ ๋ผ์˜ ๊ธฐ์ˆ ์  ๋„์ „ http://blog.creation.net/260
  • 8. How to? ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์บ์‹œ โ‘  ๊ธ€ ์กฐํšŒ์ˆ˜๋ฅผ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ์— ๋ชจ์•„ ๋‘์—ˆ๋‹ค๊ฐ€ ์–ด๋Š ์ •๋„ ๋ชจ์ด๋ฉด ํ•œ๊บผ๋ฒˆ์— ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์–ด๋–จ๊นŒ? ์ตœ๋ฒ”๊ท (2008), EHCache๋ฅผ ์ด์šฉํ•œ Gaia ์บ์‹œ ๊ตฌํ˜„, http://javacan.tistory.com/123 โ‘ก DB ์•ž์— ๋ฐ์ดํ„ฐ ์บ์‹œ ์„œ๋ฒ„๋ฅผ ๋‘๋ฉด ์–ด๋–จ๊นŒ? Pizza(2002) Santa(2008) Wcache(2010) ํšŒ์‚ฌ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ธํ•˜์šฐ์Šค ๋ฏธ๋“ค์›จ์–ด๋กœ JDBC ๋ณ‘๋ชฉํ•ด ๊ฒฐ, ๋ฐ์ดํ„ฐ ์บ์‹œ ์„œ๋ฒ„ ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ์บ์‹œ ์„œ๋ฒ„ ํŒœ ๋“ฑ์œผ๋กœ ์ง„ํ™”.
  • 9. Twitter๋„ ๋‹ค๋ฅด์ง€ ์•Š์•˜๋‹ค! ์ „ ์„ธ๊ณ„ ์‚ฌ๋žŒ๋“ค์ด ํ•จ๊ป˜ ํ† ๋ก ํ•˜๋ฉด ์–ด๋–ป ๊ฒŒ ๋ ๊นŒ? ๋ผ๋Š” ๋”œ๋ ˆ๋งˆ์— ๋น ์ง ์žฆ์€ ์žฅ์•  ์œค์„์ฐฌ(2009), ํŠธ์œ„ํ„ฐ์˜ ์žฅ์•  ๊ทน๋ณต ์ด์•ผ๊ธฐ http://channy.creation.net/blog/714
  • 10. ๋ฐ์ดํ„ฐ ํญ์ฆ ์‹œ๋Œ€์˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ @mdennis, datastax
  • 12. ์ตœ๊ทผ BigData ๊ธฐ์ˆ  ๋™ํ–ฅ ๋น„๊ด€๊ณ„ํ˜•(Non-releational) ์‹œ๊ฐํ™” D3js Pentaho Hadoop Horton Cloudera MapR Intel EMC ๊ด€๊ณ„ํ˜•(Relational) ์‹ค์‹œ๊ฐ„ Storm/Shark Apache S4/Kafka Apache Drill Apache Tazo Teradata Aster EMC Greenplum IBM InfoSphere HP Vertica SAP Hana Oracle SAP Cloudera Impala Google BigQuery Oracle IBMDB2 NewSQL NoSQL ํ‚ค/๊ฐ’ Redis Membrain BerkeleyDB CouchBase Cassandra SQLServer ๋ฌธ์„œ๊ธฐ๋ฐ˜ CouchDB MongoDB ๋น…ํ…Œ์ด๋ธ” HyperTable Hbase Data as a Service AppEngine Amazon RDS SimpleDB SQL Azure ๊ทธ๋ž˜ํ”„ FlockDB Neo4j Drizzle MySQL Cluster NimbusDB ScaleBase VoltDB Modified ยฉ Inforchimps. 2012
  • 13. Hadoop ๊ธฐ์ˆ  batch analytics REDUCE MAP Input โ€ฆ ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ์ชผ๊ฐ ๋‹ค โ€ฆ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋‚˜๋ˆ„์–ด์„œ ํ•ด๊ฒฐํ•œ๋‹ค ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„์„œ ํ•ฉ์นœ๋‹ค Output โ€ฆ
  • 14. Hadoop์˜ ์žฅ๋‹จ์  ์žฅ์  : ๊ธฐ์กด ๋ถ„์„ ๊ธฐ์ˆ ์— ๋น„ํ•ด ์ €๋ ดํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฐ€๋Šฅ โ€“ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ผ ๋ณด๋Š” ๊ด€์ ์˜ ์ฐจ์ด (์ €๋ ดํ•œ ์ฒ˜๋ฆฌ ๋น„์šฉ) โ€“ ์ƒ˜ํ”Œ๋ง์ด ํ•„์š” ์—†์Œ (๋Œ€์šฉ๋Ÿ‰ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ) โ€“ ์šด์˜ ๋น„์šฉ์ด ์ ์Œ (์ธํ”„๋ผ ์šด์˜์ด ๊ด€๋ฆฌ ๊ฐ€๋Šฅ) โ€“ ๋ถ„์„๋„๊ตฌ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋…๋ฆฝ์ ์ž„ โ€“ ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ (์˜คํ”ˆ ์†Œ์Šค ์ง€์›) ๋‹จ์ : ๋ถ„์„ ๋ฐฉ์‹์˜ ๋ณ€ํ™” ๋ฐ ๋‚ด์žฌํ™” ๋น„์šฉ โ€“ ๊ฐœ๋…์˜ ๋ณ€ํ™”๊ฐ€ ํ•„์š” (Map/Reduce์‹ ์‚ฌ๊ณ  ์ „ํ™˜ ํ•„์š”) โ€“ Hadoop์€ ์ง„ํ™” ์ค‘(๋ฒค๋” ๋ฐฐํฌํŒ ์‚ฌ์šฉ ๊ธฐํšŒ ๋Š˜์–ด๋‚จ) โ€“ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ๋งŽ์Œ(๋ฒ„์ „ ํ˜ธํ™˜์„ฑ์ด ๋‚ฎ์€ ํŽธ) โ€“ ์žฅ์• ์— ๋Œ€ํ•œ ๋Œ€๋น„ ํ•„์š”(๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋„คํŠธ์› ๊ด€๋ จ ์‹œํ–‰์ฐฉ์˜ค) โ€“ ์‹ค์‹œ๊ฐ„ ๋ถ„์„์— ๋Œ€ํ•œ ํ•„์š”์„ฑ (๋Œ€์•ˆ ๊ธฐ์ˆ  ์„ ํƒ์  ์‚ฌ์šฉ)
  • 15. NoSQL Not Only SQL Yahoo! Research(2010), Cloud Serving Benchmark http://research.yahoo.com/files/ycsb-v4.pdf ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ๋ฐ ์กฐํšŒ ์‹œ, ๊ธฐ์กด RDBMS์— ๋น„ํ•ด ๋น ๋ฅธ ์„ฑ๋Šฅ ์ œ๊ณต ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•œ ๋Œ€๋Ÿ‰ ์ด๋ฒคํŠธ ๋ฐ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์กฐํšŒ ์‹œ ์œ ์šฉ
  • 16. NoSQL์˜ ์žฅ๋‹จ์  ์žฅ์ : ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์กฐํšŒ ๋Šฅ๋ ฅ โ€“ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ์„œ ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜๋งŒ ๋Š˜๋ฆฌ๋ฉด ๋จ(ํ™•์žฅ์„ฑ๊ณผ ๊ฐ€์šฉ์„ฑ) โ€“ Key-Value ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๋ฏ€๋กœ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(Schemaless) โ€“ ๋ฐ์ดํ„ฐ ์ธ๋ฑ์‹ฑ์œผ๋กœ ๋น ๋ฅธ ์‘๋‹ต ๊ฐ€๋Šฅ(๊ณ ์„ฑ๋Šฅ)์žฅ์  : ๊ธฐ์กด ๋ถ„์„ ๊ธฐ์ˆ ์— ๋น„ํ•ด ์ €๋ ดํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฐ€๋Šฅ ๋‹จ์ : ๋ถ„์„ ๋ฐฉ์‹์˜ ๋ณ€ํ™” ๋ฐ ๋‚ด์žฌํ™” ๋น„์šฉ โ€“ ์Šคํ‚ค๋งˆ ์„ค๊ณ„, ์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ, ๋ฉ”๋ชจ๋ฆฌ/IO ๋“ฑ์— ์‹œํ–‰์ฐฉ์˜ค โ€“ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ(integrity)์„ ์œ„ํ•œ ์ฒ˜๋ฆฌ ๋น„์šฉ์ด ํผ โ€ข ํŠธ๋žœ์žญ์…˜๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ฒ˜๋ฆฌ์— ์ ํ•ฉํ•˜์ง€ ์•Š์Œ โ€ข ์žฅ์• ์‹œ ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ์— ๋“œ๋Š” ๋…ธ๋ ฅ์ด ๋งŽ์ด ๋“ฆ โ€“ Schemaless๋ผ์„œ Join ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ ์‚ฌ์šฉ ์–ด๋ ค์›€ โ€ข MongoDB ๊ฐ™์€ ๊ฒฝ์šฐ, ๋น ๋ฅธ ์ธ๋ฑ์‹ฑ ๋ฐ SQL ์นœํ™”์ ์ธ ์ง€์› ๊ฐ€๋Šฅ
  • 17. Realtime Event-streaming ๋ถ„์„์— ํฌํ•จ ๋˜์ง€ ๋ชปํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ํŒŒ์•… ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์ˆ ๋ช… ๊ตฌํ˜„ ๋ฐฉ์‹ ๊ตฌํ˜„ ์–ธ์–ด ๋ฌธ์„œํ™” ์ฆ‰์‹œ Rule ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์„ฑ์ˆ™๋„ ์ปค๋ฎค ๋‹ˆํ‹ฐ Scaleout ๋ฐฉ์‹ Esper ์„ ์–ธ์  SQL Like Java ๋งค์šฐ ์ข‹์Œ ๊ฐ€๋Šฅ ๋†’์Œ ์ค‘๊ฐ„ Droools Fusion ์„ ์–ธ์  SQL Like ๋ฐ Rule Java ์ข‹์Œ ๊ฐ€๋Šฅ ๋†’์Œ ์ž‘์Œ Storm Scaleup ๋ฐฉ์‹ Job ์„ค๊ณ„ Cloujure ์žˆ์Œ Zoopkeeper ์ด์šฉ ์ค‘๊ฐ„ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅ์ค‘ Apache S4 Job ์„ค๊ณ„ Java ํ‰๊ท  Zoopkeeper ์ด์šฉ ๋‚ฎ์Œ ์ค‘๊ฐ„ Apache Kafka Job ์„ค๊ณ„ Java ์ข‹์Œ Zoopkeeper ์ด์šฉ ์ค‘๊ฐ„ ์ž‘์Œ ๊น€๋ณ‘๊ณค(2013), ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ• http://www.youtube.com/watch?v=HmVegCGWbsU
  • 18. ์‹ค์‹œ๊ฐ„ ๋ถ„์„์˜ ์–ด๋ ค์›€ โ€“ Hadoop์€ ๋ฐฐ์น˜(Batch) ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋ผ ์‹ค์‹œ๊ฐ„์— ์ ํ•ฉํ•˜์ง€ ์•Š์Œ โ€“ NoSQL์€ ๋ฐ์ดํ„ฐ ์ €์žฅ๋งŒ ๋น ๋ฅด์ง€ ๋ถ„์„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ ์–ด๋ ค์›€ Storm https://github.com/nathanmarz/storm/wiki โ€“ Twitter(๊ตฌ, BackType)์—์„œ ์ง์ ‘ ๊ฐœ๋ฐœํ•ด์„œ ์˜คํ”ˆ์†Œ์Šคํ™” โ€“ Data Stream์„ ๋ฐ”๋ผ๋ณด๊ณ  ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ โ€“ ๋กœ์ง(Topology)๋ฅผ Storm Cluster๋กœ ๋˜์ง€๋ฉด ์ ์ ˆํžˆ ์‹คํ–‰ํ•ด์„œ ๋ถ„์„ Data Stream NoSQL Data Stream Node.js Spout Bolt
  • 19. SQL on Hadoop ๋ถ„์„ ์ „์ฒ˜๋ฆฌ ์ž‘์—… ์—†์ด ๋ฐ์ดํ„ฐ ํ˜„ํ™ฉ ํŒŒ์•… ํ•„์š” ์‹œ โ€“ ์ธ๋ฉ”๋ชจ๋ฆฌ/ํŒŒ์ผ ๊ธฐ๋ฐ˜ ๋ถ„์‚ฐ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ ์ฟผ๋ฆฌ ์—”์ง„ โ€“ Map/Reduce๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์งˆ์˜ ์กฐ๊ฑด์ผ ๋•Œ ํ™œ์šฉ ์ฃผ์š” ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ์ˆ  โ€“ Impala: Cloudera Hadoop ๋ฐฐํฌํŒ ๋ฐ HiveQL ํ˜ธํ™˜ โ€“ Apache Tajo: HDFS ์ง€์› ๋ฐ ํ‘œ์ค€ SQL ํ˜ธํ™˜ โ€“ Apache Dremel: MapR์—์„œ ์ฃผ๋„ํ•˜๋ฉฐ, ์•„์ง ์ดˆ๊ธฐ ๊ฐœ๋ฐœ ๋‹จ๊ณ„ ์ƒ์šฉ ์„œ๋น„์Šค: Google BigQuery โ€“ Dremel ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ ์ƒ์šฉ ์„œ๋น„์Šค Cloudera Impala Horton Hawq MapR Stinger Apache Tajo Apache Drill
  • 20. Berkeley Stack ์ฃผ์š” ํŠน์ง• โ€“ โ€“ ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ์ƒˆ๋กœ์šด ์˜คํ”ˆ์†Œ์Šค ๋ถ„์„ ๊ธฐ์ˆ ๋กœ ํŠน์ • ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ, Haoop์— ๋น„ํ•ด ์ˆ˜ ์‹ญ๋ฐฐ ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„ ๊ธฐ์กด Hadoop ๊ธฐ์ˆ ๊ณผ ํ˜ธํ™˜์„ฑ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ์ง€์›, But ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์ง€๋Š” ํ•œ๊ณ„ ์žˆ์Œ Spark http://spark-project.org โ€“ โ€“ โ€“ ์Šคํ† ๋ฆฌ์ง€ In/Out ๋Œ€์‹  ์ฃผ์š” ๋ฐ์ดํ„ฐ์…‹์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค ์„œ Iteration์— ์ตœ์ ํ™” ์‹œํ‚ด (๋จธ์‹ ๋Ÿฌ๋‹/๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰) Interactive Data Mining์— ๋Œ€ํ•œ ์ตœ์ ํ™” (R/Excel/Python ๋“ฑ) ๊ธฐ์กด HDFS ํ˜ธํ™˜ ๋ฐ Scala, Java, Python ๊ธฐ๋ฐ˜ ํ”„๋กœ ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅ Spark Streaming โ€“ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ถ„์„ ๊ธฐ๋Šฅ ์ œ๊ณต Shark http://shark.cs.berkeley.edu/ โ€“ HiveQL ๊ธฐ๋ฐ˜์˜ ๋ถ„์„ ๊ธฐ๋Šฅ ์ œ๊ณต UC BERKELEY
  • 21. ์š”์•ฝํ•˜๋ฉดโ€ฆ Hadoop = Function (All Data) โ€“ Cloudera, Horton, MapR, Intel, EMC Realtime Event = Function (Data Stream) โ€“ Storm, S4, Kafla SQL on Hadoop = Query (All Data) โ€“ Impala, Dremel, Tajo, BigQuery NoSQL = Query (Data Store) โ€“ Mongodb, Hbase, Cassandraโ€ฆ
  • 22. SQL on Hadoop 100๋ฐฐ, 200๋ฐฐ ์„ฑ๋Šฅ์˜ ์ง„์‹ค http://jaso.co.kr/480 ํ˜„์žฌ SQL-On-Hadoop ์ง„์˜์—์„œ ์ œ์‹œํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์„ฑ๋Šฅ ์ˆ˜์น˜๋Š” ์ผ๋ฐ˜์ ์ธ ์งˆ ์˜๋‚˜ ์ „์ฒด ์งˆ์˜์— ๋Œ€ํ•ด์„œ ํ‰๊ท  ๋ช‡ ๋ฐฐ ๋น ๋ฅด๋‹ค๊ฐ€ ์•„๋‹Œ ์ž์‹ ๋“ค์ด ์œ ๋ฆฌํ•œ ์กฐ๊ฑด ์—์„œ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ๋งŒ์„ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ•„์ž์˜ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๋ฅผ ๋ณด๋ฉด ๋Œ€๋žต ํ‰๊ท  3 ~ 5๋ฐฐ ์ •๋„์ด๊ณ  ์งˆ์˜์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ˆ˜ ์‹ญ๋ฐฐ ์ •๋„ ๋น ๋ฅผ ์ˆ˜ ๋„ ์žˆ๊ณ , ๋” ๋Š๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค. ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ ์†์„ฑ๊ณผ ์งˆ์˜ ์†์„ฑ์— ๋งž๋Š” ํ”Œ๋žซํผ์„ ์„ ํƒํ•˜๋Š” ์•ˆ ๋ชฉ์ด ํ•„์š”ํ•  ๋•Œ์ด๋‹ค. ๋ฏธ๊ตญ์‚ฐ ๋ฒค๋”, ๋ธ”๋กœ๊ทธ, ์–ธ๋ก ์—์„œ ์ œ์‹œํ•œ ์ˆ˜์น˜๋ผ๊ณ  ๋งน์‹ ํ•˜ ๋Š” ๊ฒƒ์€ ๊ธˆ๋ฌผ์ด๋‹ค. SQL on Hadoop 100๋ฐฐ, 200๋ฐฐ ์„ฑ๋Šฅ์˜ ์ง„์‹ค (๊น€ํ˜•์ค€) ์ค‘์—์„œโ€ฆ
  • 23. Daum ๋น…๋ฐ์ดํ„ฐ ํ™œ์šฉ ์‚ฌ๋ก€ โ€ข โ€“ โ€“ โ€“ โ€“ โ€“ โ€“ โ€ข ์‡ผํ•‘ ํ•˜์šฐ ์ƒํ’ˆ ํด๋ฆญ ๋ถ„์„ ์‚ฌ๋ก€ ๋‹ค์Œ Top ํ† ํ”ฝ ๋ถ„์„ ๋ฐ ์ถ”์ฒœ ์„œ๋น„์Šค UCC ๋ฌธ์„œ์˜ ์ŠคํŒธ ์œ ์ € ํ•„ํ„ฐ๋ง ์‚ฌ๋ฌผ ๊ฒ€์ƒ‰ ์ด๋ฏธ์ง€ ์—ญ์ƒ‰์ธ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ํ…์ŠคํŠธ ๋ถ„์„ ๋ชจ๋ฐ”์ผ ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ๋ณ„ ๋งค์ฒด ๋ถ„์„ ๋“ฑ ์—ฐ๊ตฌ ๊ฐœ๋ฐœ ์‚ฌ๋ก€ โ€“ โ€“ ์ด๋ฏธ์ง€ ์œ ์‚ฌ์„ฑ ๋งค์นญ ๋ถ„์„ ๋Œ€์šฉ๋Ÿ‰ ์‹œ๋งจํ‹ฑ ์›น ๊ฒ€์ƒ‰ ์—”์ง„ ๊ฐœ๋ฐœ โ€ข ๋งˆ์ด ์•„๊ณ ๋ผ ๊ฒ€์ƒ‰ ๊ด‘๊ณ  ๋…ธ์ถœ ์ตœ์ ํ™” ์ตœ๊ทผ ๋ฐฉ๋ฌธ ์นดํŽ˜ ์ €์žฅ ์‚ฌ๋‚ด ์บ์‹œ ์„œ๋ฒ„(Redis) ์‚ฌ๋‚ด Git ์ €์žฅ์†Œ(Redis) ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (Hbase) โ€ข โ€ข โ€ข โ€ข ๊ฒ€์ƒ‰ ์—”์ง„ ์ƒ‰์ธ ๋ฌธ์„œ ์ €์žฅ ์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ ์ €์žฅ ๋กœ๊ทธ์ธ ๋กœ๊ทธ ์ €์žฅ ์นดํŽ˜ ๋ฐฉ๋ฌธ ๋กœ๊ทธ ์ €์žฅ ์œค์„์ฐฌ(2012), Daum ๋น… ๋ฐ์ดํ„ฐ ๊ธฐ์ˆ  ํ™œ์šฉ ์‚ฌ๋ก€ http://www.slideshare.net/Channy/daums-hadoop-usecases http://devon.daum.net/2012/session/o1 ์ด๋ฏธ ๊ณต์œ  ๋งŽ์ด ํ–ˆ์–ด์š”!! ์ฐพ์•„๋ณด์„ธ์š”~~ ์„œ๋น„์Šค ์ ์šฉ (MongoDB/์นด์‚ฐ๋“œ๋ผ) โ€ข โ€ข โ€ข โ€ข โ€ข ์ „์‚ฌ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ํ†ต๊ณ„ ๋ถ„์„ ๊ด‘๊ณ  ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€๊ฒŸํŒ… ๊ฒ€์ƒ‰ ํ’ˆ์งˆ ๋žญํ‚น ๋ถ„์„ ๋ฐ ๊ฐœ์„  ๊ด‘๊ณ  ๋ฐ ํด๋ฆญ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€์ผ“ํŒ… ์นดํŽ˜ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์นดํŽ˜ ์ถ”์ฒœ ๊ฒŒ์ž„ ์„œ๋ฒ„ ๋กœ๊ทธ ๋ถ„์„ ๋“ฑ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์‚ฌ๋ก€ โ€“ โ€“ โ€“ โ€“ โ€“ โ€“ โ€ข โ€ข ๋กœ๊ทธ ๋ถ„์„ ์‚ฌ๋ก€ ๊น€์šฉ์šฐ, ์ด์„ ํ˜ธ(2012), Hadoop ์‹ค์ „ ์‚ฌ์šฉ๊ธฐ http://devon.daum.net/2012/session/o2 ์œ ์‘์„ญ, ์ตœ์ค€๊ฑด(2012), ์•Œ๊ณ ์“ฐ์ž! NoSQL http://devon.daum.net/2012/session/o3 ์•ˆ์„ธ์ค€(2012), ์‚ฝ์งˆ๋กœ ์ผ๊ถˆ๋‚ธ ์นด์‚ฐ๋“œ๋ผ ์‚ฌ์šฉ๊ธฐ http://devon.daum.net/2012/session/o4 ์œค์„์ฐฌ(2012), Daum ๋น… ๋ฐ์ดํ„ฐ ๋น„์ง€๋‹ˆ์Šค ๋ถ„์„ ์‚ฌ๋ก€ http://www.slideshare.net/Channy/daum-bigdata-analytics-usecases
  • 24. Daum ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€ โ€ข ๋กœ๊ทธ ๋ถ„์„ ์‚ฌ๋ก€ โ€“ โ€“ โ€“ โ€“ โ€“ โ€“ โ€ข ๋ฐ์ดํ„ฐ ๋ถ„์„ ์‚ฌ๋ก€ โ€“ โ€“ โ€“ โ€“ โ€“ โ€“ โ€ข ์ „์‚ฌ ๋กœ๊ทธ๋ฅผ ํ†ตํ•œ ํ†ต๊ณ„ ๋ถ„์„ ๊ด‘๊ณ  ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€๊ฒŸํŒ… ๊ฒ€์ƒ‰ ํ’ˆ์งˆ ๋žญํ‚น ๋ถ„์„ ๋ฐ ๊ฐœ์„  ๊ด‘๊ณ  ๋ฐ ํด๋ฆญ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ํƒ€์ผ“ํŒ… ์นดํŽ˜ ๋กœ๊ทธ ๋ถ„์„์„ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์นดํŽ˜ ์ถ”์ฒœ ๊ฒŒ์ž„ ์„œ๋ฒ„ ๋กœ๊ทธ ๋ถ„์„ ๋“ฑ ์‡ผํ•‘ ํ•˜์šฐ ์ƒํ’ˆ ํด๋ฆญ ๋ถ„์„ ์‚ฌ๋ก€ ๋‹ค์Œ Top ํ† ํ”ฝ ๋ถ„์„ ๋ฐ ์ถ”์ฒœ ์„œ๋น„์Šค UCC ๋ฌธ์„œ์˜ ์ŠคํŒธ ์œ ์ € ํ•„ํ„ฐ๋ง ์‚ฌ๋ฌผ ๊ฒ€์ƒ‰ ์ด๋ฏธ์ง€ ์—ญ์ƒ‰์ธ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ํ…์ŠคํŠธ ๋ถ„์„ ๋ชจ๋ฐ”์ผ ๊ด‘๊ณ  ๋ฐ์ดํ„ฐ๋ณ„ ๋งค์ฒด ๋ถ„์„ ๋“ฑ ์—ฐ๊ตฌ ๊ฐœ๋ฐœ ์‚ฌ๋ก€ โ€“ โ€“ ์ด๋ฏธ์ง€ ์œ ์‚ฌ์„ฑ ๋งค์นญ ๋ถ„์„ ๋Œ€์šฉ๋Ÿ‰ ์‹œ๋งจํ‹ฑ ์›น ๊ฒ€์ƒ‰ ์—”์ง„ ๊ฐœ๋ฐœ โ€ข ์„œ๋น„์Šค ์ ์šฉ (MongoDB/์นด์‚ฐ๋“œ๋ผ) โ€ข โ€ข โ€ข โ€ข โ€ข โ€ข ๋งˆ์ด ์•„๊ณ ๋ผ ๊ฒ€์ƒ‰ ๊ด‘๊ณ  ๋…ธ์ถœ ์ตœ์ ํ™” ์ตœ๊ทผ ๋ฐฉ๋ฌธ ์นดํŽ˜ ์ €์žฅ ์‚ฌ๋‚ด ์บ์‹œ ์„œ๋ฒ„(Redis) ์‚ฌ๋‚ด Git ์ €์žฅ์†Œ(Redis) ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ (Hbase) โ€ข โ€ข โ€ข โ€ข ๊ฒ€์ƒ‰ ์—”์ง„ ์ƒ‰์ธ ๋ฌธ์„œ ์ €์žฅ ์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ ์ €์žฅ ๋กœ๊ทธ์ธ ๋กœ๊ทธ ์ €์žฅ ์นดํŽ˜ ๋ฐฉ๋ฌธ ๋กœ๊ทธ ์ €์žฅ โ€ข ์„œ๋น„์Šค ๋ถ„์„ โ€“ ๋ฏธ๋””์–ด ๋‹ค์Œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ โ€“ ๋ชจ๋ฐ”์ผ/PCํƒ‘ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ โ€ข ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ โ€“ Twitter ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ
  • 26. ์‹ค์‹œ๊ฐ„ ๋ถ„์„์ด ํ•„์š”ํ•  ๋•Œโ€ฆ ํ™œ์šฉ ๋Œ€์ƒ ์˜์—ญ โ€“ ์‡ผํ•‘๋ชฐ ์‚ฌ์ดํŠธ์˜ ์‚ฌ์šฉ์ž ํด๋ฆญ ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ๊ฐœ์ธํ™” โ€“ ์‚ฌ์šฉ์ž ์œ„์น˜ ์ •๋ณด ๊ธฐ๋ฐ˜ ๊ด‘๊ณ  ๋ฐ ์ถ”์ฒœ ๊ธฐ๋Šฅ โ€“ ์‹œ์Šคํ…œ ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•œ ์‹ค์‹œ๊ฐ„ ๋ณด์•ˆ ๊ฐ์‹œ โ€“ ์ฐจ๋Ÿ‰ ์ถ”์  ๋ฐ ์œ„์น˜ ์ •๋ณด ์ˆ˜์ง‘์„ ์ด์šฉํ•œ ๋„๋กœ ๊ตํ†ต ์ƒํ™ฉ ํŒŒ์•… โ€“ ์‚ฌ์šฉ์ž์˜ ์•ก์…˜ ์ˆ˜์ง‘์„ ์ด์šฉํ•œ ์ด์ƒ ํ–‰์œ„ ํƒ์ง€ ๊ธฐํš์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ โ€“ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ™”๋˜๋Š” ๋ชจ์Šต์„ ํ™”๋ฉด์—์„œ ๋ฐ”๋กœ ๋ณด๊ณ  ์‹ถ๋‹ค! โ€“ ๊ฐ„๊ฒฐํ•œ ์ฐจํŠธ์™€ ์„ ํƒ ๋ฐ ์‹ค์‹œ๊ฐ„ ๋ณ€ํ™”๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค! ๊ธฐ์ˆ  ์š”๊ตฌ ์‚ฌํ•ญ โ€“ ๋กœ๊ทธ ์ˆ˜์ง‘, ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋ฐ ์žฅ๊ธฐ ๋ถ„์„์„ ์œ„ํ•œ ์ €์žฅ์†Œ ํ•„์š” โ€“ ์ฃผ๊ธฐ์  ์ฐจํŠธ ์ƒ์„ฑ ๋ฐ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ ํ•„์š”
  • 27. 1. ๋ฏธ๋””์–ด ๋‹ค์Œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€ ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํ˜„ํ™ฉ ํŒŒ์•… โ€“ ์ด์Šˆ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ์ƒํ™ฉ ํŒŒ์•…์„ ์œ„ํ•œ ๊ด€๋ฆฌ ๋„๊ตฌ ์ œ๊ณต ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํ˜„ํ™ฉ ํŒŒ์•… โ€“ โ€˜๋‚˜๋Š”๊ฐ€์ˆ˜๋‹คโ€™, โ€˜KํŒ์Šคํƒ€โ€™ ๊ฐ™์€ ๋””์ง€ํ„ธ ๋ธŒ๋žœ๋“œ์— ๋Œ€ํ•œ ๋ณ€ํ™” ์ธก์ • ํ•„์š”
  • 28. ๋ฏธ๋””์–ด๋‹ค์Œ ์›”๊ฐ„ PV ํ˜„ํ™ฉ ยฉ ์ฝ”๋ฆฌ์•ˆํด๋ฆญ(2013.10)
  • 29. ์„œ๋น„์Šค ๊ตฌํ˜„ ์‹œ ํ™œ์šฉ ๊ธฐ์ˆ  Kestrel โ€“ http://robey.github.io/kestrel/ โ€“ Blaine Cook์˜ "starling๏ผ‚์„ ๊ธฐ๋ฐ˜ํ•œ JVM ๋ถ„์‚ฐ ๋ฉ”์‹œ์ง€ ํ ์„œ๋ฒ„๋กœ ์„œ, memcached ๋ฐ thrift ํ”„๋กœํ† ์ฝœ์„ ์ง€์› Storm โ€“ https://github.com/nathanmarz/storm/wiki โ€“ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹น Redis โ€“ http://redis.io/ โ€“ ๋””์Šคํฌ I/O ์—†์ด ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ in-memory key-value store๋กœ์„œ ์ž„์‹œ ๋ถ„์„๊ฐ’์„ ์ €์žฅ Cassandra โ€“ http://cassandra.apache.org/ โ€“ ๋งŽ์ด ์ด์šฉ๋˜๋Š” NoSQL ์„œ๋ฒ„๋กœ์„œ ๋ถ„์„๊ฐ’์˜ ์˜๊ตฌ ์ €์žฅ์†Œ๋กœ์„œ, Hbase ๋‚˜ MySQL ๋“ฑ์ด ํ™œ์šฉ๋˜๊ธฐ๋„ ํ•จ
  • 34. (3) ๋ถ„์„ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ์กฐํšŒ Search, Aggregation, Ranking์„ ์œ„ํ•ด ์ง€๋‚œ 1๋ถ„๋™์•ˆ UV/PV ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋˜ ์ปจํ…์ธ ๋งŒ...
  • 36. ๋‹ค์–‘ํ•œ ๋ถ„์„ ๊ธฐ๋Šฅ ์ œ๊ณต ๋ถ„ ๋‹จ์œ„ PV/UV ์กฐํšŒ ๊ธ‰๋“ฑ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ธฐํš์ž๋ฅผ ์œ„ํ•œ ํฌ๋กฌ ํ™•์žฅ ๊ธฐ๋Šฅ ๋ถ„์„ ์กฐํšŒ API ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ
  • 38. 2. Daum Top ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‚ฌ๋ก€ ๋‹ค์Œ PC์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์›น ์ฒซํ™”๋ฉด ์ฝ˜ํ…์ธ  ์•„์ดํ…œ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ”ฝ ํŒŒ์•… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งž๋Š” ์ฝ˜ํ…์ธ  ์ถ”์ฒœ ๋ฐ ํŒŒ๊ธ‰๋ ฅ ๋ถ„์„ ๊ฐ€๋Šฅ
  • 39. 3. Twitter ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๊ธฐ Twitter, ํ‹ฐ์Šคํ† ๋ฆฌ๋กœ ๋ถ€ํ„ฐ ์˜ค๋Š” Stream Data ์ €์žฅ์†Œ ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ์ธ๋ฑ์Šค๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ œ๊ณต
  • 40. c.f. ๋ชจ๋ฐ”์ผ ์•ฑ ํฌ๋ž˜์‹œ ํ†ต๊ณ„ ๋ชจ๋ฐ”์ผ ์•ฑ ๋””๋ฒ„๊น… ๋ฐฉ์‹ โ€“ ์‹ค์‹œ๊ฐ„์œผ๋กœ Crashing ๋ฐ ์ดํ„ฐ ์ˆ˜์ง‘ ํ•„์š” (Storm/HBase?) โ€ข WebView์—์„œ ๋‚˜๋Š” ์˜ค๋ฅ˜๋„ ๋งŽ์Œ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ • ํ•„์š” โ€“ ํŠน์ • ํฌ๋ž˜์‹œ์™€ ๊ด€๋ จ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ํ•™์Šต ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•จ (Spark/Shark?) โ€ข ๋ฒ„๊ทธ์™€ ํฌ๋ž˜์‰ฌ ์‚ฌ์ด์˜ ๊ด€๊ณ„ ์ตœ์ข… ์‚ฌ์šฉ ๊ธฐ์ˆ  โ€“ Hbase M/R ์˜ค๋ฒ„ ์—”์ง€๋‹ˆ์–ด๋ง์€ ๊ธˆ๋ฌผ!
  • 41. ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๊ตฌ์ถ• ์‹œ ์œ ์˜ ์‚ฌํ•ญ ์ •๋ง ํ•„์š”ํ•œ๊ฐ€? โ€“ Storm/S4 ๊ฐ™์€ ๊ธฐ์ˆ ์„ ๋„์ž… ์ „ ์ •๋ง ํ•„์š”ํ•œ์ง€ ํ™•์ธ ํ•ด์•ผ ํ•จ โ€“ ์‹ค์‹œ๊ฐ„ ๋ถ„์„์€ ๋ช…ํ™•ํ•œ ์—…๋ฌด ์ •์˜๊ฐ€ ๋œ ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰ ํ•ด์•ผ ํ•จ โ€“ ๊ธฐ์ˆ  ์„ ํƒ (Batch/Realtime/Query)์— ๋Œ€ํ•œ ์ดํ•ด ํŒŒ์•… ํ•„์š” ๊ณ ๋‚œ์„ ๊ฐ์˜คํ•ด๋ผ! โ€“ ์ž˜ ์•Œ๋ ค์ง„ ์ผ€์ด์Šค๋Š” ๋งŽ์œผ๋‚˜ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๋‹ค ๋ณด๋ฉด ์–ด๋ ค์›€ ๋ด‰์ฐฉ โ€“ ์‹œ์Šคํ…œ ์—”์ง€๋‹ˆ์–ด๋ง ์šด์˜ ๊ธฐ์ˆ  ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”๋ชจ๋ฆฌ(~98GB) ๊ธฐ๋ฐ˜ ์„œ ๋ฒ„ํŒœ ๋“ฑ์ด ํ•„์š”ํ•จ ์—ญ์‹œ ์˜คํ”ˆ ์†Œ์Šค! โ€“ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ทœ๋ชจ์™€ ๋ฌธ์„œํ™” ์ผ€์ด์Šค ๋“ฑ์œผ๋กœ ์ง€์› ๊ฐ€๋Šฅํ•œ ์ง€ ํ™•์ธ ํ›„์— ์ง„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • 42. References 1. ๊น€๋ณ‘๊ณค(2013), ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ• โ€“ http://www.youtube.com/watch?v=HmVegCGWbsU โ€“ http://readme.skplanet.com/?p=4605 2. ๊ถŒ๋™ํ›ˆ(2013), Hadoop์—์„œ์˜ ์‹ค์‹œ๊ฐ„ SQL ์งˆ์˜: Impala โ€“ 3. http://helloworld.naver.com/helloworld/246342 ๊น€์šฐ์Šน(2012), ์‹ค์‹œ๊ฐ„ ๋น… ๋ฐ์ดํ„ฐ(Real-time Big Data) ํ”„๋กœ์„ธ์‹ฑ ๋ง›๋ณด๊ธฐ โ€“ 4. http://kimws.wordpress.com/2012/03/07/%EC%8B%A4%EC%8B%9C%EA%B0%84 -%EB%B9%85-%EB%8D%B0%EC%9D%B4%ED%84%B0real-time-big-data/ ํ•˜ํ˜ธ์ง„(2012), Storm๊ณผ Esper๋กœ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์ƒ˜ํ”Œ ์‚ฌ์šฉ๊ธฐ โ€“ 5. http://mimul.com/pebble/default/2012/03/14/1331718971671.html ์‹ฌํƒ๊ธธ(2012), ์‹ค์‹œ๊ฐ„ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ธฐ์ˆ ๊ณผ ์ ์šฉ ์‚ฌ๋ก€ โ€“ http://www.ktcloudware.com/resources/platform/07.pdf
  • 43. Daum์—๋Š” ๋ฐ์ดํ„ฐ๋„ ๋งŽ๊ณ  ์ „๋ฌธ๊ฐ€๋„ ๋งŽ์Šต๋‹ˆ๋‹ค! http://recruit.daum.net @channyun channy@daumcorp.com