पाठ 21 / 25

Cluster Managers और Platforms

चुनें कि Spark कहाँ चलेगा: standalone, YARN, Kubernetes या managed platform।

Executors कहाँ से आते हैं

Spark कई cluster managers पर चलता है: standalone (Spark का अपना, सरल), YARN (Hadoop clusters), Kubernetes (executors pods के रूप में; cloud-native stacks में लोकप्रिय), और cluster छिपाने वाले managed platforms: Databricks, Amazon EMR (और EMR Serverless), Google Dataproc, Azure Synapse/HDInsight। Managed platforms autoscaling, notebooks, job schedulers और सुरक्षा जोड़ते हैं, कुछ नियंत्रण और लागत के बदले कम संचालन-काम देते हैं। Deploy modes: client mode में driver वहाँ चलता है जहाँ आप submit करते हैं (notebooks और debugging के लिए अच्छा); cluster mode में वह cluster के भीतर चलता है (production batch jobs के लिए अच्छा)। डेटा को object storage (S3, GCS, ADLS) में रखकर compute को storage से अलग रखें ताकि clusters अस्थायी हो सकें।

इसे भरोसेमंद रूप से चलाएँ

Deployment के विकल्प, testing, monitoring और table formats notebook job को भरोसेमंद pipeline बनाते हैं।

तीन चरण: deploy, test, निगरानी।
चित्र 7.1 — Deploy, test और निगरानी।

Platform चुनना

सरल शुरुआती मार्गदर्शिका।

Existing Hadoop/YARN estate            -> Spark on YARN
Cloud-native, containers, one platform  -> Spark on Kubernetes
Want notebooks + autoscale + less ops   -> Databricks / EMR / Dataproc
Small, spiky batch jobs                  -> serverless Spark (e.g. EMR Serverless)
Learning / unit tests                    -> local[*] on a laptop or Docker

त्वरित जाँच: डेटा को cluster पर नहीं, object storage में क्यों रखें?

  • Object storage हमेशा disks से तेज़ है
  • ताकि clusters अस्थायी हो सकें और storage से स्वतंत्र रूप से scale हो सकें
  • Spark स्थानीय files नहीं पढ़ सकता
  • यह backups की ज़रूरत हटाता है
Answer

ताकि clusters अस्थायी हो सकें और storage से स्वतंत्र रूप से scale हो सकें — Compute को storage से अलग करने पर डेटा हिलाए बिना clusters शुरू, आकार बदलना और बंद करना संभव है।