মূল বিষয়বস্তুতে যান

Simple Spark Job via `spark-submit`

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

আপনি আপনার স্থানীয় স্পার্ক ইনস্টলেশন বা আপনার কাছে থাকা কোনও কাস্টম জার থেকে স্পার্ক উদাহরণ সহ জার ফাইলটি ব্যবহার করতে পারেন।

নীচে একটি সাধারণ স্পার্ক কাজ সেট আপ এবং চালানোর জন্য একটি ধাপে ধাপে গাইড রয়েছে স্পার্ক-সাবমিট on Ilum. This guide demonstrates the core configuration needed and shows how to monitor your job’s progress within the Ilum platform.


টিএল; ডা.
এর মাধ্যমে দ্রুত একটি স্পার্ক কাজ চালাতে স্পার্ক-সাবমিট ইলুমে, জাভা 17 এবং স্পার্ক 3.5.5 ইনস্টল করা আছে তা নিশ্চিত করুন, আপনার স্পার্ক অ্যাপ্লিকেশন জেআর আপলোড করুন (উদাঃ, spark-examples.jar ), এবং ব্যবহার করে কাজ জমা দিন:

./বিন/স্পার্ক-সাবমিট \ 
--মাস্টার k8s://http://<ilum-core-address>:<ilum-core-port> \
--মোতায়েন-মোড ক্লাস্টার \
--class org.apache.spark.examples.SparkPi \
--conf spark.driver.memory=4g \
--conf spark.ilum.cluster=default \
--conf spark.kubernetes.container.image=ilum/spark:3.5.3 \
--conf spark.kubernetes.submission.waitAppCompletion=true \
s3a://ilum-files/spark-examples_2.12-3.5.7.jar

ইলামে একটি স্পার্ক চাকরি জমা দেওয়ার জন্য ধাপে ধাপে গাইড

1. পূর্বশর্ত নিশ্চিত করুন

  • নিশ্চিত করুন যে জাভা 17 ইনস্টল করা আছে এবং আপনার মধ্যে সঠিকভাবে সেট করা আছে JAVA_HOME .
  • ডাউনলোড এবং এক্সট্রাক্ট করুন অ্যাপাচি স্পার্ক ৩.৫.৫ (বা সমতুল্য সংস্করণ):
WGET https://dlcdn.apache.org/spark/spark-3.5.5/spark-3.5.5-bin-hadoop3.tgz 
tar -xzf Spark-3.5.5-bin-hadoop3.tgz
সিডি স্পার্ক-3.5.5-বিন-হ্যাডোপ 3

2. পোর্ট-ফরোয়ার্ড সেট আপ করুন (যদি কুবারনেটস বা মিনিকুব ব্যবহার করে)

যদি ইলাম কুবারনেটসে মোতায়েন করা হয় তবে পরিষেবা পোর্টটি আপনার স্থানীয় মেশিনে ফরোয়ার্ড করুন:

- কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-কোর 9888: 9888 

এটি ইলুমকে অ্যাক্সেসযোগ্য করে তোলে লোকালহোস্ট:9888 .

⚠️ উৎপাদনের টিপ: আপনি যদি একই কুবারনেটস ক্লাস্টারের মধ্যে থেকে যোগাযোগ করছেন তবে আপনি কুবারনেটস ডিএনএস-ভিত্তিক পরিষেবা ঠিকানাগুলি ব্যবহার করতে পারেন (উদাঃ, http://ilum-core.namespace.svc.cluster.local ). বিকল্পভাবে, আপনি আপনার কুবারনেটস সেটআপের উপর নির্ভর করে নোডপোর্ট বা ইনগ্রেস ব্যবহার করে ইলাম পরিষেবাগুলি প্রকাশ করতে পারেন।

3. আপনার স্পার্ক উদাহরণ জার ফাইলটি সনাক্ত করুন এবং আপলোড করুন

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

  • স্পার্ক আপনি সবেমাত্র নিষ্কাশিত ফোল্ডারে একটি নমুনা জার সরবরাহ করে:
spark-3.5.5-bin-hadoop3/examples/jars/spark-examples_2.12-3.5.7.jar
  • সেই জার (বা আপনার নিজস্ব অ্যাপ্লিকেশন জার) মিনিওতে আপলোড করুন আইলুম-ফাইল/ বালতি। উদাহরণস্বরূপ, আপনি এর মতো একটি পথ দিয়ে শেষ করতে পারেন:
s3a://ilum-files/spark-examples_2.12-3.5.7.jar
  • জেএআরের জন্য আপনি যে পথটি নির্দিষ্ট করেছেন তা নিশ্চিত করুন যে আপনি এটি মিনিওতে রেখেছেন (বা অন্য কোনও দোকানে যা ইলাম অ্যাক্সেস করতে পারে) ঠিক সেখানেই মেলে।

4. আপনার স্পার্ক কাজ জমা দিন

ইলাম-নির্দিষ্ট কনফিগারেশন

To take full advantage of Ilum’s features, consider including the following configuration options:

  • ক্লাস্টার নির্বাচন: --conf spark.ilum.cluster=default
  • কাস্টম কাজের নাম: --conf spark.app.name=my-spark-job
  • জব ট্যাগিং: --conf spark.ilum.tags=analytics,pi-calculation

আপনি ব্যবহার করে আপনার স্পার্ক কাজ জমা দিতে পারেন স্পার্ক-সাবমিট আপনার স্থাপনার সেটআপ এবং পছন্দসই ওয়ার্কফ্লোর উপর নির্ভর করে দুটি ভিন্ন মোডে:

ক) ইলাম কোরের সাথে আরইএসটি ব্যবহার করা

