1. GIẢI PHÁPXỬ LÝ BIG DATATRÊN
APACHE SPARK
NguyễnTrầnNgọcLinh
Bigdataspecialist–ViettelCorporation
2. ABOUT ME
- Big data specialist at Viettel
- Certifications:
Cloudera CertifiedAdministrator forApache
Hadoop(CCAH) – 2016
EMCAdvancedAnalytics Specialistfor data
Scientists – 2016
Data Bricks and O’Reilly – Developer
Certification forApache Spark - 2017
- Email:linhntn3@vietel.com.vnorlinhntn0612@gmail.com
- Linkedin:https://www.linkedin.com/in/linhntn3/
3. Xử lý Big data trênApache Spark
Phần I : Tổng quan big data
Phần II : Hiện trạng xử lý big data
Phần III : Xử lý big data trênApache Spark
4. Xử lý dữ liệu lớn trênApache Spark
Phần I : Tổng quan xử lý dữ liệu lớn
Tổng quan
Xây dựng nền tảng
Xu hướng
5. Khái niệm:
Big Data (Dữ liệu lớn) là thuật ngữ mô tả quá trình xử lý và phân tích dữ liệu trên một tập
dữ liệu lớn bao gồm cả dữ liệu có cấu trúc hay không có cấu trúc.
Tính quan trọng:
- Giảm chi phí
- Giảm thời gian thực hiện
- Kế hoạch phát triển và tối ưu sản phẩm
-Đưa ra quyết định tốt hơn trong kinh doanh
6. Tổng quan về big data
Khái niệm:
Big Data (Dữ liệu lớn) là thuật ngữ mô tả quá trình xử lý và phân tích dữ liệu trên một tập
dữ liệu lớn bao gồm cả dữ liệu có cấu trúc hay không có cấu trúc.
Tính quan trọng:
- Giảm chi phí
- Giảm thời gian thực hiện
- Kế hoạch phát triển và tối ưu sản phẩm
-Đưa ra quyết định tốt hơn trong kinh doanh
8. Xây dựng nền tảng big data
Nền tảng Big Data bao gồm:
Thành phần thu thập dữ liệu (Data acquisition)
deliver low, độ trễ chấp nhận được trong việc lấy dữ liệu, truy vấn đơn giản, quản lý được
lượng transaction cao, trong môi trường phân tán, hỗ trợ linh hoạt, cấu trúc dữ liệu đa dạng.
Thành phần tổ chức dữ liệu (Data organization)
khả năng xử lý và thao tác dữ liệu tại chính nơi lưu trữ, hỗ trợ high throughput để xử lý lượng
lớn dữ liệu và nhiều loại dữ liệu có định dạng khác nhau.
Thành phần tích dữ liệu (Data analysis)
hỗ trợ phân tích big data ở mức độ thống kê và data mining trên các kiểu dữ liệu đa dạng trên
các hệ thống khác nhau, có khả năng giãn nở cho khối lượng dữ liệu cực lớn, thời gian phản hồi
chấp nhận được và có khả năng ra quyết định.
10. Xử lý big data trênApache Spark
Phần II : Hiện trạng xử lý big data
Giải pháp xử lý big data trên Hadoop
Giải pháp map-reduce in memory
11. Hiện trạng xử lý dữ liệu lớn
Giải pháp xử lý bằng DB
- DB là điểm nghẽn
- Tăng năng lực xử lý theo chiều dọc => chi
phí cao
- Không có khả năng xử lý song song
- Dữ liệu có cấu trúc
- Không có khả năng phân tích dữ liệu theo
thời gian chấp nhận được
12. Hiện trạng xử lý dữ liệu lớn
Giải pháp xử lý bằng Hadoop
- Tận dụng được khả năng lưu trữ của Hadoop HDFS.
- Gặp các vấn đề trong việc xử lý:
• Phụ thuộc vào Hive (SQL like). Không tự viết được
phần xử lý map-reduce.
• Các phép toán tổng hợp liên quan đến join chạy rất
chậm
• Không tối ưu các bước xử lý bằng map-reduce
- Không hỗ trợ ứng dụng thời gian thực
- Hadoop map-reduce framework có nhiều nhược điểm.
13. Giải pháp xử lý Big Data trên Hadoop
Map
Map
Map
Reduce
Reduce
Input Output
MRHDFS
14. Nhược điểm Hadoop map-reduce
Dữ liệu trung gian thường xuyên đọc và ghi từ ổ cứng
Sao lặp quá nhiều để tránh lỗi
Không tối ưu việc partition và “shuffle” dữ liệu
Không tối ưu việc quản lý job-flow
Input iter. 1 iter. 2 . . .
HDFS
read
HDFS
write
HDFS
read
HDFS
write
Map
Map
Map
Reduce
Reduce
Input Output
15. Giải pháp map-reduce in memory
Ưu điểm đọc –ghi dữ liệu trên memory
- I/O memory >> disk (SDD)
- Nhiều tập dữ liệu của các job xử lý dữ liệu có khả năng
lưu trữ được trên memory
vd: 90% dữ liệu Yahoo, Facebook, Bing
- Dung lượng RAM ngày càng tăng, chi phí ngày càng giảm
Map-Reduce in
memory
16. Xử lý big data trênApache Spark
Phần III : Xử lý big data trênApache Spark
Tổng quan
Apache Spark vs Hadoop MR
Cơ chế xử lýApache Spark
Xử lý dữ liệu thời gian thực trên Spark
Phân tích dữ liệu trên Spark
Hiệu năngvà ứng dụngcủa Spark
17. Tổng quanApache Spark
Opensource Framework tính toán song song trên cụm phát triển bởi AMPLab – UC Berkeley
Top-level project của Apache
Nhanh từ 10 – 100x Hadoop
Cơ chế xử lý in-memory
Quản lý công việc dựa trên DAG
Cơ chế chống lỗi không dựa trên sao lặp dữ liệu
Hỗ trợ nhiều hệ thống file (NTFS, S3, HDFS – Hadoop)
Cung cấp API mức cao (Java, Scala, Python)
Cung cấp 3 cơ chế trong cùng một nền tảng:
Xử lý dữ liệu theo lô (batch processing)
Xử lỹ dữ liệu thời gian thực (streaming processing)
Phân tích dữ liệu (machine learning)
21. Cơ chế xử lý dữ liệuApache Spark
RDD (Resilient Distributed Dataset)
Tập dữ liệu có khả năng phân tán
Lưu trữ trên memory phục vụ việc sử dụng lại một cách nhanh chóng
Cung cấp cơ chế cache trên memory
Tự động phục hồi dữ liệu khi xảy ra lỗi
Áp dụng vào nhiều loại ứng dụng
Các phương thức áp dụng cho RDD
Transformation (map, filter, groupBy, join…)
• Biến đổi một hoặc nhiều RDD thành một RDD mới
Action (count, collect, save)
• Trả về kết quả hoặc lưu trữ dữ liệu (HDFS, s3, memory…)
23. Cơ chế sửa lỗi Apache Spark
Hadoop xây dựng cơ chế chịu lỗi bằng việc sao lặp dữ liệu
Apache Spark xây dựng cơ chế chịu lỗi bằng RDD “lineage”
24. Cơ chế lập lịchApache Spark
Lập lịch theo mô hình đồ thị
DAG
Chia các task thành các Stage
Cache dữ liệu cần sử dụng lại
Phân chia partition hạn chế tối
đa việc shuffle dữ liệu qua
mạng
25. Xử lý dữ liệu thời gian thực –Apache Spark
Small batch ~ 1s
26. Xử lý dữ liệu thời gian thực –Apache Spark
Traditional Streaming Spark Streaming