ইলামে অ্যাপাচি স্পার্ক কানেক্ট: কনফিগারেশন এবং সংযোগ গাইড
🔗 What is Spark Connect?
স্পার্ক কানেক্ট জন্য একটি আধুনিক ক্লায়েন্ট-সার্ভার ইন্টারফেস অ্যাপাচি স্পার্ক যা পাইথন, জাভা, স্কালা, আর এবং এমনকি এসকিউএল-ভিত্তিক সরঞ্জামগুলির মতো লাইটওয়েট ক্লায়েন্টদের কাছ থেকে স্পার্ক ওয়ার্কলোডগুলির দূরবর্তী সম্পাদন সক্ষম করে। স্পার্ক 3.4 এ প্রবর্তিত, স্পার্ক কানেক্ট স্পার্ক ক্লায়েন্টকে স্পার্ক রানটাইম থেকে বিচ্ছিন্ন করে, বিকাশকারীদের অনুমতি দেয় ইন্টারেক্টিভ ডেটা অ্যাপ্লিকেশন তৈরি করুন , নোটবুক এবং ড্যাশবোর্ডগুলি স্থানীয়ভাবে পুরো স্পার্ক ইঞ্জিন স্থাপন না করে।
স্পার্ক কানেক্ট লিভারেজ জিআরপিসি-ভিত্তিক যোগাযোগ একটি দূরবর্তী স্পার্ক সার্ভারের সাথে ইন্টারঅ্যাক্ট করতে, ডেটা ইঞ্জিনিয়ারিং, ডেটা সায়েন্স এবং বিশ্লেষণ কর্মপ্রবাহের জন্য নমনীয়তা, উন্নত সুরক্ষা এবং সরলীকৃত অবকাঠামো সরবরাহ করে।
এটা very similar to Ilum’s approach to Spark microservices, যেখানে স্পার্ক উপাদানগুলি ধারক করা হয় এবং গতিশীল পরিষেবা হিসাবে উন্মুক্ত হয়। ব্যবহৃত নকশা কুবারনেটসে পাইস্পার্ক মাইক্রোসার্ভিস মোতায়েন করা হচ্ছে : উভয়ই ক্লায়েন্ট সাইডে সম্পূর্ণ ক্লাস্টার সেটআপ ছাড়াই স্পার্কে স্কেলেবল, স্টেটলেস এবং সুরক্ষিত অ্যাক্সেস সক্ষম করে।
🧱 Architecture Overview
স্পার্ক কানেক্ট একটি পরিচয় করিয়ে দেয় বিচ্ছিন্ন স্থাপত্য যেখানে:
- ঐ ক্লায়েন্ট লাইটওয়েট স্পার্ক এপিআই চালায় এবং জিআরপিসির মাধ্যমে সার্ভারের সাথে যোগাযোগ করে।
- ঐ সার্ভার (একটি স্পার্ক কাজের ভিতরে চলছে) ক্লাস্টারে ক্যোয়ারী পরিকল্পনা, সম্পাদন এবং সংস্থান পরিচালনা পরিচালনা করে।
এই বিচ্ছেদটি আধুনিক ক্লাউড-নেটিভ এবং মাল্টি-টেন্যান্ট পরিবেশে বিতরণ করা ডেটা প্রসেসিংয়ের জন্য আরও ভাল নিয়ন্ত্রণ, সুরক্ষা এবং স্কেলেবিলিটি সরবরাহ করে।
ইলুমে, স্পার্ক কানেক্ট আমাদের মাইক্রোসার্ভিস-ভিত্তিক স্পার্ক আর্কিটেকচারের সাথে প্রাকৃতিকভাবে সারিবদ্ধ হয়। আপনি একটি স্ট্যান্ডার্ড কাজ হিসাবে একটি স্পার্ক কানেক্ট সার্ভার স্থাপন করতে পারেন এবং পডের নাম, পড আইপি বা কুবারনেটসের মাধ্যমে প্রকাশিত কোনও পরিষেবা ব্যবহার করে বিভিন্ন সংযোগ পদ্ধতির মাধ্যমে এটি অ্যাক্সেস করতে পারেন।
Ilum UI এর মাধ্যমে অ্যাপাচি স্পার্ক কানেক্ট ইনস্ট্যান্স তৈরি করা হচ্ছে
ওয়েব ইউআই ব্যবহার করে আপনার ইলাম ক্লাস্টারে চাকরি হিসাবে স্পার্ক কানেক্ট সার্ভার চালু করতে এই পদক্ষেপগুলি অনুসরণ করুন:

-
একটি নতুন স্পার্ক কাজ শুরু করুন: ইলাম ইউআইতে লগ ইন করুন এবং নেভিগেট করুন কাজ খণ্ড। ক্লিক করুন নতুন চাকরি একটি নতুন স্পার্ক কাজ তৈরি করতে।
-
পদের নাম: কাজের জন্য একটি স্বীকৃত নাম লিখুন (উদাঃ, স্পার্ক কানেক্ট সার্ভার ) ইউআইতে পরে এটি সনাক্ত করতে।
-
প্রধান শ্রেণী: কাজের মূল ক্লাসটি এতে সেট করুন
org.apache.spark.sql.connect.service.SparkConnectServer. এটি অন্তর্নির্মিত স্পার্ক ক্লাস যা স্পার্ক কানেক্ট সার্ভার প্রক্রিয়া শুরু করে, স্পার্ক ক্লাস্টারগুলিতে দূরবর্তী সংযোগ সক্ষম করে। -
স্পার্ক কনফিগারেশন: আপনার স্পার্ক 3.5 স্থাপনার জন্য সমস্ত সেটিংস অপ্টিমাইজ করা হয়েছে তা নিশ্চিত করুন। এ যান কনফিগারেশন কাজের জন্য ট্যাব/সেকশন। স্পার্ক কানেক্ট সার্ভার কোডটি উপলভ্য তা নিশ্চিত করতে নিম্নলিখিত স্পার্ক বৈশিষ্ট্য যোগ করুন:
-
কী:
স্পার্ক.জারস.প্যাকেজস
মান:org.apache.spark:spark-connect_2.12:3.5.3এই কনফিগারেশনটি স্পার্ককে কাজ শুরু হওয়ার পরে মাভেন থেকে স্পার্ক কানেক্ট লাইব্রেরি (স্কালা 2.12 এর সংস্করণ 3.5.3) আনতে নির্দেশ দেয়। (ব্যবহার করে
--প্যাকেজরানটাইমে জেএআর নির্ভরতা যুক্ত করার সমতুল্য। সঠিক অ্যাপাচি স্পার্ক সংস্করণ সম্পর্কে মনে রাখবেন।
- (ঐচ্ছিক) পড লেবেল করুন: আপনি যদি কুবারনেটস পরিষেবার মাধ্যমে এই স্পার্ক কানেক্ট সার্ভারটি প্রকাশ করার পরিকল্পনা করেন (পরে ব্যাখ্যা করা হয়েছে), স্পার্ক ড্রাইভার পডে একটি লেবেল যুক্ত করুন। এতে কনফিগারেশন ট্যাব, যোগ করুন:
-
কী:
spark.kubernetes.driver.label.type
মান:স্পার্ককানেক্টThis will tag the Spark Connect server’s pod with a label
প্রকার=স্পার্ককানেক্টসহজ পরিষেবা নির্বাচনের জন্য। (আপনি চাইলে একটি ভিন্ন লেবেল কী / মান চয়ন করতে পারেন))

-
চাকরি সাবমিট করুনঃ টিপুন জমা . ইলাম স্পার্কের কাজটি ক্লাস্টারে মোতায়েন করবে। অল্প সময় পর রানিং জব লিস্টে দেখতে হবে কাজটি।
-
সার্ভারটি চলছে কিনা তা যাচাই করুন: কাজের স্থিতিটি স্পার্ক সার্ভারে "চলমান" হওয়ার জন্য অপেক্ষা করুন। স্পার্ক কানেক্ট শুরু হয়েছে এমন একটি বার্তার জন্য আপনি কাজের লগগুলি পরীক্ষা করতে পারেন (উদাঃ, পোর্ট 15002 উল্লেখ করে একটি লগ লাইন)। একবার চলমান হয়ে গেলে, স্পার্ক কানেক্ট সার্ভারটি ডিফল্ট পোর্টে ক্লায়েন্ট সংযোগগুলির জন্য শুনছে 15002 .