এই পদ্ধতিটি স্থানীয় পরীক্ষার জন্য উপযুক্ত:

এই পদ্ধতিতে সমর্থিত ইলাম-নির্দিষ্ট কনফিগারেশন:

  • --conf spark.ilum.cluster=default
  • --conf spark.app.name=my-spark-job
  • --conf spark.ilum.tags=analytics

এই কনফিগারেশনগুলি আপনাকে আইলাম ইউআইয়ের মধ্যে কাজগুলি আরও ভালভাবে শ্রেণিবদ্ধ করতে, সনাক্ত করতে এবং পরিচালনা করতে দেয়।

⚠️ spark.ilum.pyRequirements এই মোডে সমর্থিত নয়, কারণ REST PySpark জমা দেওয়া সমর্থন করে না

./বিন/স্পার্ক-সাবমিট \ 
--মাস্টার spark://localhost:9888 \
--মোতায়েন-মোড ক্লাস্টার \
--class org.apache.spark.examples.SparkPi \
--conf spark.master.rest.enabled=true \
s3a://ilum-files/spark-examples_2.12-3.5.7.jar

পরামিতি ব্যাখ্যা:

  • --মাস্টার spark://localhost:9888 : ইলাম কোর ঠিকানা।
  • --ডিপ্লয়-মোড ক্লাস্টার : স্পার্ক ক্লাস্টারে কাজ চালায়।
  • --conf spark.master.rest.enabled=true : আরইএসটি জমা দিতে সক্ষম করে।
  • s3a://... : মিনিওতে জার ফাইল পাথ।

জমা দেওয়ার পরে প্রত্যাশিত আউটপুট

একবার আপনি আপনার স্পার্ক কাজটি ব্যবহার করে জমা দেওয়ার পরে স্পার্ক-সাবমিট কমান্ড এবং সার্ভার প্রতিক্রিয়া জানায়, আপনার নিম্নলিখিতগুলির অনুরূপ একটি আউটপুট দেখতে হবে:

আরইএসটি অ্যাপ্লিকেশন জমা দেওয়ার প্রোটোকল ব্যবহার করে চলমান স্পার্ক। 
25/03/12 12:58:01 INFO RestSubmissionClient: spark://localhost:9888 মধ্যে একটি অ্যাপ্লিকেশন চালু করার জন্য একটি অনুরোধ জমা দেওয়া।
25/03/12 12:58:03 INFO RestSubmissionClient: জমা দেওয়া সফলভাবে 20250312-1158-qdnioef2rny হিসাবে তৈরি করা হয়েছে। ভোট জমা দেওয়ার রাজ্য...
25/03/12 12:58:03 INFO RestSubmissionClient: spark://localhost:9888 সালে 20250312-1158-qdnioef2rny জমা দেওয়ার স্থিতির জন্য একটি অনুরোধ জমা দেওয়া।
25/03/12 12:58:03 INFO RestSubmissionClient: ড্রাইভারের অবস্থা 20250312-1158-qdnioef2rny এখন জমা দেওয়া হয়েছে।
25/03/12 12:58:03 INFO RestSubmissionClient: ড্রাইভার ILUM_UI_ADDRESS/ওয়ার্কলোডস/ডিটেইলস/জব/20250312-1158-qdnioef2rny-এ ওয়ার্কার ILUM এ চলছে।
25/03/12 12:58:03 INFO RestSubmissionClient: সার্ভার ক্রিয়েটসাবমিশনরেসপন্স দিয়ে প্রতিক্রিয়া জানিয়েছে:
{
"ক্রিয়া": "জমা দেওয়ার প্রতিক্রিয়া তৈরি করুন",
"serverSparkVersion" : "3.4.1",
"সাবমিশনআইডি" : "20250312-1158-qdnioef2rny",
"সাফল্য" : সত্য
}
25/03/12 12:58:03 তথ্য শাটডাউনহুকম্যানেজার: শাটডাউন হুক কল করা হয়েছে
25/03/12 12:58:03 INFO ShutdownHookManager: মুছে ফেলা হচ্ছে ডিরেক্টরি /tmp/spark-fa2603be-488a-4e2a-9b7f-5e49825d379b

