অ্যাপাচি স্পার্ক স্ট্রিমিংয়ে সংশ্লেষিত স্টেটফুল রূপান্তর

এই ব্লগ পোস্টটি স্পার্ক স্ট্রিমিংয়ে রাষ্ট্রীয় রূপান্তরগুলি নিয়ে আলোচনা করে। একটি হডোপ স্পার্ক ক্যারিয়ারের জন্য ক্রমযুক্ত ট্র্যাকিং এবং আপ-দক্ষতা সম্পর্কে সমস্ত জানুন।

পৃথ্বীরাজ বোস অবদান রেখেছেন



আমার আগের ব্লগে আমি অ্যাপাচি স্পার্ক স্ট্রিমিংয়ের উইন্ডোটিং ধারণাটি ব্যবহার করে রাষ্ট্রীয় রূপান্তরগুলি নিয়ে আলোচনা করেছি। আপনি এটি পড়তে পারেন এখানে



এই পোস্টে আমি অ্যাপাচি স্পার্ক স্ট্রিমিংয়ে संचयी রাষ্ট্রীয় অপারেশনগুলি নিয়ে আলোচনা করতে যাচ্ছি। আপনি যদি স্পার্ক স্ট্রিমিংয়ে নতুন হন তবে উইন্ডোটিং কীভাবে কাজ করে তা বুঝতে আমার পূর্ববর্তী ব্লগটি পড়ার জন্য আমি দৃ strongly়ভাবে আপনাকে পরামর্শ দিচ্ছি।

স্পার্ক স্ট্রিমিংয়ে স্টেটালফুল ট্রান্সফর্মেশনের প্রকারগুলি (অবিরত…)

> সংক্ষিপ্ত ট্র্যাকিং

আমরা ব্যবহার করেছি কমানোবাইকি ও উইন্ডো (…) কীগুলির রাজ্যগুলি ট্র্যাক করতে এপিআই, তবে নির্দিষ্ট ব্যবহারের ক্ষেত্রে উইন্ডোং সীমাবদ্ধতা সৃষ্টি করে। কী কী যদি আমরা কীগুলির সময়সীমাগুলিকে সীমাবদ্ধ না রেখে সারা বিশ্বে কীগুলির রাজ্যগুলি সংগ্রহ করতে চাই? সেক্ষেত্রে আমাদের ব্যবহার করা দরকার আপডেটস্টেটবাইকে (…) আগুন



এই এপিআইটি স্পার্ক 1.3.0 এ চালু হয়েছিল এবং এটি খুব জনপ্রিয় হয়েছে। তবে এই এপিআইটির কিছুটা ওভারহেডের পারফরম্যান্স রয়েছে, সময়ের সাথে সাথে রাজ্যের আকার বাড়ার সাথে সাথে এর কর্মক্ষমতা হ্রাস পায়। আমি এই API এর ব্যবহার দেখানোর জন্য একটি নমুনা লিখেছি। আপনি কোড খুঁজে পেতে পারেন এখানে

স্পার্ক 1.6.0 একটি নতুন এপিআই প্রবর্তন করেছে মানচিত্র উইথস্টেট (…) যা কার্য সম্পাদন করে ওভারহেডগুলি সমাধান করে আপডেটস্টেটবাইকে (…) । এই ব্লগে আমি একটি নির্দিষ্ট নমুনা প্রোগ্রাম লিখেছি যা এই নির্দিষ্ট এপিআই সম্পর্কে আলোচনা করতে যাচ্ছি to আপনি কোড খুঁজে পেতে পারেন এখানে

আমি কোনও কোড ওয়াক-থ্রোতে ডুব দেওয়ার আগে চেকপয়েন্টে কয়েকটি শব্দ রেখে দেওয়া যাক। যে কোনও রাষ্ট্রীয় রূপান্তরের জন্য, চেকপয়েন্টিং বাধ্যতামূলক। ড্রাইভার প্রোগ্রামটি ব্যর্থ হলে চেকপয়েন্টিং কীগুলির স্থিতি পুনরুদ্ধার করার প্রক্রিয়া। ড্রাইভারটি পুনরায় চালু হলে, চেকপয়েন্টিং ফাইলগুলি থেকে কীগুলির স্থিতি পুনরুদ্ধার করা হয়। চেকপয়েন্টের অবস্থানগুলি সাধারণত এইচডিএফএস বা অ্যামাজন এস 3 বা কোনও নির্ভরযোগ্য স্টোরেজ হয়। কোডটি পরীক্ষা করার সময়, কেউ স্থানীয় ফাইল সিস্টেমেও সঞ্চয় করতে পারে।



এইচটিএমএল মধ্যে একটি লাইন বিরতি কি