এই মুহুর্তে, আপনার কাছে ইলাম ক্লাস্টারে চলমান একটি স্পার্ক কানেক্ট উদাহরণ রয়েছে। এরপরে, আপনি ডেটাফ্রেম এপিআই সহ বিভিন্ন পদ্ধতি ব্যবহার করে কীভাবে এটির সাথে সংযোগ স্থাপন করবেন তা শিখবেন।
স্পার্ক কানেক্ট সার্ভারের সাথে সংযোগ করা হচ্ছে
একবার স্পার্ক কানেক্ট সার্ভারটি চালু হলে, আপনি স্পার্ক কানেক্ট URL ব্যবহার করে কোনও স্পার্ক ক্লায়েন্ট (যেমন, PySpark, Spark শেল, sparklyr, ইত্যাদি) থেকে এটির সাথে সংযোগ করতে পারেন ( sc://... ). আপনার নেটওয়ার্ক সেটআপের উপর নির্ভর করে নীচে বিভিন্ন সংযোগ পদ্ধতি রয়েছে:
পদ্ধতি 1: পড নাম (ক্লাস্টার ডিএনএস) দ্বারা সংযোগ করুন
If your environment allows DNS resolution of pod names (for example, your client is within the cluster or can resolve the cluster's internal DNS), you can connect using the pod’s DNS name. Kubernetes assigns each pod a DNS name of the form <pod-name>। <namespace>.pod.cluster.local ( Kubernetes DNS ). This DNS name resolves to the pod’s IP address inside the cluster.
পদক্ষেপ:
-
পডের নামটি সন্ধান করুন: ইলাম ইউআইতে, আপনি যে স্পার্ক কানেক্ট কাজটি শুরু করেছেন তা সন্ধান করুন। দ্রষ্টব্য ড্রাইভার পড নাম (ইলাম এটি কাজের বিশদ বা লগগুলিতে প্রদর্শন করতে পারে)। এরকম কিছু একটা হবে
চাকরি-xxxxxx-ড্রাইভার(সঠিক বিন্যাস পৃথক হতে পারে)। -
ইউআরএল তৈরি করুন: Use the pod’s fully qualified DNS name. For example, if the pod name is
চাকরি-abc123-ড্রাইভারএতেডিফল্টনামস্থান, ঠিকানা হবে:sc://job-abc123-driver.default.pod.cluster.local:15002 -
স্পার্ক ক্লায়েন্টের মাধ্যমে সংযোগ করুন: আপনার স্পার্কসেশন বিল্ডার বা স্পার্ক শেলে এই URLটি ব্যবহার করুন। উদাহরণস্বরূপ, পাইস্পার্কে আপনি যা করতে পারেন:
pyspark.sql থেকে স্পার্কসেশন আমদানি করুন
স্পার্ক = স্পার্কসেশন.বিল্ডার.রিমোট (
"sc://job-abc123-driver.default.pod.cluster.local:15002"
).getOrCreate()
This will create a Spark session that connects remotely to the Spark Connect server at the given DNS address. Ensure that your environment’s DNS can resolve .pod.cluster.local ঠিকানা (সাধারণত কেবল তখনই সত্য যদি ক্লাস্টারের মধ্যে বা ভিপিএন এর মাধ্যমে ক্লাস্টার নেটওয়ার্কে চলমান থাকে)।

দ্রষ্টব্য: আপনার অ্যাপাচি স্পার্ক অ্যাপ্লিকেশনগুলি পরিচালনা করার জন্য এটি অত্যন্ত গুরুত্বপূর্ণ। যদি আপনার ক্লায়েন্ট ভিতরে চলছে একই নামস্থান ক্লাস্টারে, আপনার সম্পূর্ণ ডোমেনের প্রয়োজন হতে পারে না। উদাহরণস্বরূপ, শুধু sc://job-abc123-driver:15002 could work due to Kubernetes’ DNS search path. However, using the full পড.ক্লাস্টার.লোকাল নেমস্পেস সহ ঠিকানা সবচেয়ে স্পষ্ট এবং নির্ভরযোগ্য পদ্ধতি।
পদ্ধতি 2: পড আইপি দ্বারা সংযোগ করুন
If DNS resolution is not available, you can use the pod’s IP address directly in the Spark Connect URL. This requires that your client environment can reach the pod IP (e.g., if you are on the same network or have appropriate routing to the cluster’s pod network).
পদক্ষেপ:
-
পড আইপি পান: স্পার্ক কানেক্ট পডের IP ঠিকানাটি খুঁজুন। ইলাম ইউআইতে, কোনও আইপির জন্য কাজের বিশদটি পরীক্ষা করুন বা সিএলআই ব্যবহার করুন:
কুবেক্টল গেট পড <pod-name> -ও ওয়াইডto see the pod’s IP. -
ইউআরএল তৈরি করুন: হোস্টের জায়গায় আইপি ব্যবহার করুন। উদাহরণস্বরূপ, যদি পড আইপি হয়
10.42.1.25, ইউআরএল হবে:sc://10.42.1.25:15002 -
স্পার্ক ক্লায়েন্টের মাধ্যমে সংযোগ করুন: আপনার স্পার্ক ক্লায়েন্টে আইপি-ভিত্তিক ইউআরএল ব্যবহার করুন। উদাহরণস্বরূপ:
spark = SparkSession.builder.remote("sc://10.42.1.25:15002").getOrCreate()
এটি সেই আইপিতে পোর্ট 15002 এর সাথে সংযোগ স্থাপনের চেষ্টা করবে।

আপনার মেশিনটি আসলে স্পার্ক সার্ভারের সেই আইপি ঠিকানায় পৌঁছাতে পারে তা নিশ্চিত করুন।
-
যদি আপনার ক্লায়েন্ট হয় ক্লাস্টারের ভিতরে (বা একই ভিপিসি / নেটওয়ার্কে), পড আইপি পৌঁছানো উচিত।
-
যদি আপনার ক্লায়েন্ট হয় ক্লাস্টারের বাইরে (উদাঃ, আপনার স্থানীয় ল্যাপটপ), পড আইপি সম্ভবত সরাসরি রুটেবল নয় . In that case, this method will time out or refuse connection. You’d then need to use Method 3 or 4 instead.
পদ্ধতি 3 এর সাথে পোর্ট ফরওয়ার্ডিং কুবেক্টল
If you are connecting from outside the cluster (for example, from your local development environment) and cannot reach the pod IP or DNS directly, a convenient approach is to use Kubernetes port forwarding. Port forwarding opens a tunnel from your local machine to the remote pod’s port.
পদক্ষেপ:
-
পোর্ট-ফরোয়ার্ড চালান: আপনার মেশিনে একটি টার্মিনাল খুলুন যা কুবারনেটস ক্লাস্টারে অ্যাক্সেস রয়েছে (যেখানে
কুবেক্টলকনফিগার করা হয়)। চালনা:কুবেক্টল পোর্ট-ফরোয়ার্ড <pod-name> 15002: 15002প্রতিস্থাপন
<pod-name>with the Spark Connect pod’s name (e.g.,চাকরি-abc123-ড্রাইভার). This command will bind your local port 15002 to the pod’s port 15002. You should see output like127.0.0.1:15002 -> 15002 থেকে ফরোয়ার্ডিং. আপনার স্পার্ক সার্ভারের সাথে সংযোগের প্রয়োজন হওয়ার সময় এই প্রক্রিয়াটি চলমান রাখুন। -
লোকালহোস্টের সাথে সংযোগ করুন: পোর্ট-ফরোয়ার্ডের জায়গায়, আপনার স্থানীয় মেশিনটি এখন 15002 পোর্টে শুনছে। আপনার স্পার্ক ক্লায়েন্টে, সংযোগ করুন
লোকালহোস্ট:15002স্পার্ক কানেক্ট ইউআরএল ব্যবহার করে:spark = SparkSession.builder.remote("sc://localhost:15002").getOrCreate()স্পার্ক কানেক্ট ডিফল্টরূপে 15002 পোর্ট ব্যবহার করে ( Quickstart: Spark Connect — PySpark 3.5 documentation), তাই এটি দূরবর্তী সংযোগকে ক্লাস্টারগুলিকে স্পার্ক করার অনুমতি দেয়।
sc://localhost:15002সুড়ঙ্গ দিয়ে ক্লাস্টারে পৌঁছে যাবে। এখন আপনার স্পার্ক সেশনটি দূরবর্তীভাবে ক্লাস্টার স্পার্ক উদাহরণের সাথে সংযুক্ত। -
যথারীতি স্পার্ক ব্যবহার করুন: একবার সংযুক্ত হয়ে গেলে, আপনি ব্যবহার করতে পারেন
স্ফুলিঙ্গযেন এটি স্থানীয় ছিল, সমস্ত ডেটাফ্রেম অপারেশন ক্লাস্টারে কার্যকর করা হবে।
এই পদ্ধতিটি প্রায়শই বিকাশের জন্য সবচেয়ে সহজ। আপনার কাজ শেষ হয়ে গেলে, আপনি টিপে পোর্ট-ফরওয়ার্ডিং বন্ধ করতে পারেন Ctrl+C চলমান টার্মিনালে Kubectl পোর্ট-ফরোয়ার্ড আদেশ।
পদ্ধতি 4: স্পার্ক সংযোগের জন্য একটি পরিষেবা প্রকাশ করা
আরও স্থায়ী সমাধানের জন্য বা একাধিক ব্যবহারকারী / ক্লায়েন্টকে সহজেই সংযোগ করার অনুমতি দেওয়ার জন্য, আপনি কুবারনেটস পরিষেবার মাধ্যমে স্পার্ক কানেক্ট সার্ভারটি প্রকাশ করতে পারেন। একটি পরিষেবা স্পার্ক কানেক্ট পডের জন্য একটি স্থিতিশীল নেটওয়ার্ক এন্ডপয়েন্ট (ডিএনএস নাম এবং আইপি) দেয় এবং ঐচ্ছিকভাবে এটি ক্লাস্টারের বাইরে প্রকাশ করতে পারে (যেমন, একটি লোডব্যালেন্সার বা নোডপোর্টের মাধ্যমে)।
পরিষেবার মাধ্যমে প্রকাশ করার পদক্ষেপগুলি:
-
পড লেবেল নিশ্চিত করুন: If you haven’t already labeled the Spark Connect pod (as suggested in step 5 of the setup above), do so now. You can add a label on the fly with kubectl:
Kubectl লেবেল পড <pod-name> টাইপ = স্পার্ককানেক্ট(যদি পডটি ইতিমধ্যে স্পার্ক কনফিগের মাধ্যমে লেবেলযুক্ত থাকে তবে এই পদক্ষেপের প্রয়োজন নেই))
-
একটি পরিষেবা তৈরি করুন: একটি কুবারনেটস পরিষেবা ওয়াইএএমএল সংজ্ঞায়িত করুন যা এই পডটিকে তার লেবেল দ্বারা লক্ষ্য করে।
kubectl apply -f - <<EOF
apiVersion: v1
ধরন: সেবা
মেটাডেটা:
নাম: স্পার্ক-কানেক্ট-সার্ভিস
নামস্থান: ইলাম # আপনার স্পার্ক কানেক্ট পড যেখানে চলছে সেই নামস্থানটি ব্যবহার করুন
স্পেসিফিকেশন:
নির্বাচক:
প্রকার: স্পার্ককানেক্ট # এই লেবেলটি পডের লেবেলের সাথে মেলে
পোর্ট:
- নাম: স্পার্ককানেক্ট
প্রোটোকল: টিসিপি
পোর্ট: 15002 # সার্ভিস পোর্ট (ক্লায়েন্টরা এটি ব্যবহার করবে)
টার্গেটপোর্ট: 15002 # পডে টার্গেট পোর্ট
নোডপোর্ট: 30002 # নোড পোর্ট (বহিরাগত ব্যবহারকারীরা এই নোডিআইপি ব্যবহার করবে: 30002
প্রকার: নোডপোর্ট # ক্লাস্টারআইপি কেবল ক্লাস্টারের মধ্যে অ্যাক্সেসযোগ্য
# বাহ্যিক অ্যাক্সেসের জন্য, আপনি এখানে টাইপ: নোডপোর্ট বা লোডব্যালেন্সার ব্যবহার করতে পারেন।
ইওএফএই পরিষেবাটি যে কোনও পডে ট্র্যাফিক রুট করবে
প্রকার: স্পার্ককানেক্টপোর্ট 15002 এ লেবেল। আপনি দিয়ে যাচাই করতে পারেনকুবেক্টল এসভিসি স্পার্ক-কানেক্ট-সার্ভিস পান.
-
ক্লাস্টার বা ভিপিএন এর ভিতরে: Use the service’s DNS name or cluster IP. For example, within the cluster (or on a VPN that can resolve cluster DNS), the URL would be:
sc://spark-connect-service.default.svc.cluster.local:15002বাsc://spark-connect-service:15002এই ঠিকানার সমস্ত ট্র্যাফিক স্পার্ক কানেক্ট পডে অগ্রবর্তী করা হবে। -
ক্লাস্টারের বাইরে (যদি উন্মুক্ত থাকে): আপনি যদি পরিষেবার ধরণটি নোডপোর্ট বা লোডব্যালেন্সারে সেট করেন তবে বাহ্যিক ঠিকানাটি ব্যবহার করুন। NodePort এর জন্য, এটি হতে পারে
sc://<node-ip>:30002. লোডব্যালেন্সারের জন্য, এটি হতে পারেsc://<load-balancer-host>:15002আপনার ক্লাউড সরবরাহকারী কীভাবে এটি বরাদ্দ করে তার উপর নির্ভর করে। (এগুলি উন্নত পরিস্থিতি; প্রায়শই পোর্ট-ফরওয়ার্ডিং বাহ্যিক অ্যাক্সেসের জন্য সহজ))

Using a Service has the benefit of a stable name – you don’t need to know the exact pod name or IP after it’s set up. It also allows you to change the backing pod (e.g., restart the Spark Connect job) without changing how clients connect (as long as the new pod has the same label).
⚠️ Warning:যদি আপনার পরিষেবা নির্বাচক মিলে যায় একাধিক স্পার্ক কানেক্ট পড, ক্লায়েন্টের অনুরোধগুলি অসঙ্গতভাবে রাউট করা যেতে পারে। একটি কুবারনেটস পরিষেবা সমস্ত ম্যাচিং পডগুলির মধ্যে সংযোগগুলি লোড-ভারসাম্য করবে। এর অর্থ যদি আপনি দুর্ঘটনাক্রমে লেবেলের সাথে দুটি স্পার্ক কানেক্ট কাজ চালান
প্রকার=স্পার্ককানেক্ট, a client might connect to either one (potentially different sessions each time). To avoid issues, ensure only one Spark Connect pod is behind a given Service, or use unique labels (and Service names) per instance. In cases where you need to scale Spark Connect horizontally, be aware that each client session is bound to a single server; multiple servers won’t share session state.
পরিষ্কারের কাজ
আপনার স্পার্ক কানেক্ট সেশন (গুলি) শেষ করার পরে, সংস্থানগুলি মুক্ত করতে এবং অনাথ সংযোগগুলি এড়াতে নিম্নলিখিত ক্লিনআপ পদক্ষেপগুলি সম্পাদন করুন:
-
স্পার্ক কানেক্ট জব বন্ধ করুন: ইলাম ইউআইতে, চলমান স্পার্ক কানেক্ট জবে নেভিগেট করুন এবং ক্লিক করুন থামান বা বন্ধ . This will shut down the Spark Connect server process on the cluster. Confirm that the job’s status changes to stopped/finished. (If you forget this step, the Spark Connect server will keep running and occupying cluster resources, impacting your spark application performance.)
-
পোর্ট-ফরোয়ার্ড সেশনগুলি সমাপ্ত করুন: যদি আপনি ব্যবহার করেন
Kubectl পোর্ট-ফরোয়ার্ড, go to the terminal where it’s running and press Ctrl+C পোর্ট-ফরওয়ার্ডিং শেষ করতে। এটি টানেলটি বন্ধ করে দেয় এবং আপনার স্থানীয় বন্দরটি মুক্ত করে। আপনি যদি পটভূমিতে পোর্ট-ফরোয়ার্ড চালান তবে সেই প্রক্রিয়াটি হত্যা করতে ভুলবেন না। -
কুবারনেটস পরিষেবা মুছুন (যদি তৈরি করা হয়): আপনি যদি স্পার্ক কানেক্টের জন্য কোনও পরিষেবা প্রকাশ করেন তবে এটির আর প্রয়োজন না হলে এটি সরান। আপনি এটি দিয়ে মুছতে পারেন:
Kubectl মুছে ফেলুন পরিষেবা স্পার্ক-কানেক্ট-সার্ভিস -এন ডিফল্টস্পার্ক ক্লাস্টারে সংস্থানগুলি মুক্ত করতে।প্রতিস্থাপন
স্পার্ক-কানেক্ট-সার্ভিসand namespace as appropriate. This ensures you don’t leave an open network endpoint in the cluster. (If you set up a LoadBalancer, deleting the Service will also release the external IP/port. If you used a NodePort, it frees that port on the nodes for other uses.)
পরিষ্কার করে, আপনি নিশ্চিত করেন যে আপনার স্পার্ক কানেক্ট ব্যবহারের সাথে সম্পর্কিত কোনও বিপথগামী প্রক্রিয়া বা পোর্টগুলি খোলা নেই, আপনার স্পার্ক ক্লাস্টারে সংস্থানগুলি অপ্টিমাইজ করে।
সমস্যা সমাধান
এমনকি সঠিক সেটআপ সহ, আপনি কিছু সাধারণ সমস্যার সম্মুখীন হতে পারেন। এখানে কয়েকটি সমস্যা এবং কীভাবে তাদের সমাধান করা যায়:
-
পোর্ট 15002 পৌঁছানো যায় না: যদি আপনার স্পার্ক কানেক্ট ক্লায়েন্ট পৌঁছাতে অক্ষম হয়
15002(উদাঃ, সংযোগ প্রত্যাখ্যান করা হয়েছে বা সময় শেষ হয়েছে): -
কারণ: The Spark Connect server might not be running, or your network cannot reach the pod’s port. If you tried to connect via pod IP or DNS from outside the cluster, that traffic may be blocked by cluster networking.
-
সমাধান: প্রথমত, উপযুক্ত সেটিংস ব্যবহার করে স্পার্ক ক্লাস্টারগুলিতে সংযোগ নিশ্চিত করতে স্পার্ক কানেক্ট কাজটি আসলে চলছে কিনা তা যাচাই করুন (ইলাম ইউআই এবং লগগুলি পরীক্ষা করুন)। যদি এটি চলমান থাকে তবে পোর্ট ফরওয়ার্ডিং ব্যবহার করা বা স্পার্ক ক্লাস্টারগুলিতে আরও ভাল সংযোগের জন্য কোনও পরিষেবা প্রকাশ করার বিষয়টি বিবেচনা করুন। বাহ্যিক সংযোগের জন্য, পোর্ট-ফরওয়ার্ডিং (পদ্ধতি 3) প্রায়শই ক্লাস্টারে পৌঁছানোর প্রয়োজন হয়। নিশ্চিত করুন যে কোনও ফায়ারওয়াল (আপনার মেশিন বা ক্লাস্টারে) পোর্ট 15002 অবরুদ্ধ করছে না। ব্যবহার
টেলনেট <host> 15002বাএনসি -ভিজেড <host> 15002সেই বন্দরে সংযোগ পরীক্ষা করতে সহায়তা করতে পারে। -
DNS রেজোলিউশন ব্যর্থতা: If using the pod’s DNS name (
<pod>.pod.cluster.local) এবং এটি সমাধান করতে ব্যর্থ হয়: -
কারণ: Your client environment cannot resolve the cluster’s internal DNS names. This is common when you are running the client on your local machine or anywhere outside the cluster DNS domain.
-
সমাধান: একটি বিকল্প সংযোগ পদ্ধতি ব্যবহার করুন। উদাহরণস্বরূপ, পোর্ট-ফরোয়ার্ড পদ্ধতিটি ব্যবহার করে দেখুন
লোকালহোস্ট, অথবা পৌঁছানো সম্ভব হলে পড আইপি ব্যবহার করুন। আপনার যদি অবশ্যই ডিএনএস ব্যবহার করতে হয় তবে নিশ্চিত হয়ে নিন যে আপনি এমন পরিবেশে রয়েছেন যেখানে ক্লাস্টার ডিএনএসে অ্যাক্সেস রয়েছে (উদাহরণস্বরূপ, ক্লাস্টারের অন্য পডের মধ্যে থেকে সংযোগ স্থাপন করা বা ক্লাস্টারের সাথে লিঙ্কযুক্ত কোনও কর্পোরেট নেটওয়ার্কের মাধ্যমে)। আপনি আপনার স্পার্ক অ্যাপ্লিকেশনটির জন্য ডিএনএস নামে সঠিক নামস্থান অন্তর্ভুক্ত করেছেন তা ডাবল-পরীক্ষা করুন। (যদি ডিএনএস নামটি ভুল হয় তবে আপনি একটি রেজোলিউশন ত্রুটি পাবেন বা একটি ভুল পডের সাথে সংযোগ করবেন)) -
"Pod পাওয়া যায়নি" অথবা অজানা হোস্ট ত্রুটি: দৌড়ানোর সময় এটি ঘটতে পারে
Kubectl পোর্ট-ফরোয়ার্ডবা আপনি যদি বাসি পড ডিএনএস নাম ব্যবহার করেন: -
কারণ: স্পার্ক কানেক্ট পডটি সমাপ্ত বা পুনঃশুরু হয়ে থাকতে পারে, তাই এর নাম (বা আইপি) পরিবর্তিত হয়েছে। উদাহরণস্বরূপ, আপনি যদি কাজটি বন্ধ করে পুনরায় জমা দেন তবে নতুন রানটির একটি আলাদা পড নাম থাকবে। অথবা আপনি ভুল নামস্থানের উল্লেখ করতে পারেন।
-
সমাধান: Go back to the Ilum UI and verify the current running pod name for your Spark Connect job. Update the commands or URLs with the correct, current pod name or IP. If the job isn’t running at all, start it again. In the case of
Kubectl পোর্ট-ফরোয়ার্ড, নিশ্চিত করুন যে পডের নামটি সঠিক এবং আপনার সঠিক নামস্থান রয়েছে (যোগ করুন-n <namespace>প্রয়োজনে আদেশে)। চাকরি জমা দেওয়ার পরে সর্বদা পড তথ্য রিফ্রেশ করুন।
এই গাইডটি অনুসরণ করে, আপনার সক্ষম হওয়া উচিত ইলামে একটি স্পার্ক কানেক্ট সার্ভার কনফিগার করুন এবং বিভিন্ন পদ্ধতির মাধ্যমে এটির সাথে সংযোগ স্থাপন করুন। ইলাম ইউআই স্পার্ক কানেক্ট উদাহরণটি স্থাপন করা সহজ করে তোলে এবং উপরের কৌশলগুলির সাহায্যে আপনি কুবারনেটস ক্লাস্টারের ভিতরে বা দূরবর্তীভাবে কাজ করছেন কিনা তা আপনি এটি অ্যাক্সেস করতে পারেন। হ্যাপি কানেক্টিং!