Replace ILUM_UI_ADDRESS with the actual address of your Ilum UI, depending on whether you’re using port-forwarding, NodePort, ingress, or a VPN tunnel.

এই পদ্ধতিটি আরও উন্নত এবং আপনাকে ইলুম-নির্দিষ্ট বর্ধনগুলিতে অ্যাক্সেস দেয়। এটি পাইথন-ভিত্তিক চাকরি জমা দেওয়ার সমর্থনও করে।

এই পদ্ধতিতে সমর্থিত ইলাম-নির্দিষ্ট কনফিগারেশন:

  • --conf spark.ilum.cluster=default
  • --conf spark.app.name=my-spark-job
  • --conf spark.ilum.tags=analytics,pi-calculation
  • --conf spark.ilum.pyRequirements="numpy==1.24.1,pandas==2.0.3"

এই কনফিগারেশনগুলি আপনাকে আইলাম ইউআইয়ের মধ্যে কাজগুলি আরও ভালভাবে শ্রেণিবদ্ধ করতে, সনাক্ত করতে এবং পরিচালনা করতে দেয়।

./বিন/স্পার্ক-সাবমিট \ 
--master k8s://http://localhost:9888 \
--মোতায়েন-মোড ক্লাস্টার \
--class org.apache.spark.examples.SparkPi \
--conf spark.driver.memory=4g \
--conf spark.ilum.cluster=default \
--conf spark.kubernetes.container.image=ilum/spark:3.5.3 \
--conf spark.kubernetes.submission.waitAppCompletion=true \
s3a://ilum-files/spark-examples_2.12-3.5.7.jar

পরামিতি ব্যাখ্যা:

  • --মাস্টার : আপনার কুবারনেটস এপিআই (বা আরইএসটি মোডের জন্য ইলাম কোর) এর ঠিকানা।
  • --ডিপ্লয়-মোড ক্লাস্টার : স্পার্ক ক্লাস্টারে চাকরি জমা দেয়।
  • --শ্রেণী : আপনার স্পার্ক অ্যাপ্লিকেশনের এন্ট্রি পয়েন্ট ক্লাস (ফর্ম্যাট ব্যবহার করুন filename.classname পাইথনের জন্য)।
  • --কনফ স্পার্ক.ড্রাইভার.মেমরি : ড্রাইভারের জন্য মেমরি বরাদ্দ নির্দিষ্ট করে।
  • --conf spark.ilum.cluster : লজিক্যাল ক্লাস্টার নাম ইলুমে সংজ্ঞায়িত করা হয়েছে।
  • --conf spark.kubernetes.container.image : স্পার্ক ধারণকারী ডকার চিত্র।
  • --conf spark.kubernetes.submission.waitAppCompletion=true : কাজ শেষ না হওয়া পর্যন্ত সিএলআই প্রক্রিয়াটি সংযুক্ত রাখে।
  • s3a://... : মিনিওর মতো এস 3-সামঞ্জস্যপূর্ণ স্টোরেজে জার পাথ।

জমা দেওয়ার পরে প্রত্যাশিত আউটপুট

একবার আপনি আপনার স্পার্ক কাজটি ব্যবহার করে জমা দেওয়ার পরে স্পার্ক-সাবমিট কমান্ড এবং সার্ভার প্রতিক্রিয়া জানায়, আপনার নিম্নলিখিতগুলির অনুরূপ একটি আউটপুট দেখতে হবে:

