Big Data Intro
- 2003๋ ์ ๊น์ง 5 ์์ฌ๋ฐ์ดํธ์ ์ ๋ณด๋ฅผ ์์ฐํ์
- ์ด์ ์ดํ๋ง๋ค 5 ์์ฌ๋ฐ์ดํธ์ ์ ๋ณด๋ฅผ ์์ฐ -> ๋น ๋ฐ์ดํฐ
Big Data์ 4V
- Volume
- Variety
- Velocity
- Veracity
Science Paradigms
- ๋ช์ฒ ๋ ์ : ๊ณผํ์ empirical ํ๋ค. -> ์์ฐ ํ์์ ์์
- ๋ช๋ฐฑ ๋ ์ : theoretical branch -> ์ด๋ก , ๋ชจ๋ธ๋ง
- ๋ช์ญ ๋ ์ : computational -> ์๋ฎฌ๋ ์ด์
- ์ค๋๋ : data exploration
- ๋ฏธ๋: Data-driven Science -> Data-driven Hypothesis Generation
Big Data Challenges
- ๋น ๋ฐ์ดํฐ
* ํฌ๊ณ ๋ณต์กํ ๋ฐ์ดํฐ
* ์: social, web, financial transaction data, academic articles, genomic data...
- 2๊ฐ์ง์ ๊ณ ๋
* ํจ์จ์ ์ ์ฅ ๋ฐ ์ ๊ทผ
* Data Analytics -> ๊ฐ์น ์๋ ์ ๋ณด ์บ๋ด๊ธฐ
Data Science and Big data
- ๋น ๋ฐ์ดํฐ๋ผ๋ ์ฉ์ด๋ ๊ฑฐ๋ํ ๋ฐ์ดํฐ์ ์ ๋ถ์์ ๋ปํจ
- ์: ํธ์ํฐ/ํ์ด์ค๋ถ ์ ์ฒด, ์ฃผ์ ์ฌ์ดํธ์ ์น ๋ก๊ทธ, ๋ช์ฒ ๋ช ์ genome sequence, Flickr์ ์ ์ฒด ์ด๋ฏธ์ง...
- ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ๋ ์ด๋ ค์์ง๋ค
Big data as Bad data
- Unrepresentative participation (bias): ์ธ์คํ๊ทธ๋จ-์ ์ ์ธต๋ง ์ด์ฉ, ๋ด์ํ์์ฆ-์์ ์ฃผ์์ , Fox News-๋ณด์์ , ์์คํธ๋ฆฌํธ์ ๋-๋ถ์๋ง ๋ด
- Spam and machine-generated content: ๋ด, ๊ฐ์ง๋ด์ค ๋ฑ
- Power-laws: redundancy๋ฅผ ์๋ฏธ -> ๊ฑด๋ฌผ ํ์ง ํ์คํฌ๋ฅผ ์ํํ ๋, ๋๋๋งํฌ ๋ฐ์ดํฐ๋ ๋ง์ผ๋ฏ๋ก ๋๋๋งํฌ๋ง ์ ์ธ์ํ๊ณ ์ผ๋ฐ ๊ฑด๋ฌผ์ ์ ์ธ์ํ์ง ๋ชปํ ์ ์์
- Susceptibility to temporal bias (ex. Google Flu Trends): ๊ตฌ๊ธ์ ์๋์์ฑ ๊ธฐ๋ฅ์ด ๊ฒ์ ์ฟผ๋ฆฌ์ ๋ถํฌ๋ฅผ ๋ณํ์ํด
Large-Scale Machine Learning
- ์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง ๊ณต๋ถํ ์๊ณ ๋ฆฌ์ฆ๋ค์ ์์ฃผ ํฐ ๋ฐ์ดํฐ์ ์ ์ ๋ง์ง ์๋๋ค.
- ์์ฃผ ํฐ ๋ฐ์ดํฐ์ ์ ๋ํด์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์ ์ ๋ชจ๋ธ์ด ์ ์๋ํ์ง ์๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ๋ณต์ก๋๊ฐ linear -> O(n)์ด์ด์ผ ํ๋ค.
- Big matrices๋ ๋น ๋ฐ์ดํฐ์ ๋ํด ํฌ์ํ ์ ์๋ค.
* ์) ๋ทํ๋ฆญ์ค ๊ณ ๊ฐ 1์ต๋ช ์ ๋์์ผ๋ก ์ ์ฒด ์ํ์ ๋ํ ์ ์ ํ์ matrix๋ฅผ ๋ถ์ํ๋ค๊ณ ํ์ ๋ ์ฐจ์์ด ์์ฃผ ํฌ๊ณ ํฌ์ํ๋ค.
-> ๋ชจ๋ ์ฌ๋์ด ๋ชจ๋ ์ํ๋ฅผ ๋ณด์ง๋ ๋ชปํ๊ธฐ ๋๋ฌธ์
Filtering Data -> domain specific criteria
- ๋น ๋ฐ์ดํฐ์ ์ฅ์ ์ ๋ถ์์ ๋ ๊น๋ํ๊ฒ ํ๊ธฐ ์ํด์ ๋น ๋ฐ์ดํฐ์ ์๋น ๋ถ๋ถ์ ๋ฒ๋ ค๋ ๋๋ค๋ ๊ฒ์ด๋ค.
- ์: ํธ์ํฐ์ ์ ์ฒด ํธ์ ์ค 34%๋ง์ด ์์ด๊ถ ๊ณ์ -> ๋๋จธ์ง๋ ๋ฒ๋ ค๋ ๋จ
- irrelevant or hard-to-interpret data๋ฅผ ํํฐ๋ง ํ๋ ๊ฒ์ application-specific knowledge๋ฅผ ํ์๋ก ํ๋ค.
Subsampling Data
- subsampling...?
* training/validation/testing data๋ฅผ ๊น๋ํ๊ฒ ๋ถ๋ฆฌํ ์ ์๋ค.
* ๋จ์ํ๊ณ ํผํผํ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๊ฐ ์ ์ -> big data์ overkill ์ ๋
cf) hyperparameter fitting, ๋ชจ๋ธ ์ ์ ->์ฌ๋ฌ๋ฒ ํ์ต
* ์คํ๋ ๋์ํธ ์ฌ์ด์ฆ์ ๋ฐ์ดํฐ์ ์ ๋ถ์์ด ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋๋ค.
์ ๋จ(truncation)์ ์ด์ฉํ๊ธฐ
- ์ฒซ n๊ฐ์ ๊ธฐ๋ก๋ง์ ์ทจํ๋ ๊ฒ์ ์ฝ์ง๋ง ์ฌ๋ฌ ์ค๋ฅ๋ฅผ ๋ฒํ ์ ์๋ค.
* temporal biases (์ค๋๋ ๋ฐ์ดํฐ๋ง์ ๋ถ์ํ๊ฒ ๋ ์๋)
* lexicographic biases (A์ ๋ํ ๋ฐ์ดํฐ๋ง ๋ถ์ํ๊ฒ ๋ ์๋ -> Arabic์ ๋ถ์๋ฒ์์ ์์ง๋ง Korean์ ํฌํจ๋์ง ์์ ์ ์๋ค)
* numerical biases (ID ๋ฒํธ ๊ฐ์ ๊ฑด ๋ฌด์์ ๋ถ์ฌ๊ฐ ์๋๋ผ ์๋ฏธ๊ฐ ์๋ ์ซ์์ผ ์ ์์)
Stream Sampling
- n์ ๋ชจ๋ฅผ ๋ size k ์ง๋ฆฌ ๊ท ์ผ ์ํ์ ์ถ๊ตฌํ ๋๊ฐ ์๋ค.
- ํด๊ฒฐ์ฑ : k๊ฐ์ active element์ ๋ํ ๋ฐฐ์ด์ ์ ์งํ๊ณ , n๋ฒ์จฐ ์์๋ฅผ k/n์ ํ๋ฅ ๋ก ๋์ฒด -> ๋ค์ด์๋ ๊ฒ๋ ์ซ๊ฒจ๋ ์๋ ์์
- cut์ ๋ง๋ค ๋ ์๋ก์ด ์์์ ์์น๋ฅผ ๋๋ค์ผ๋ก ์ ์ ํ ์ ์์.
Distributed vs. Parallel Processing
- Parallel processing: 1๊ฐ์ ๊ธฐ๊ณ์์ ์งํ (์ค๋ ๋, ์ด์์ฒด์ ํ๋ก์ธ์ค ๋ฑ์ ํตํด)
- Distributed processing: ์ฌ๋ฌ ๊ฐ์ ๊ธฐ๊ณ์์ ์งํ - ๋คํธ์ํฌ ํต์ ๋ฑ์ ์ด์ฉ
Data Paralllelism
- parallelism์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ๋น ๋ฐ์ดํฐ๋ฅผ ๋ค์์ ๊ธฐ๊ณ๋ก ๋๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ชจ๋ธ์ ํ์ต์ํค๋ ๊ฒ์ด๋ค.
- k-means์ฒ๋ผ ๊ฐ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๊ธฐ๊ฐ ์ด๋ ต๋ค.
* Parallelized K-means
์๋ฅผ ๋ค์ด 100๊ฐ์ seed๊ฐ ์๋ ์ํฉ์ด๋ผ๊ณ ํ๋ฉด
1. 1๊ฐ์ master machine (job assign...)์ด k๊ฐ์ random seed๋ฅผ ์ ์ ํด์ ๋ค๋ฅธ machine์๊ฒ broadcast
2. local์์, ๊ฐ machine์ ์์ ์ด ๊ฐ์ง ๋ฐ์ดํฐ๊ฐ ์ด๋ ํด๋ฌ์คํฐ์ ์ํ๋์ง ๊ณ์ฐํ๋ค.
3. ๊ทธ ๋ฐ์ดํฐ๋ก๋ถํฐ ์๋ก์ด centroid, data #๋ฅผ ๊ณ์ฐํ์ฌ ์ ๋ฌํ๋ค. (sum vector ๋ฑ์ ํํ๋ก ์ ๋ฌํ๋ฉด ์ผ์ผ์ด ์ ๋ฌํ ํ์๊ฐ ์๋ค)
4. master machine์ด ๊ทธ ์ ๋ณด๋ฅผ ์ ๋ฌ๋ฐ์ centroid ๊ฐ์ ์ต์ข ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ , ์ด๋ฅผ ๋ค์ broadcastํ๋ค.
5. ๊ณ์ ๋ฐ๋ณตํ๋ค.
Grid Search
- ์ ์: right hyper-parameter๋ฅผ ์ฐพ๋ ๊ฒ
- ์: k-means clustering์์ ์ฌ๋ฐ๋ฅธ k๊ฐ์ ์ฐพ๋ ๊ฒ
- parallelํ๊ฒ ์คํ๋ ๊ฒฝ์ฐ ์ต์ ์ ๊ฐ์ ์ฐพ์๋ผ ์ ์๋ค.
Distributed processing์ ๋ณต์ก๋
- machine ์์ ๋ฐ๋ผ ๊ธ๊ฒฉํ๊ฒ ์ฆ๊ฐํ๋ค
* 1๊ฐ: ๋์ box์ ์ค์ฌ๋ถ๋ฅผ ๋ฐ์๊ฒ ํจ
* 2๊ฐ: ๋ช ๊ฐ์ box์ ๋ํด ํ๋ก๊ทธ๋จ์ ์คํ์ํจ๋ค.
* ์ฌ๋ฌ๊ฐ: MapReduce ๋ฑ์ ์์คํ ์ ์ด์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
MapReduce / Hadoop
- distributed computing์ ์ํ ๊ตฌ๊ธ์ MapReduce ํจ๋ฌ๋ค์์ Hadoop, Spark ๋ฑ์ ์คํ์์ค๋ก ๊ตฌํ๋จ
- ๊ฐ๋จํ parallel programming model
- ์๋ฐฑ/์์ฒ ๊ฐ์ ๊ธฐ๊ณ์ ๋ํด Straightforward scaling
- redundancy(์ฌ๋ถ)์ ํตํ fault tolerance
Divide and Conquer
1. ๋ถํ (partition): ํ๋์ ์ผ์ ์ฌ๋ฌ ๊ฐ๋ก ์ชผ๊ฐฌ
2. ๊ฐ๊ฐ ์ํ
3. ๋ณํฉ(combine): ๊ฐ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ํ๋๋ก ํฉ์นจ
Typical Big Data Problem
- ์์ฃผ ํฐ ์ซ์์ ๊ธฐ๋ก์ ๋ฐ๋ณต
- ๊ฐ๊ฐ์์ ๊ด์ฌ์๋ ๊ฒ์ ๋ฝ์๋ด๊ธฐ
- ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ shuffle, sort
- ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์งํฉ
- ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋์ถ
- word counting, k-means clustering์ ์๊ฐํด๋ณด๊ธฐ
MapReduce์ ์์ด๋์ด
- Scale Out: ์ฌ๋ฌ ๊ฐ์ ๊ธฐ๊ณ๋ฅผ ๋ถ์ด๊ธฐ (up-> ๊ธฐ๊ณ ์ฑ๋ฅ ์ฅ์ฒด๋ฅผ ์ฌ๋ฆฌ๋ ๊ฒ->X)
* ์ค์ผ์ผ ์ ์ ๋ฉ๋ชจ๋ฆฌ bottleneck ํ์ ๋ฑ์ด ๋ฐ์ํ ์ํ์ด ์๋ค.
- Move processing to the data: ํด๋ฌ์คํฐ๋ค์ด ์ ํ๋ bandwidth๋ฅผ ๊ฐ์ง๋ค
- ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ , ๋๋ค ์ ๊ทผ์ ํผํ๋ผ: seek์ ๋น์ฉ์ด ๋ง์ด ๋ค์ง๋ง, disk throughput์ ํฉ๋ฆฌ์
* HDD ๋ฑ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋ head๋ฅผ ์ด๋ํด๊ฐ๋ฉฐ ์ฝ๋๋ค. ์ด๊ฒ์ ์ด๋ป๊ฒ ์ต์ ํํ๋๋?
Components of Hadoop
1. Hadoop/MapReduce
- ๋ถ์ฐ๋ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ธํ๋ผ๊ตฌ์กฐ
- abstract/paradigm
- fault-tolerant: ๋ฐ์ดํฐ๋ฅผ 100๊ฐ๋ก ๋๋์ด์ฃผ๋๋ฐ, ๊ทธ์ค 1๊ฐ์ ์ฒ๋ฆฌ๊ธฐ๊ฐ ๊ณ ์ฅ๋๋ฉด ์ผ๋จ ์ฌ์์๋ถํฐ ํจ -> ๊ทธ๋๋ ๋์ํ์ง ์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฒ๋ฆฌ๊ธฐ์๊ฒ ํ ๋น
- schedule: job assignment ๋ฑ์ ์กฐ์จ
- execution
2. HDFS (Hadoop Distributed File System)
- fault-tolerant: ํ๋๋์คํฌ๊ฐ ๋ง๊ฐ์ ธ๋ ๊ด์ฐฎ์
- high-bandwidth
- high availability distributed storage
- ์ต์ 3๊ฐ์ ๋ณต์ฌ๋ณธ์ ์ ์ง
MapReduce Word Count
- Map and Reduce ํจ์
map(k,v) -> [(k', v')]
reduce(k', [v']) -> [(k',v')]
- Word Count
Map(String docid, String text):
for each word w in text:
Emit(w, 1);
Reduce(String term, Iterator<int> values):
int sum = 0;
for each v in values:
sum += v;
Emit(term, sum);
MapReduce ์คํ ์๊ฐ
- scheduling ์กฐ์ : map, reduce task๋ฅผ ์ํํ๋๋ก worker์ ๋ถ์ฌ
- ๋ฐ์ดํฐ ๋ถ์ฐ ์กฐ์ : ํ๋ก์ธ์ค์์ ๋ฐ์ดํฐ๋ก ์ด๋
- synchronization ์กฐ์ : intermediate data์ ์์ง, ์ ๋ ฌ, ํผํฉ
- error, fault ์กฐ์ : worker failure ๊ฐ์ง ๋ฐ ์ฌ์์
Hadoop Distributed File System (HDFS)
- ํด๋ฌ์คํฐ ๋ด๋ถ์ ๋ ธ๋์ local disk์ ๋ฐ์ดํฐ ์ ์ฅ -> ๋ฉ๋ชจ๋ฆฌ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์์ RAM์ด ์ถฉ๋ถํ์ง ์์
- Disk access๋ ๋๋ฆฌ์ง๋ง disk throughput์ ํฉ๋ฆฌ์ -> file์ ํตํ linear scan์ ๊ด์ฐฎ์
- ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ 3๋ฒ ๋ณต์ -> reliability on commodity hardware
Cloud Computing Services
- Amazon ๋ฑ์ ํ๋ซํผ์ ๋จ๊ธฐ ์์ ์ ๋ํ ์ฌ๋ฌ machine ์ ๊ณต ๊ฐ๋ฅ
Feel Free to Experiment: micro instance์ ๊ฒฝ์ฐ ํด๋ณผ ๋งํจ