নমুনা প্রোগ্রামে আমরা হোস্ট = লোকালহোস্ট এবং পোর্ট = 9999 এ সকেট পাঠ্য স্ট্রিমটি শুনি It এটি আগত প্রবাহকে (শব্দগুলির, সংঘটনগুলির সংখ্যা হিসাবে) টোকনাইজ করে এবং 1.6.0 এপিআই ব্যবহার করে শব্দ গণনাটিকে ট্র্যাক করে মানচিত্র উইথস্টেট (…) । অতিরিক্তভাবে, আপডেট ছাড়া কীগুলি ব্যবহার করে সরানো হয় স্টেটস্পেক.টাইমআউট এপিআই আমরা এইচডিএফএসে চেকপয়েন্টিং করছি এবং প্রতি 20 সেকেন্ডে চেকপয়েন্টিং ফ্রিকোয়েন্সি।

আসুন প্রথমে একটি স্পার্ক স্ট্রিমিং সেশন তৈরি করি,

Spark-streaming-session

আমরা একটি তৈরি চেকপয়েন্টডির এইচডিএফএসে এবং তারপরে বস্তু পদ্ধতিতে কল করুন getOrCreate (…) । দ্য getOrCreate এপিআই চেক করে চেকপয়েন্টডির পুনরুদ্ধার করার জন্য পূর্ববর্তী কোনও রাজ্য রয়েছে কিনা তা যদি বিদ্যমান থাকে তবে তা স্পার্ক স্ট্রিমিং সেশনটি পুনরায় তৈরি করে এবং নতুন ডেটা নিয়ে যাওয়ার আগে ফাইলগুলিতে সঞ্চিত ডেটা থেকে কীগুলির স্থিতি আপডেট করে। অন্যথায় এটি একটি নতুন স্পার্ক স্ট্রিমিং সেশন তৈরি করে।

দ্য getOrCreate চেকপয়েন্ট ডিরেক্টরি ডিরেক্টরি এবং একটি ফাংশন নেয় (যা আমরা নাম দিয়েছি createFunc ) যার স্বাক্ষর হওয়া উচিত () => স্ট্রিমিং কনটেক্সট

এর ভিতরে কোড পরীক্ষা করা যাক createFunc

লাইন # 2: আমরা 'টেস্টম্যাপ উইথস্টেটজব' এবং ব্যাচের ব্যবধান = 5 সেকেন্ডে কাজের নামের সাথে একটি স্ট্রিমিং প্রসঙ্গ তৈরি করি।

লাইন # 5: চেকপয়েন্ট ডিরেক্টরি সেট করুন।

লাইন # 8: শ্রেণিটি ব্যবহার করে রাষ্ট্রের স্পেসিফিকেশন সেট করুন org.apache.streaming.StateSpec অবজেক্ট আমরা প্রথমে ফাংশনটি সেট করেছিলাম যা রাষ্ট্রটিকে ট্র্যাক করবে, তারপরে আমরা পরবর্তী রূপান্তরগুলির সময় উত্পন্ন হওয়া ডিএসটিস্ট্রিমগুলির জন্য পার্টিশনের সংখ্যা নির্ধারণ করি। অবশেষে আমরা টাইমআউট সেট (30 সেকেন্ড) যেখানে কোনও কী এর জন্য কোনও আপডেট যদি 30 সেকেন্ডের মধ্যে না পাওয়া যায় তবে কী অবস্থাটি সরানো হবে।

লাইন 12 #: সকেট স্ট্রিম সেটআপ করুন, আগত ব্যাচের ডেটা সমতল করুন, একটি মূল-মান জুটি তৈরি করুন, কল করুন মানচিত্রের সাথে , 20-এ চেকপয়েন্টিং ব্যবধান সেট করুন এবং শেষ পর্যন্ত ফলাফলগুলি মুদ্রণ করুন।

স্পার্ক ফ্রেমওয়ার্কটি ডাকে e createFunc পূর্ববর্তী মান এবং বর্তমান অবস্থা সহ প্রতিটি কী জন্য। আমরা সমষ্টিটি গণনা করি এবং সংযোজিত যোগফলের সাথে রাজ্যকে আপডেট করি এবং শেষ পর্যন্ত আমরা কীটির জন্য যোগফলটি ফিরিয়ে দিই।

গিথুব সূত্র -> টেস্টম্যাপস্টেটবিথকি.স্কালা , টেস্টআপডেটস্টেটবাইকি.স্কালা

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।

সম্পর্কিত পোস্ট:

অ্যাপাচি স্পার্ক এবং স্কেল দিয়ে শুরু করুন

উইন্ডোয়িং স্পার্ক স্ট্রিমিংয়ের সাথে রাষ্ট্রীয় রূপান্তর