25/04/02 15:42:30 তথ্য স্পার্ককুবারনেটসক্লায়েন্টফ্যাক্টরি: ব্যবহারকারীদের কাছ থেকে বর্তমান প্রসঙ্গ ব্যবহার করে কে 8 এস ক্লায়েন্টকে স্বয়ংক্রিয় কনফিগার করা হচ্ছে K8S কনফিগারেশন ফাইল 
25/04/02 15:42:38 INFO LoggingPodStatusWatcherImpl: রাষ্ট্র পরিবর্তিত, নতুন রাষ্ট্র:
POD নাম: org-apache-spark-examples-sparkpi-30ae6d95f6bd37fd-driver
নামস্থান: ডিফল্ট
লেবেলসমূহ: ilum.jobId -> 20250402-1342-s55afwq7gax, ilum.clusterName -> default
POD UID: 20250402-1342-S55afwq7gax
তৈরির সময়: 2025-04-02T13:42:37.145Z
পরিষেবা অ্যাকাউন্টের নাম: আইএলইউএম-টেস্ট-ইলুম-কোর-স্পার্ক
খণ্ড: এন / এ
নোডের নাম: ইলুম
শুরুর সময়: 2025-04-02T13:42:37.145Z
পর্যায়: চলমান
ধারক অবস্থা:
ধারকের নাম: স্পার্ক-ড্রাইভার
ধারক চিত্র: আইএলইউএম / স্পার্ক: 3.5.3
ধারক রাষ্ট্র: চলমান
কন্টেইনার শুরু হয়েছে: 2025-04-02T13:42:37.145Z
25/04/02 15:42:38 INFO LoggingPodStatusWatcherImpl: অ্যাপ্লিকেশন আইডি spark-a4f8f1eb4ed344f38d799d79817c45dc এবং জমা আইডি ডিফল্ট : org-apache-spark-examples-sparkpi-30ae6d95f6bd37fd-driver to finish...
25/04/02 15:42:39 INFO LoggingPodStatusWatcherImpl: spark-a4f8f1eb4ed344f38d799d79817c45dc (পর্ব: চলমান) এর জন্য আবেদনের স্থিতি
...
25/04/02 15:43:03 INFO LoggingPodStatusWatcherImpl: spark-a4f8f1eb4ed344f38d799d79817c45dc (পর্যায়: চলমান) এর জন্য আবেদনের স্থিতি
25/04/02 15:43:03 INFO LoggingPodStatusWatcherImpl: ধারক চূড়ান্ত অবস্থা:

ধারকের নাম: স্পার্ক-ড্রাইভার
ধারক চিত্র: আইএলইউএম / স্পার্ক: 3.5.3
ধারক রাষ্ট্র: চলমান
কন্টেইনার শুরু হয়েছে: 2025-04-02T13:42:37.145Z
25/04/02 15:43:03 INFO LoggingPodStatusWatcherImpl: Application org.apache.spark.examples.SparkPi with application ID spark-a4f8f1eb4ed344f38d799d79817c45dc এবং জমা আইডি ডিফল্ট :org-apache-spark-examples-sparkpi-30ae6d95f6bd37fd-driver সমাপ্ত
25/04/02 15:43:03 তথ্য শাটডাউনহুকম্যানেজার: শাটডাউন হুক কল করা হয়েছে
25/04/02 15:43:03 INFO ShutdownHookManager: মুছে ফেলা হচ্ছে ডিরেক্টরি /tmp/spark-61e63485-79a3-491d-9bac-c71a8c1d96aa

ইলাম (মিনিও) এ অটো-আপলোডের মাধ্যমে একটি স্থানীয় স্পার্ক কাজ জমা দেওয়া হচ্ছে

ইলাম আপনাকে সরাসরি আপনার স্থানীয় ফাইল সিস্টেম থেকে স্পার্ক জব জমা দেওয়ার অনুমতি দেয়, স্বয়ংক্রিয়ভাবে মিনিও স্টোরেজে আপলোড পরিচালনা করে।

অতিরিক্ত পূর্বশর্ত

  • পোর্ট-ফরোয়ার্ডের মাধ্যমে মিনিও উপলব্ধ:
কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-মিনিও 9000: 9000 

স্বয়ংক্রিয় স্থানীয় ফাইল আপলোড সহ স্পার্ক সাবমিট কমান্ড

  1. প্রয়োজনীয় জার ফাইলগুলি ডাউনলোড করুন
    আপনার স্পার্ক ইনস্টলেশন ডিরেক্টরিতে যান (যেখানে আপনি বিন, জার ইত্যাদি দেখতে পান), তারপরে চালান:
wget -P jars \ 
https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/3.3.4/hadoop-aws-3.3.4.jar \
https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk/1.12.262/aws-java-sdk-1.12.262.jar \
https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-core/1.12.262/aws-java-sdk-core-1.12.262.jar \
https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-dynamodb/1.12.262/aws-java-sdk-dynamodb-1.12.262.jar \
https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-s3/1.12.262/aws-java-sdk-s3-1.12.262.jar
  1. আপনার স্পার্ক জব কুবারনেটসে জমা দিন
    এখন চালান (প্রয়োজন অনুসারে চিত্র / ট্যাগ বা এস 3 শংসাপত্রগুলি প্রতিস্থাপন করুন):
./বিন/স্পার্ক-সাবমিট \ 
--master k8s://http://localhost:9888 \
--মোতায়েন-মোড ক্লাস্টার \
--class org.apache.spark.examples.SparkPi \
--conf spark.ilum.cluster=default \
--conf spark.app.name=my-sparkpi-job \
--conf spark.kubernetes.container.image=ilum/spark:3.5.3 \
--conf spark.kubernetes.submission.waitAppCompletion=true \
--conf spark.kubernetes.file.upload.path=s3a://ilum-files/spark-jobs \
--conf spark.hadoop.fs.s3a.endpoint=http://localhost:9000 \
--conf spark.hadoop.fs.s3a.access.key=minioadmin \
--conf spark.hadoop.fs.s3a.secret.key=minioadmin \
--conf spark.hadoop.fs.s3a.path.style.access=true \
--conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
--conf spark.hadoop.fs.s3a.fast.upload=true \
--conf spark.hadoop.fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider \
./examples/jars/spark-examples_2.12-3.5.7.jar

পর্দার আড়ালে কী ঘটে?

  • স্পার্ক ক্লায়েন্ট আপনার স্থানীয় জারকে স্বয়ংক্রিয়ভাবে নির্দিষ্ট মিনিও বালতিতে আপলোড করে ( আইএলইউএম-ফাইলস / স্পার্ক-জবস ).
  • ইলাম-পরিচালিত কুবারনেটস ক্লাস্টারে কুবারনেটস ড্রাইভার পড তৈরি করা হয়েছে।
  • ইলাম ইউআইয়ের মাধ্যমে সরাসরি জব এক্সিকিউশন পর্যবেক্ষণ করা হয়।

জমা দেওয়ার পরে আইলাম ইউআই ব্যবহার করা

একবার আপনি আপনার চাকরি জমা দেওয়ার পরে, আপনি ইলাম ইউআইটি এতে লিভারেজ করতে পারেন:

  • কাজের অগ্রগতি পর্যবেক্ষণ করুন: নির্বাহক, মেমরির ব্যবহার ও কাজের পর্যায় সহ আপনার স্পার্ক কাজের স্থিতি ট্র্যাক করুন।

  • পর্যালোচনা ফলাফল এবং লগ: পর্যায়ক্রমে অন্তর্দৃষ্টিগুলির জন্য বিশদ লগ, ফলাফল এবং ইন্টিগ্রেটেড স্পার্ক ইতিহাস সার্ভার অ্যাক্সেস করুন।

  • সমস্যা সমাধান: সরাসরি ইন্টারফেসে বিস্তারিত এক্সিকিউটর লগ এবং কাজের কনফিগারেশনগুলি পরীক্ষা করে দ্রুত কোনও ব্যর্থতা বা ত্রুটি নির্ণয় করুন।


ইলুম যেভাবে বাড়ায় স্পার্ক-সাবমিট

  • সরলীকৃত সেটআপ এবং কনফিগারেশন : একাধিক কমান্ড-লাইন পরামিতি, পরিবেশ ভেরিয়েবল এবং ক্লাস্টার ঠিকানাগুলি পরিচালনা করার পরিবর্তে, ইলাম ত্রুটির ঝুঁকি হ্রাস করে এই কনফিগারেশনগুলিকে কেন্দ্রীভূত করে।
  • কেন্দ্রীভূত ব্যবস্থাপনা : ইলম ড্যাশবোর্ডের মাধ্যমে, আপনি অসংখ্য স্ক্রিপ্ট জাগলিংয়ের পরিবর্তে নতুন কাজ তৈরি করতে, সংস্থানগুলি আপলোড করতে এবং জমা দেওয়ার পরিচালনা করতে পারেন।
  • মজবুত মনিটরিং : Ilum automatically integrates key logging and performance metrics, which you’d otherwise have to configure manually in a typical স্পার্ক-সাবমিট উপস্থাপনা।

By following these steps, you’ll quickly get a Spark job running on Ilum via স্পার্ক-সাবমিট . Once you become familiar with the process, you can explore additional features—like scheduling, tagging jobs for better organization, or tuning your cluster resources—to get the most out of Ilum’s platform.

কাস্টমাইজ করার বিষয়ে অতিরিক্ত তথ্যের জন্য স্পার্ক-সাবমিট পরামিতি বা আরও স্পার্কের ক্ষমতাগুলি অন্বেষণ করা, দেখুন আবেদন জমা দেওয়ার অফিসিয়াল স্পার্ক ডকুমেন্টেশন .