Cơ chế làm sạch dữ liệu Spark Streaming
(I) DStream và RDD
Như chúng ta đã biết, tính toán của Spark Streaming dựa trên Spark Core, và cốt lõi của Spark Core là RDD nên Spark Streaming cũng phải liên quan đến RDD.Tuy nhiên, Spark Streaming không cho người dùng sử dụng trực tiếp RDD mà trừu tượng hóa một tập hợp các khái niệm DStream, DStream và RDD là các mối quan hệ bao hàm, các bạn có thể hiểu nó là mẫu trang trí trong Java, tức là DStream là một bản nâng cao của RDD, nhưng hành vi tương tự như RDD.
DStream và RDD đều có một số điều kiện.
(1) có các hành động chuyển đổi tương tự, chẳng hạn như map, lessByKey, v.v., nhưng cũng có một số hành động độc đáo, chẳng hạn như Window, mapWithStated, v.v.
(2) tất cả đều có hành động Hành động, chẳng hạn như foreachRDD, count, v.v.
Mô hình lập trình là nhất quán.
(B) Giới thiệu DStream trong Spark Streaming
DStream chứa một số lớp.
(1) Các lớp nguồn dữ liệu, chẳng hạn như inputDStream, cụ thể như DirectKafkaInputStream, v.v.
(2) Các lớp chuyển đổi, điển hình là MappedDStream, ShuffledDStream
(3) các lớp đầu ra, điển hình như ForEachDStream
Từ trên, dữ liệu từ đầu (đầu vào) đến cuối (đầu ra) được thực hiện bởi hệ thống DStream, có nghĩa là người dùng thông thường không thể trực tiếp tạo và thao tác RDD, điều đó có nghĩa là DStream có cơ hội và nghĩa vụ được chịu trách nhiệm về vòng đời của RDD.
Nói cách khác, Spark Streaming cótự động dọn dẹpchức năng.
(iii) Quá trình tạo RDD trong Spark Streaming
Vòng đời của RDD trong Spark Streaming khó khăn như sau.
(1) Trong inputDStream, dữ liệu nhận được sẽ được chuyển đổi thành RDD, chẳng hạn như DirectKafkaInputStream, tạo ra KafkaRDD.
(2) sau đó thông qua MappedDStream và chuyển đổi dữ liệu khác, lần này được gọi trực tiếp là RDD tương ứng với phương thức bản đồ để chuyển đổi
(3) Trong hoạt động của lớp đầu ra, chỉ khi RDD được hiển thị, bạn mới có thể cho phép người dùng thực hiện việc lưu trữ tương ứng, các phép tính khác và các hoạt động khác.