You are on page 1of 30

Chương 2: Hadoop:

Distributed Architecture, HDFS,


and MapReduce
TS. Nguyễn Mạnh Tuấn
tuannm@ueh.edu.vn
Nội dung
► Big Data là gì?
► Đặc điểm của Big Data
► Các công nghệ liên quan đến Big Data
► Thách thức và mục tiêu của Big Data
► Các ứng dụng Big Data

BUSINESS INFORMATION TECHNOLOGY


2
Các vấn đề khi xử lý dữ liệu lớn
► Lặp lại một số lượng lớn các dữ liệu
► Trích xuất một dữ liệu quan tâm
► Sắp xếp và Tổng hợp kết quả trung gian
► Tạo đầu ra cuối cùng

► Vấn đề:
❑ Định dạng đầu vào đa dạng (dữ liệu đa dạng & không đồng
nhất)
❑ Quy mô lớn: Terabyte, Petabyte
❑ Song song hóa

BUSINESS INFORMATION TECHNOLOGY


3
Làm thế nào để tận dụng một số máy tính có sẵn
giá rẻ?

BUSINESS INFORMATION TECHNOLOGY


4
Chia để trị
“Work”
Partition

w1 w2 w3

“worker” “worker” “worker”

r1 r2 r3

“Result” Combine

BUSINESS INFORMATION TECHNOLOGY


5
Những thách thức xử lý song song
► Làm cách nào để phân công đơn vị công việc cho
worker?
► Điều gì sẽ xảy ra nếu chúng ta có nhiều đơn vị làm việc
hơn worker?
► Điều gì sẽ xảy ra nếu worker cần chia sẻ một phần kết
quả?
► Làm cách nào để chúng tôi tổng hợp các kết quả từng
phần?
► Làm sao chúng ta biết tất cả worker đã hoàn thành?
► Nếu worker chết thì sao?
Vấn đề chung của tất cả những thách thức này là gì?
BUSINESS INFORMATION TECHNOLOGY
6
Vấn đề chung?

► Vấn đề song song phát sinh từ:


❑ Giao tiếp giữa các worker (ví dụ: để trao đổi
trạng thái)
❑ Truy cập vào các tài nguyên được chia sẻ (ví dụ:
dữ liệu)
► Vì vậy, chúng ta cần một cơ chế đồng bộ

BUSINESS INFORMATION TECHNOLOGY


7
Kẹt xe tại VN

BUSINESS INFORMATION TECHNOLOGY


8
Quản lý nhiều worker
► Khó vì
❑ Chúng tôi không biết thứ tự worker chạy
❑ Chúng tôi không biết khi nào worker ngắt lời nhau
❑ Chúng tôi không biết thứ tự worker truy cập dữ liệu được chia sẻ
► Vì vậy, chúng ta cần:
❑ Semaphores (khóa, mở khóa)
❑ Biến có điều kiện (chờ, thông báo, phát sóng)
❑ Rào cản
► Tuy nhiên vẫn còn rất nhiều vấn đề:
❑ Deadlock, livelock , race condition...
► Ý nghĩa của câu chuyện: hãy cẩn thận!

BUSINESS INFORMATION TECHNOLOGY


9
Apache Hadoop
► Hệ thống phân tán có khả
năng chịu lỗi, có khả năng
hỗ trợ cho Dữ liệu lớn:
❑ Lưu trữ dữ liệu
❑ Xử lí dữ liệu
❑ Một máy dữ liệu lớn ảo
❑ Các khái niệm/ý tưởng mượn
từ Google;
❑ Nguồn mở theo giấy phép
Apache

BUSINESS INFORMATION TECHNOLOGY


10
Lịch sử Hadoop

BUSINESS INFORMATION TECHNOLOGY


11
Hệ sinh thái Hadoop

BUSINESS INFORMATION TECHNOLOGY


12
Những ưu điểm của Hadoop
► Khắc phục những hạn chế truyền thống về lưu trữ và
tính toán
► Cung cấp khả năng mở rộng tuyến tính từ 1 đến
4000 node
► Phần mềm nguồn mở, chi phí thấp
► Tận dụng phần cứng rẻ tiền làm nền tảng
► Phân tích dữ liệu chi tiết cao
► Dữ liệu có cấu trúc và không cấu trúc

BUSINESS INFORMATION TECHNOLOGY


13
Những ai đang dùng Hadoop

BUSINESS INFORMATION TECHNOLOGY


14
Các thành phần chính của Hadoop
► HDFS (Hadoop Distributed File System):
❑ HDFS là hệ thống file phân tán được sử dụng để lưu trữ
dữ liệu. Nó phân chia dữ liệu thành các khối và phân tán
chúng trên nhiều máy tính
► MapReduce:
❑ MapReduce là khung mô hình lập trình để xử lý và tính
toán trên số lượng dữ liệu lớn trong môi trường phân tán.
❑ Nó hoạt động dựa trên 2 pha chính là Map và Reduce.
Pha Map sẽ chia nhỏ dữ liệu thành các cặp key-value,
sau đó pha Reduce sẽ nhóm các cặp key-value lại với
nhau để tính toán kết quả cuối cùng

BUSINESS INFORMATION TECHNOLOGY


