Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 6 - Các kĩ thuật xử lý dữ liệu lớn theo khối (Phần 2)
lượt xem 3
download
Bài giảng "Lưu trữ và xử lý dữ liệu lớn: Chương 6 - Các kĩ thuật xử lý dữ liệu lớn theo khối (Phần 2)" trình bày các nội dung chính sau đây: MapReduce với chuỗi các jobs; Toàn cảnh về I/O dữ liệu; RAM có khả năng thay thế ổ đĩa cứng; Một nền tảng xử lý dữ liệu hợp nhất cho dữ liệu lớn;... Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 6 - Các kĩ thuật xử lý dữ liệu lớn theo khối (Phần 2)
- Chương 6 Các kĩ thuật xử lý dữ liệu lớn theo khối - phần 2 Apache Spark Một nền tảng xử lý dữ liệu hợp nhất cho dữ liệu lớn
- MapReduce với chuỗi các jobs • Iterative jobs với MapReduce đòi hỏi thao tác I/O với dữ liệu trên HDFS • Thực tế I/O trên ổ đĩa cứng rất chậm!
- Toàn cảnh về I/O dữ liệu 0.1 Gb/s 1 Gb/s or125 MB/s Nodesin another Network rack CPUs: 10GB/s 1 Gb/s or125 MB/s Nodesin 100MB/s 600MB/s same rack 3-12 msrandom 0.1 ms random access access $0.025 perGB $0.35 perGB
- RAM có khả năng thay thế ổ đĩa cứng 4
- Một nền tảng xử lý dữ liệu hợp nhất cho dữ liệu lớn • Hỗ trợ tốt hơn MapReduce trong • Các giải thuật có tính lặp - Iterative algorithms • Khai phá dữ liệu trong môi trường tương tác - Interactive data mining • Khả năng chịu lỗi, khai thác tính địa phương của dữ liệu, tính khả mở • Ẩn đi sự phức tạp cua của môi trường phân tán khi lập trình
- Một nền tảng xử lý dữ liệu hợp nhất cho dữ liệu lớn Environments YARN Workloads DataFrames API and SparkSQL Spark Streaming MLlib GraphX RDDAPI SparkCore {JSON} Data Sources
- Khai thác bộ nhớ trong thay vì ổ đĩa HDD HDFS HDFS HDFS 7
- Sự khác nhau giữa Spark và MapReduce Apache Hadoop MR Apache Spark Storage Chỉ sử dụng HDD Sử dụng cả bộ nhớ trong và HDD Operations Hai thao tác Map và Reduce Bao gồm nhiều thao tác biến đổi (transformations) và hành động (actions) trên dữ liệu Execution model Xử lý theo khối – batch Theo khối, tương tác , luồng Languages Java Scala, Java, Python và R
- So sánh hiệu năng Spark và MapReduce https://databricks.com/blog/2014/10/10/spark-petabyte-sort.html
- Giao diện dòng lệnh tương tác (Scala, Python and Ronly)
- Thực thi chương trình Spark W Ex RDD T RDD T Driver Program WorkerMachine W Ex RDD T RDD T WorkerMachine
- Resilient Distributed Dataset (RDD) • RDDs là cấu trúc dữ liệu song song, có khả năng chịu lỗi (fault-tolerant, parallel data structures) mà cho phép người dùng chỉ định lưu trữ dữ liệu trung gian trên bộ nhớ (intermediate results in memory), điều khiển sự phân chia để tối ưu hóa việc phân tán dữ liệu, và cũng có thể thay đổi, chỉnh sửa những dữ liệu này sử dụng một tập các thao tác rất đa dạng (a rich set of operators). • RDDs có khả năng tự động tái tạo lại khi bị lỗi • RDD được thiết kế tối ưu cho các biến đổi thô, theo lô (coarse-grained transformations) thay vì hỗ trợ các thao tác cập nhật quá chi tiết (fine-grained updates) • Vd., map, filter và join mà tác động tới nhiều bản ghi dữ liệu đồng thời thay vì là các thao tác chỉ cập nhật lên một đối tượng dữ liệu riêng lẻ 12
- Sự phân vùng của RDD và khả năng song song hóa RDD item-1 item-6 item-11 item-16 item-21 item-2 item-7 item-12 item-17 item-22 item-3 item-8 item-13 item-18 item-23 item-4 item-9 item-14 item-19 item-24 item-5 item-10 item-15 item-20 item-25 W W W Ex Ex Ex RDD RDD RDD RDD RDD
- Khởi tạo RDD • Một RDD cơ sở có thể được tạo theo 2 cách • Song song hóa một collection (ví dụ mảng trong Python) • Đọc dữ liệu từ một nguồn bên ngoài (S3, C*, HDFS, etc) Error, ts, Info, ts, msg8 Error, ts, Error, ts, msg1 Warn, Warn, ts, msg3 Info, msg4 Warn, ts, msg2 msg2 Info, ts, ts, msg5 ts, msg9 Error, ts, msg8 Info, ts, Error, ts, logLinesRDD msg1 msg5 msg1
- Phương thức Parallelize // Parallelize in Scala val wordsRDD = sc.parallelize(List("fish", "cats", "dogs")) • Một mảng làm thm số đầu vào cho phương thức parallelize của SparkContext • Thường được sử # Parallelize in Python dụng để thử wordsRDD = sc.parallelize(["fish", "cats", "dogs"]) nghiệm vì đòi hỏi toàn bộ dữ liệu phải có sẵn trên bộ nhớ trong. // Parallelize in Java JavaRDD wordsRDD = sc.parallelize(Arrays.asList("fish", "cats", "dogs"));
- RDD khởi tạo từ tệp tin văn bản // Read a local txt file in Scala Ngoài ra có các val linesRDD = sc.textFile("/path/to/README.md") phương thức đọc từ HDFS, C*, S3, HBase, etc. # Read a local txt file in Python linesRDD = sc.textFile("/path/to/README.md") // Read a local txt file in Java JavaRDD lines = sc.textFile("/path/to/README.md");
- Các thao tác trên RDD • 2 dạng thao tác: transformations and actions • Transformations là lazy (không được tính toán ngay lập tức) • Transformations chỉ được thực thi khi một action được gọi • Có thể lưu trữ lâu dài (hoặc tạm thời) dữ liệu của RDD trên RAM và cứng
- Ví dụ về transformation logLinesRDD Error, ts, Info, ts, msg8 Error,ts, Error, ts, msg1 Warn, Warn, ts, msg3 Info, msg4 Warn, ts, msg2 msg2 Info, ts, msg5 ts, msg9 Error, ts, ts,msg8 Info, ts, Error, ts, (input/base RDD) msg1 msg5 msg1 .filter( λ ) Error,ts, Error,ts, msg3 Error,ts, msg1 Error, msg4 Error, ts, msg1 ts, msg1 errorsRDD
- Ví dụ về action errorsRDD Error,ts, msg3 Error,ts, Error,ts, msg4 Error, msg1 Error, ts, msg1 ts, msg1 .coalesce( 2) Error, ts, msg1 Error, ts, msg4 Error, ts, msg3 Error, ts, msg1 Error, ts, msg1 cleanedRDD .collect( ) Driver
- Execute DAG! .collect( ) Driver
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Nhập môn Tin học 2 - Chương 1: Cấu trúc máy tính
39 p | 71 | 9
-
Bài giảng Chương 2: Thể hiện dữ liệu trong máy tính số
50 p | 107 | 7
-
Bài giảng môn Tin học: Chương 2 - ĐH Bách khoa TP.HCM
25 p | 75 | 5
-
Bài giảng Nhập môn Tin học - Chương 5: Lưu trữ và xử lý dữ liệu
38 p | 57 | 5
-
Bài giảng Nhập môn Tin học: Chương 5 - Từ Thị Xuân Hiền
38 p | 70 | 5
-
Bài giảng Quản trị và bảo trì hệ thống: Quản trị chính sách nhóm
22 p | 19 | 4
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 6 - Các kĩ thuật xử lý dữ liệu lớn theo khối (Phần 1)
58 p | 24 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 5 - Hệ thống truyền thông điệp phân tán
43 p | 9 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 4 - Cơ sở dữ liệu phi quan hệ NoSQL (Phần 3)
50 p | 11 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 4 - Cơ sở dữ liệu phi quan hệ NoSQL (Phần 2)
16 p | 10 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 4 - Cơ sở dữ liệu phi quan hệ NoSQL (Phần 1)
43 p | 8 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 3.2 - Hệ thống tập tin phân tán Hadoop HDFS
30 p | 7 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 3.1 - Hệ thống tập tin phân tán Hadoop HDFS
18 p | 13 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 2 - Hệ sinh thái Hadoop
40 p | 15 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 7 - Các kĩ thuật xử lý luồng dữ liệu lớn
75 p | 17 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 1 - Tổng quan về lưu trữ và xử lý dữ liệu lớn
43 p | 16 | 2
-
Bài giảng môn Tin học: Chương 2 - TS. Nguyễn Văn Hiệp
25 p | 47 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn