مکانیزم پاکسازی دادههای Spark Streaming
(۱) DStream و RDD
همانطور که میدانیم، محاسبات Spark Streaming مبتنی بر Spark Core است و هسته Spark Core، RDD است، بنابراین Spark Streaming نیز باید با RDD مرتبط باشد. با این حال، Spark Streaming به کاربران اجازه نمیدهد که مستقیماً از RDD استفاده کنند، بلکه مجموعهای از مفاهیم DStream را انتزاع میکند. DStream و RDD روابطی فراگیر هستند که میتوانید آن را به عنوان الگوی دکوراسیون در جاوا درک کنید، یعنی DStream یک بهبود RDD است، اما رفتار آن مشابه RDD است.
DStream و RDD هر دو چندین شرط دارند.
(1) اقدامات تبدیل مشابهی مانند map، reduceByKey و غیره دارند، اما برخی اقدامات منحصر به فرد مانند Window، mapWithStated و غیره نیز دارند.
(2) همه دارای اکشنهای Action مانند foreachRDD، count و غیره هستند.
مدل برنامه نویسی سازگار است.
(ب) معرفی DStream در Spark Streaming
DStream شامل چندین کلاس است.
(1) کلاسهای منبع داده، مانند InputDStream، به طور خاص به عنوان DirectKafkaInputStream و غیره.
(2) کلاسهای تبدیل، معمولاً MappedDStream، ShuffledDStream
(3) کلاسهای خروجی، معمولاً مانند ForEachDStream
از موارد فوق، دادهها از ابتدا (ورودی) تا انتها (خروجی) توسط سیستم DStream انجام میشود، به این معنی که کاربر در حالت عادی نمیتواند مستقیماً RDDها را تولید و دستکاری کند، به این معنی که DStream فرصت و تعهد دارد که مسئول چرخه حیات RDDها باشد.
به عبارت دیگر، اسپارک استریمینگ دارای ... است.پاکسازی خودکارتابع.
(iii) فرآیند تولید RDD در Spark Streaming
جریان حیات RDDها در Spark Streaming به صورت تقریبی به شرح زیر است.
(1) در InputDStream، دادههای دریافتی به RDD تبدیل میشوند، مانند DirectKafkaInputStream که KafkaRDD را تولید میکند.
(2) سپس از طریق MappedDStream و سایر تبدیلهای داده، این زمان مستقیماً RDD مربوط به روش تبدیل map نامیده میشود.
(3) در عملیات کلاس خروجی، تنها زمانی که RDD نمایش داده میشود، میتوانید به کاربر اجازه دهید ذخیرهسازی مربوطه، سایر محاسبات و سایر عملیات را انجام دهد.