15
Các thành phần chính của Hadoop
► YARN (Yet Another Resource Negotiator):
❑ YARN là một khung phần mềm quản lý và phân bổ tài
nguyên để vận hành các ứng dụng trên Hadoop.
❑ Nó cung cấp các dịch vụ như quản lý tài nguyên, lên lịch
và giám sát cho các ứng dụng chạy trên Hadoop.

BUSINESS INFORMATION TECHNOLOGY


16
HDFS (Hadoop Distributed File System)
► HDFS có khả năng chịu lỗi cao (fault-tolerant) và
được thiết kế để deploy trên các phần cứng rẻ tiền
► HDFS lưu trữ dữ liệu dưới dạng các khối, mỗi khối
có kích thước mặc định là 128MB

BUSINESS INFORMATION TECHNOLOGY


17
HDFS (Hadoop Distributed File System)
► HDFS sử dụng kiến
trúc Master/Slave, bao gồm
hai thành phần chính
là NameNode và DataNode
❑ NameNode là trung tâm điều
khiển của HDFS và lưu trữ
thông tin về vị trí và trạng
thái các khối dữ liệu. Có
1 NameNode (Master)
❑ DataNode là các nút lưu trữ
dữ liệu thực sự và phân tán
dữ liệu trên các nút khác
nhau. có một hoặc nhiều
các DataNode (Worker)

BUSINESS INFORMATION TECHNOLOGY


18
HDFS (Hadoop Distributed File System)
► HDFS cung cấp các tính năng như sao lưu dữ liệu,
phục hồi dữ liệu, xử lý song song và truy vấn dữ liệu
từ xa.
► HDFS cũng cung cấp
các cơ chế để quản lý
dữ liệu, bao gồm các
cơ chế như tự động
phân phối dữ liệu, cấu
trúc dữ liệu và các cơ
chế lưu trữ lớn.

BUSINESS INFORMATION TECHNOLOGY


19
MapReduce
► MapReduce được phát triển bởi Google và sau đó
được Apache Software Foundation phát triển và phát
hành dưới dạng một phần của hệ sinh thái Hadoop.
► MapReduce có thể xử lý nhiều loại dữ liệu khác nhau,
bao gồm văn bản, hình ảnh, âm thanh và video. Nó cũng
hỗ trợ các tính năng xử lý lỗi, sao lưu và khôi phục dữ
liệu.
► MapReduce cũng có một số hạn chế.
❑ Việc xử lý dữ liệu có thể chậm nếu dữ liệu không được chia
đều giữa các nút
❑ Không phù hợp cho các tác vụ xử lý dữ liệu phức tạp và phân
tích thời gian thực.

BUSINESS INFORMATION TECHNOLOGY


20
Word Count Example

► Yêu cầu:
❑ Viết mã giả để giải bài toán này
❑ Viết lại với 3 Threads song song cùng xử lý

BUSINESS INFORMATION TECHNOLOGY


21
Word Count Walkthrough

BUSINESS INFORMATION TECHNOLOGY


22
Word Count Walkthrough
► Giải thích giai đoạn từ 3 sang 4, làm sao để không
trùng Word

BUSINESS INFORMATION TECHNOLOGY


23
Word Count Logic
► Logic đằng sau việc đếm từ được thể hiện bằng cách
sử dụng hai chức năng:
❑ WordExtractor: String à {(w, 1)}
❑ WordSum: (w,{c}) à (w, Σc)

BUSINESS INFORMATION TECHNOLOGY


24
Complete Word Count in Hadoop
► Source nguồn link

BUSINESS INFORMATION TECHNOLOGY


25
Complete Word Count in Spark
// In Scala shell
val lines = sc.textFile("data.txt")
val pairs = lines.flatMap(s => s.split("\\b"))
.map(w => (w,1))
val counts = pairs.reduceByKey((a, b) => a + b)
counts.saveAsTextFile("word_count_output.txt")

BUSINESS INFORMATION TECHNOLOGY


26
Word Count Execution
Input Map Shuffle & Sort Reduce Output

the, 1
brown, 1
the quick fox, 1 brown, 2
brown fox Map
fox, 2
Reduce how, 1
now, 1
the, 1 the, 3
fox, 1
the, 1
the fox ate
the mouse Map
quick, 1

how, 1
now, 1 ate, 1 ate, 1
brown, 1 mouse, 1 cow, 1
Reduce
mouse, 1
how now quick, 1
Map cow, 1
brown cow

BUSINESSCó
INFORMATION
cách nào tốiTECHNOLOGY
ưu hóa để tính nhanh hơn?
27
Tối ưu hóa
► Sử dụng combiner:
❑ Cho các khóa lặp lại
❑ Các tác vụ tổng hợp: sum, count, max,..
❑ Giúp giảm kích thước của dữ liệu trung gian
► Vi dụ:
❑ def combiner(key, values):
❑ output(key, sum(values))

BUSINESS INFORMATION TECHNOLOGY


28
Tối ưu hóa
Input Map & Combine Shuffle & Sort Reduce Output

the, 1
brown, 1
the quick fox, 1 brown, 2
brown fox Map
fox, 2
Reduce how, 1
now, 1
the, 3
the, 2
fox, 1
the fox ate
the mouse Map
quick, 1

how, 1
now, 1 ate, 1 ate, 1
brown, 1 mouse, 1 cow, 1
Reduce
mouse, 1
how now quick, 1
Map cow, 1
brown cow

BUSINESS INFORMATION TECHNOLOGY


29

You might also like