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

ইলামে নোটবুকগুলি কীভাবে ব্যবহার করবেন

This page demonstrates identical example notebooks implemented in both জুপিটার (compatible with JupyterLab এবং JupyterHub ) and জেপেলিন , allowing you to quickly compare how typical workflows map between these environments.

Each notebook is organized into four logical sections:

  1. Narrative (Markdown) – Rich text with images introducing the task.
  2. Generate Test Data – Python (or Scala) code creating a small synthetic dataset.
  3. Transform Data – Spark code that cleans or aggregates the data.
  4. ডায়নামিক চার্ট – An interactive visualization, refreshable after each run.

Guide for Jupyter Notebooks (Lab & Hub)

সংক্ষিপ্ত বিবরণ

In Ilum, Jupyter notebooks are accessible via both JupyterLab এবং JupyterHub . For end users, the experience is functionally identical in both, especially when working with Spark and Ilum integrations.

By default, Python code cells execute locally on the Jupyter server. To leverage Spark on a remote cluster, you need to use Spark Magic—a Jupyter extension that enables code execution on a Spark cluster through the Livy API. In Ilum, the default Livy API is replaced with ইলাম লিভি প্রক্সি , which ensures seamless integration with Ilum’s storage, metastore, lineage, and monitoring features.

Jupyter (both Lab and Hub) provides four primary kernels:

Python Kernel: The default Jupyter kernel, which runs Python code on the Jupyter server. PySpark Kernel: A Spark kernel that runs your Python code on a remote Spark cluster. Spark Kernel: A Scala kernel that runs your Scala code on a remote Spark cluster.

  1. পাইথন কার্নেল – The default Jupyter kernel, which runs Python code on the Jupyter server.
  2. PySpark Kernel – A Spark kernel that runs your Python code on a remote Spark cluster.
  3. Spark Kernel – A Scala kernel that runs your Scala code on a remote Spark cluster.

Spark Session Management

To use a remote Spark cluster from a standard Python kernel, first load Spark Magic:

% load_ext sparkmagic. magics

Next, open the Spark session management panel:

% manage_spark

Using this panel, you can perform the following tasks:

সেশন পরিচালনা করুন

সেশন পরিচালনা করুন tab displays all available Spark sessions. Here you can see the session's name, ID, kernel type (e.g., pyspark for Python), and its current state. You can also delete sessions you no longer need.

সেশন পরিচালনা করুন

Create Session

Create Session tab allows you to launch a new Spark session. To create a session, provide a name for your session, select a language (Scala or Python), and specify Spark parameters. Finally, click Create Session.
[Full details on session creation and available parameters can be found এখানে .]

Create Session

Add Endpoint

এতে Add Endpoint tab, you can register additional Livy endpoints. Choose the authentication type (e.g., Kerberos) and provide the Livy server address, then click Add endpoint. This is useful if you need to connect to a custom Livy deployment instead of the preconfigured Ilum-Livy-Proxy endpoint.

Add Endpoint

এন্ডপয়েন্টগুলি পরিচালনা করুন

এন্ডপয়েন্টগুলি পরিচালনা করুন tab lists all configured Livy endpoints, along with all active or historical Spark sessions associated with them. You can view session details, including session IDs, Spark UI links, and driver logs. You can also remove endpoints or clean up old sessions directly from this panel.

এন্ডপয়েন্টগুলি পরিচালনা করুন

Ilum Workloads Page

After creating a session, you can track your active code services on the Ilum Workloads page. Services created via Spark Magic sessions are named with the prefix ilum-livy-proxy-session and can be monitored, paused, or deleted just like any other Ilum service.

Ilum Workloads Page

Creating a Spark Session

To create a new Spark session, open the management panel and select Create Session.
You will be asked to fill in a form with the following parameters:

Basic Settings:

  • Endpoint
    The Livy endpoint address used to connect to the Spark cluster. This field is configured automatically, but if needed, you can add an endpoint to your own Livy service.

  • ক্লাস্টার
    The name of the Kubernetes cluster where the session will run.

  • Session Name
    A custom name for your Spark session, used for identification.

  • ভাষা
    The programming language for the Spark session: pythonবা scala.

  • Spark Image
    The Docker image that defines the Spark runtime environment (e.g., ilum/spark:3.5.6-delta).
    You can also use your own custom images, but for full compatibility we recommend building them on top of the official Spark base images published by ILUM on Docker Hub.

  • Extra Packages
    Additional Python packages to install in the session.
    যেমন: numpy;pandas

  • Enable autopause
    Automatically pauses the session when it is idle. After the configured idle time, the session remains available, but the first request will start the pod(s) and executors before executing your code, resulting in a slightly longer waiting time for the first command.
    The autopause settings are managed globally via Helm values:

    • --set ilum-core.job.autoPause.idleTime=3600 controls the idle time (in seconds) after which the group is paused,
    • --set ilum-core.job.autoPause.period=180 controls how often (in seconds) the idle state is checked.

Executor Settings:

  • Executor Memory
    Amount of RAM allocated to each Spark executor (e.g., 2G).
    Supported units: M (megabytes), G (gigabytes), T (terabytes).

  • Executor Cores
    Number of CPU cores for each executor.

  • Number of Executors
    Total number of executors to start in the session.

Driver Settings:

  • Driver Memory
    Amount of RAM allocated to the Spark driver process (e.g., 1G).
    Supported units: M (megabytes), G (gigabytes), T (terabytes).

  • Driver Cores
    Number of CPU cores for the Spark driver.

More Advanced Options:

  • Custom Spark Config
    Additional Spark configuration as a JSON object.
    This field is equivalent to the properties field in the old Sparkmagic version.
    গুরুত্বপূর্ণ: Any parameter provided in this field will override the corresponding Spark property from the other fields, so use it with caution.
    যেমন: { "spark.sql.shuffle.partitions": "200" }

  • SQL Extension
    The Spark SQL extension class name, often required for Delta Lake, Hudi, Nessie etc.
    যেমন: io.delta.sql.DeltaSparkSessionExtension

  • Driver Extra Java Options
    Extra Java options passed to the Spark driver process.
    যেমন: -Divy.cache.dir=/tmp -Divy.home=/tmp

  • Executor Extra Java Options
    Extra Java options passed to Spark executors.
    যেমন: -Dconfig=value

  • Dynamic Allocation
    Enables Spark dynamic resource allocation for executors.
    নোট: All options below are only applied if dynamic allocation is enabled.

    • Min Executors
      Minimum number of executors.

    • Initial Executors
      Initial number of executors to launch at session start.

    • Max Executors
      Maximum number of executors allowed during dynamic allocation.

    • Shuffle Partitions
      Number of partitions used for shuffle operations in Spark SQL.

Sessions are isolated per notebook, which means that each open notebook has its own independent computational environment. When running a Spark cell in the Python kernel and having multiple sessions active, you must specify which Spark session to use.

Using Ilum Code Services instead of local pyspark kernel offers several advantages. Ilum automatically preconfigures all Jupyter sessions to integrate seamlessly with your infrastructure modules. For example, sessions are preconfigured to access all storage linked to the default cluster. If the corresponding components are enabled, Spark sessions will:

  • মৌচাক মেটাস্টোর অ্যাক্সেস করুন।
  • ইলাম লিনিয়েজে ডেটা প্রেরণ করুন।
  • পর্যবেক্ষণের জন্য ইতিহাস সার্ভারে তথ্য প্রেরণ করুন।
  • ইলুম দ্বারা সরবরাহিত অতিরিক্ত কার্যকারিতা লিভারেজ করুন।

এবং এর জন্য আপনাকে ম্যানুয়ালি কনফিগারেশন লিখতে হবে না।

Working with Jupyter

সেট আপ করার পরে, আইলাম কোড পরিষেবার মধ্যে আপনার কোডটি কার্যকর করতে, আপনার ব্যবহার করা উচিত %%sস্পার্ক ম্যাজিক কমান্ড। এই যাদু কমান্ডটি আপনাকে ইলাম দ্বারা পরিচালিত দূরবর্তী স্পার্ক পরিবেশে আপনার কোডটি চালানোর অনুমতি দেয়।

% % স্ফুলিঙ্গ 

# Example data
# ...

এই পরিবেশের মধ্যে, আপনি সেখানে তৈরি সমস্ত ভেরিয়েবলের পাশাপাশি নিম্নলিখিত স্পার্ক প্রসঙ্গগুলি অ্যাক্সেস করতে পারেন:

  • এসসি (স্পার্ককনটেক্সট)
  • sqlContext (HiveContext)
  • স্পার্ক (স্পার্কসেশন)

এই সেটআপটি স্পার্ক সংস্থান এবং ইলাম প্ল্যাটফর্ম দ্বারা সরবরাহিত কোনও কনফিগারেশনের সাথে বিরামবিহীন মিথস্ক্রিয়া নিশ্চিত করে।

পাইথন উদাহরণ:

% % স্ফুলিঙ্গ 

ডাটা = [
( 1 , "N1-standard-1" , 20.5 , 32.1 , 15.0 ) ,
( 2 , "N1-standard-1" , 30.0 , 64.3 , 20.0 ) ,
( 3 , "N1-standard-2" , 30.2 , 16.0 , 22.0 ) ,
( 4 , "N1-standard-2" , 45.1 , 128.5 , 40.2 ) ,
( 5 , "E2-মাধ্যম" , 25.4 , 8.0 , 18.3 ) ,
( 6 , "E2-মাধ্যম" , 25.3 , 12.0 , 10.2 ) ,
( 7 , "E2-standard-2" , 29.8 , 24.5 , 14.7 ) ,
( 8 , "E2-standard-2" , 35.0 , 24.5 , 20.5 ) ,
( 9 , "N2-highcpu-4" , 50.2 , 64.0 , 30.4 ) ,
( 10 , "N2-highcpu-4" , 55.1 , 16.0 , 35.4 ) ,
( 11 , "N1-standard-8" , 80.5 , 32.0 , 45.6 ) ,
( 12 , "N1-standard-16" , 95.1 , 128.0 , 60.0 ) ,
( 13 , "N1-standard-8" , 85.0 , 256.0 , 90.0 ) ,
( 14 , "N1-highmem-2" , 40.1 , 128.0 , 50.0 ) ,
( 15 , "T2a-standard-1" , 15.2 , 2.0 , 5.5 ) ,
( 16 , "T2a-standard-2" , 25.5 , 4.0 , 7.3 ) ,
( 17 , "N1-highmem-2" , 60.5 , 256.0 , 100.0 ) ,
( 18 , "C2-standard-16" , 99.9 , 6240.0 , 120.5 ) ,
( 19 , "A2-highgpu-1G" , 89.2 , 256.0 , 95.4 ) ,
( 20 , "A2-highgpu-1G" , 100.0 , 40.0 , 110.0 ) ,
]

#using স্ফুলিঙ্গ প্রসঙ্গ
আরডিডি = এস.সি. . সমান্তরাল ( ডাটা )

ডেটাপাথ = "s3a://ilum-files/data/performance"
আরডিডি . SaveAsTextFile ( ডেটাপাথ )


#using স্পার্ক সেশন
ডিএফ = স্ফুলিঙ্গ . রিড . সিএসভি ( ডেটাপাথ )
ডিএফ . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিন টেম্প" )
ফলাফল = স্ফুলিঙ্গ . এসকিউএল ( "নির্বাচন করুন \
_c0 হিসেবে machine_id , \
_c1 হিসেবে machine_type , \
_c2 হিসেবে cpu_usage , \
_c3 হিসেবে memory_usage , \
_c4 হিসেবে time_spent \
মেশিন টেম্প থেকে" )

ফলাফল . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিনস্ট্যাটস" )

ফলাফল . দেখান ( )

স্কালা উদাহরণ:

% % স্ফুলিঙ্গ 
valডাটা = Seq(
( 1 , "N1-standard-1" , 20.5 , 32.1 , 15.0 ) ,
( 2 , "N1-standard-1" , 30.0 , 64.3 , 20.0 ) ,
( 3 , "N1-standard-2" , 30.2 , 16.0 , 22.0 ) ,
( 4 , "N1-standard-2" , 45.1 , 128.5 , 40.2 ) ,
( 5 , "E2-মাধ্যম" , 25.4 , 8.0 , 18.3 ) ,
( 6 , "E2-মাধ্যম" , 25.3 , 12.0 , 10.2 ) ,
( 7 , "E2-standard-2" , 29.8 , 24.5 , 14.7 ) ,
( 8 , "E2-standard-2" , 35.0 , 24.5 , 20.5 ) ,
( 9 , "N2-highcpu-4" , 50.2 , 64.0 , 30.4 ) ,
( 10 , "N2-highcpu-4" , 55.1 , 16.0 , 35.4 ) ,
( 11 , "N1-standard-8" , 80.5 , 32.0 , 45.6 ) ,
( 12 , "N1-standard-16" , 95.1 , 128.0 , 60.0 ) ,
( 13 , "N1-standard-8" , 85.0 , 256.0 , 90.0 ) ,
( 14 , "N1-highmem-2" , 40.1 , 128.0 , 50.0 ) ,
( 15 , "T2a-standard-1" , 15.2 , 2.0 , 5.5 ) ,
( 16 , "T2a-standard-2" , 25.5 , 4.0 , 7.3 ) ,
( 17 , "N1-highmem-2" , 60.5 , 256.0 , 100.0 ) ,
( 18 , "C2-standard-16" , 99.9 , 6240.0 , 120.5 ) ,
( 19 , "A2-highgpu-1G" , 89.2 , 256.0 , 95.4 ) ,
( 20 , "A2-highgpu-1G" , 100.0 , 40.0 , 110.0 )
)

স্পার্ক প্রসঙ্গ ব্যবহার করে
valআরডিডি = স্ফুলিঙ্গ . স্পার্ককনটেক্সট . সমান্তরাল ( ডাটা )

valডেটাপাথ = "s3a://ilum-files/data/performance"
আরডিডি . SaveAsTextFile ( ডেটাপাথ )

স্পার্ক সেশন ব্যবহার করা হচ্ছে
valডিএফ = স্ফুলিঙ্গ . রিড . বিকল্প ( "header", "মিথ্যা" ) . সিএসভি ( ডেটাপাথ )

ডিএফ . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিন টেম্প" )

valফলাফল = স্ফুলিঙ্গ . এসকিউএল ( """
নির্বাচন
_c0 machine_id,
_c1 machine_type,
_c2 cpu_usage,
_c3 memory_usage হিসাবে,
time_spent হিসাবে _c4
মেশিনসটেম্প থেকে
""")


ফলাফল . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিনস্ট্যাটস" )

ফলাফল . দেখান ( )

তুমি পারবে স্যুইচ মধ্যে অধিবেশন আপনার কোষে ব্যবহার করে -এস আপনি যে সেশনটি চয়ন করতে চান তার পতাকা এবং নাম।

% % স্ফুলিঙ্গ - এস SESSION_NAME 

#your পাইথন স্পার্ক কোড
# ...

উদাহরণস্বরূপ, যদি আপনার এই সেশন তালিকা থাকে:

ইলুম

যেখানে মাইসেশন এটি স্পার্ক ধরণের যা স্কালা ভাষা ব্যবহার করে। এর অর্থ হ'ল আপনি যদি এই স্কালা স্পার্ক সেশনটি ব্যবহার করতে চান আপনাকে সেশনটি এভাবে চয়ন করতে হবে:

% % স্ফুলিঙ্গ - s scalasession

পাইথন সেশন এটি Pyspark টাইপের যা পাইথন ভাষা ব্যবহার করে। অর্থাৎ আপনি যদি পাইথন স্পার্ক সেশন ব্যবহার করতে চান সেশনটা এভাবে সিলেক্ট করতে হবে

% % স্ফুলিঙ্গ - S pythonsession 

আপনি চালু করতে পারেন এসকিউএল কোয়েরি ব্যবহার করে আপনার স্পার্ক ক্যাটালগে %%sস্পার্ক সঙ্গে ম্যাজিক -c sql :

% % স্ফুলিঙ্গ - c এসকিউএল 
নির্বাচন * থেকে মেশিনস্ট্যাটস

আপনি এসকিউএল কমান্ডের সাথে একাধিক পতাকা ব্যবহার করতে পারেন ইলাম কোড সার্ভিস পরিবেশ:

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

এই পতাকাগুলি ইলাম পরিবেশে স্পার্কের সাথে কাজ করার সময় ক্যোয়ারী ফলাফল পরিচালনা এবং আউটপুট আচরণ নিয়ন্ত্রণে নমনীয়তা সরবরাহ করে।

উদাহরণস্বরূপ:

% % স্ফুলিঙ্গ - S pythonsession - c এসকিউএল  - ও test_result - q --সর্বোচ্চ ১০ 
নির্বাচন machine_type , গড় ( memory_usage ) হিসেবে avg_memory_usage থেকে মেশিনস্ট্যাটস গোষ্ঠী দ্বারা machine_type
test_result 

ফলাফলটি দেখতে এরকম হওয়া উচিত:

ইলুম

তথ্য প্রদর্শন করা হচ্ছে

পাইস্পার্ক এবং স্পার্ক সেশনগুলিতে প্রায়শই উন্নত ভিজ্যুয়ালাইজেশন প্যাকেজগুলির সাথে সামঞ্জস্যের সমস্যা থাকে। একটি ব্যবহারিক সমাধান হ'ল প্রক্রিয়াকরণ এবং ভিজ্যুয়ালাইজেশনের জন্য স্থানীয় আইপিথন কার্নেলে ডেটা স্থানান্তর করা। এটি কীভাবে অর্জন করা যায় তা এখানে:

  1. স্থানীয় কার্নেলে ডেটা রফতানি করুন: স্পার্ক থেকে স্থানীয় আইপিথন কার্নেলে ডেটা পাস করতে আপনার নোটবুক বা কোডে -ও ভেরিয়েবলটি ব্যবহার করুন।
% % স্ফুলিঙ্গ - c এসকিউএল  - ও machine_stats 
নির্বাচন * থেকে মেশিনস্ট্যাটস

  1. প্রয়োজনীয় ভিজ্যুয়ালাইজেশন প্যাকেজ ইনস্টল করুন: কমান্ডটি ব্যবহার করে প্রয়োজনীয় পাইথন ভিজ্যুয়ালাইজেশন লাইব্রেরি ইনস্টল করুন:
!পিপ ইনস্টল প্যাকেজ 

উদাহরণস্বরূপ, আসুন ব্যবহার করে ডেটা প্রদর্শন করি Autovizwidget উইজেট :

থেকে Autovizwidget . উইজেট . ইউটিলিটিস আমদানি display_dataframe 
display_dataframe ( machine_stats )

এটি নীচের চার্টগুলির মধ্যে একটি হিসাবে ডেটা প্রদর্শন করতে দেয়:

  • বার
  • পাই
  • ছড়িয়ে ছিটিয়ে
  • এলাকা
  • সারণী
  • লাইন
  1. পরিচ্ছন্নতার সেশন আপনি দুটি উপায়ে আপনার স্পার্ক সেশনগুলি পরিষ্কার করতে পারেন:
  • স্পার্ক সেশন ম্যানেজমেন্ট প্যানেলের মাধ্যমে: এ যান সেশন পরিচালনা করুন বিভাগ, এবং ক্লিক করুন বিলোপ সেশনের পাশে আপনি অপসারণ করতে চান।

  • স্পার্ক সেশন ম্যানেজমেন্ট প্যানেলের মাধ্যমে এন্ডপয়েন্টগুলি পরিচালনা করুন বিভাগ: এন্ডপয়েন্ট পরিচালনা করুন বিভাগে নেভিগেট করুন এবং ক্লিক করুন পরিষ্কার করুন ইলাম লিভি প্রক্সি এন্ডপয়েন্টের পাশে।

এই বিকল্পগুলি আপনাকে আপনার পরিবেশ থেকে অপ্রয়োজনীয় বা নিষ্ক্রিয় সেশনগুলি সরাতে দেয়।

স্পার্ক এবং PySpark কার্নেল

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

উদাহরণস্বরূপ, যদি নিম্নলিখিত মডিউলগুলি সক্ষম থাকে তবে আপনার স্পার্ক সেশনটি হবে:

  • অ্যাক্সেস আছে মৌচাক মেটাস্টোর
  • অ্যাক্সেস আছে স্টোরেজ ডিফল্ট ক্লাস্টারের সাথে লিঙ্ক করা হয়েছে।
  • মেমরির ব্যবহার, CPU ব্যবহার ও পর্যায় স্কিমা সম্পর্কে তথ্য পাঠান ইতিহাস সার্ভার .
  • লগগুলি ফরোয়ার্ড করুন লোকি ব্যবহার প্রমটেল .
  • এর মেট্রিকগুলি প্রকাশ করুন প্রমিথিউস .

পাইস্পার্ক এবং স্পার্ক কার্নেলের মধ্যে প্রধান পার্থক্য প্রোগ্রামিং ভাষায় রয়েছে:

  • PySpark কার্নেল: ব্যবহার পাইথন .
  • স্পার্ক কার্নেল: ব্যবহার স্কালা .

আপনি যে যাদু কমান্ডগুলি ব্যবহার করতে পারেন এবং সামগ্রিক কর্মপ্রবাহ দুটি কার্নেলের মধ্যে মূলত একই রকম থাকে।

  1. অধিবেশন সৃষ্টি

একটি পাইস্পার্ক বা স্পার্ক ডকুমেন্ট তৈরি করতে জুপিটারে যান, ক্লিক করুন + উপরের বাম কোণে বোতাম এবং কার্নেলটি চয়ন করুন

ইলুম

তারপর একটি সেল তৈরি করুন, সেখানে সিম্পল কিছু টাইপ করে রান করুন।

উদাহরণস্বরূপ:

মুদ্রণ ( "হ্যালো" ) 

কিছু সময় পরে, আপনার নিম্নলিখিত ফলাফলটি দেখতে হবে:

ইলুম

আপনি যদি নেভিগেট করেন কাজের চাপ পৃষ্ঠা, আপনি ডিফল্ট ক্লাস্টারে তৈরি একটি নতুন কোড পরিষেবা দেখতে পাবেন। এই কোড পরিষেবাটির সাথে একটি নাম উপসর্গ থাকবে ilum-livy-proxy-session , ইঙ্গিত করে যে এটি আপনার সবেমাত্র তৈরি করা স্পার্ক বা পাইস্পার্ক সেশনের সাথে সম্পর্কিত।

ইলুম

লক্ষ্য করুন যে ঘরের কোডটি সেই কোড পরিষেবার অনুরোধ হিসাবে কার্যকর করা হয়েছিল।

  1. সেশন ম্যানেজমেন্ট

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

ব্যবহার %%কনফিগার JSON ফর্ম্যাট ব্যবহার করে আপনার সেশনের জন্য স্পার্ক প্যারামিটার সেট করতে ম্যাজিক

উদাহরণস্বরূপ, আপনার ঘরে এই কোডটি টাইপ করা:

%%configure -f 
{
"spark.sql.এক্সটেনশন" : "io.delta.sql.DeltaSparkSessionExtension" ,
"spark.sql.catalog.spark_catalog" : "org.apache.spark.sql.delta.catalog.DeltaCatalog" ,
"স্পার্ক.ডেটাব্রিকস.ডেল্টা.ক্যাটালগ.আপডেট.সক্ষম" : সত্য
}

তোমার স্পার্ক সেশনে ডেল্টা সক্ষম করবে

এটি ব্যবহার করা বাধ্যতামূলক -চ পতাকা কারণ এটি ইলুমকে ইতিমধ্যে চলমান অবস্থায় অধিবেশনটি পুনরায় শুরু করতে বাধ্য করে

ব্যবহার %%তথ্য লিভিতে সক্রিয় স্পার্ক সেশন সম্পর্কে তথ্য পেতে যাদু।

ইলুম

ব্যবহার %%delete -f -s ID তাদের আইডি দ্বারা সেশনগুলি মুছতে। আপনি বর্তমান কার্নেলের সেশন মুছতে পারবেন না

উদাহরণস্বরূপ:

%%delete -f -s 16 

ব্যবহার %%ক্লিনআপ -f বর্তমান এন্ডপয়েন্টের সমস্ত সেশন মুছতে (ইলাম লিভি প্রক্সিতে)

ব্যবহার %%%log স্পার্ক সেশন সম্পর্কিত লগগুলি পেতে। আপনি ডিবাগিং জন্য তাদের ব্যবহার করতে পারেন।

  1. কর্মপ্রবাহ

If you want to write a Spark program, you don’t need to use any magics. Simply type your code into a cell and execute it.

পাইস্পার্ক কার্নেল (পাইথন) এর জন্য:

ডাটা =  [ 
( 1 , "N1-standard-1" , 20.5 , 32.1 , 15.0 ) ,
( 2 , "N1-standard-1" , 30.0 , 64.3 , 20.0 ) ,
( 3 , "N1-standard-2" , 30.2 , 16.0 , 22.0 ) ,
( 4 , "N1-standard-2" , 45.1 , 128.5 , 40.2 ) ,
( 5 , "E2-মাধ্যম" , 25.4 , 8.0 , 18.3 ) ,
( 6 , "E2-মাধ্যম" , 25.3 , 12.0 , 10.2 ) ,
( 7 , "E2-standard-2" , 29.8 , 24.5 , 14.7 ) ,
( 8 , "E2-standard-2" , 35.0 , 24.5 , 20.5 ) ,
( 9 , "N2-highcpu-4" , 50.2 , 64.0 , 30.4 ) ,
( 10 , "N2-highcpu-4" , 55.1 , 16.0 , 35.4 ) ,
( 11 , "N1-standard-8" , 80.5 , 32.0 , 45.6 ) ,
( 12 , "N1-standard-16" , 95.1 , 128.0 , 60.0 ) ,
( 13 , "N1-standard-8" , 85.0 , 256.0 , 90.0 ) ,
( 14 , "N1-highmem-2" , 40.1 , 128.0 , 50.0 ) ,
( 15 , "T2a-standard-1" , 15.2 , 2.0 , 5.5 ) ,
( 16 , "T2a-standard-2" , 25.5 , 4.0 , 7.3 ) ,
( 17 , "N1-highmem-2" , 60.5 , 256.0 , 100.0 ) ,
( 18 , "C2-standard-16" , 99.9 , 6240.0 , 120.5 ) ,
( 19 , "A2-highgpu-1G" , 89.2 , 256.0 , 95.4 ) ,
( 20 , "A2-highgpu-1G" , 100.0 , 40.0 , 110.0 ) ,
]

#using স্ফুলিঙ্গ প্রসঙ্গ
আরডিডি = এস.সি. . সমান্তরাল ( ডাটা )

ডেটাপাথ = "s3a://ilum-files/data/performance"
আরডিডি . SaveAsTextFile ( ডেটাপাথ )


#using স্পার্ক সেশন
ডিএফ = স্ফুলিঙ্গ . রিড . সিএসভি ( ডেটাপাথ )
ডিএফ . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিন টেম্প" )
ফলাফল = স্ফুলিঙ্গ . এসকিউএল ( "নির্বাচন করুন \
_c0 হিসেবে machine_id , \
_c1 হিসেবে machine_type , \
_c2 হিসেবে cpu_usage , \
_c3 হিসেবে memory_usage , \
_c4 হিসেবে time_spent \
মেশিন টেম্প থেকে" )

ফলাফল . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিনস্ট্যাটস" )

ফলাফল . দেখান ( )

স্পার্ক কার্নেলে (স্কালা):

valডাটা =  Seq( 
( 1 , "N1-standard-1" , 20.5 , 32.1 , 15.0 ) ,
( 2 , "N1-standard-1" , 30.0 , 64.3 , 20.0 ) ,
( 3 , "N1-standard-2" , 30.2 , 16.0 , 22.0 ) ,
( 4 , "N1-standard-2" , 45.1 , 128.5 , 40.2 ) ,
( 5 , "E2-মাধ্যম" , 25.4 , 8.0 , 18.3 ) ,
( 6 , "E2-মাধ্যম" , 25.3 , 12.0 , 10.2 ) ,
( 7 , "E2-standard-2" , 29.8 , 24.5 , 14.7 ) ,
( 8 , "E2-standard-2" , 35.0 , 24.5 , 20.5 ) ,
( 9 , "N2-highcpu-4" , 50.2 , 64.0 , 30.4 ) ,
( 10 , "N2-highcpu-4" , 55.1 , 16.0 , 35.4 ) ,
( 11 , "N1-standard-8" , 80.5 , 32.0 , 45.6 ) ,
( 12 , "N1-standard-16" , 95.1 , 128.0 , 60.0 ) ,
( 13 , "N1-standard-8" , 85.0 , 256.0 , 90.0 ) ,
( 14 , "N1-highmem-2" , 40.1 , 128.0 , 50.0 ) ,
( 15 , "T2a-standard-1" , 15.2 , 2.0 , 5.5 ) ,
( 16 , "T2a-standard-2" , 25.5 , 4.0 , 7.3 ) ,
( 17 , "N1-highmem-2" , 60.5 , 256.0 , 100.0 ) ,
( 18 , "C2-standard-16" , 99.9 , 6240.0 , 120.5 ) ,
( 19 , "A2-highgpu-1G" , 89.2 , 256.0 , 95.4 ) ,
( 20 , "A2-highgpu-1G" , 100.0 , 40.0 , 110.0 )
)

valআরডিডি = স্ফুলিঙ্গ . স্পার্ককনটেক্সট . সমান্তরাল ( ডাটা )

valডেটাপাথ = "s3a://ilum-files/data/performance"
আরডিডি . SaveAsTextFile ( ডেটাপাথ )

valডিএফ = স্ফুলিঙ্গ . রিড . বিকল্প ( "header", "মিথ্যা" ) . সিএসভি ( ডেটাপাথ )

ডিএফ . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিন টেম্প" )

valফলাফল = স্ফুলিঙ্গ . এসকিউএল ( """
নির্বাচন
_c0 machine_id,
_c1 machine_type,
_c2 cpu_usage,
_c3 memory_usage হিসাবে,
time_spent হিসাবে _c4
মেশিনসটেম্প থেকে
""")


ফলাফল . তৈরি করুন অর রিপ্লেসটেম্পভিউ ( "মেশিনস্ট্যাটস" )

ফলাফল . দেখান ( )

ব্যবহার করতে স্পার্ক এসকিউএল , আপনি ব্যবহার করতে পারেন %%sql ম্যাজিক কমান্ড, যা স্পার্ক ম্যাজিকের সাথে পাইথন কার্নেলে কীভাবে কাজ করে তার অনুরূপ কাজ করে।

এক্সাপ্লের জন্য:

% % এসকিউএল 
নির্বাচন * থেকে মেশিনস্ট্যাটস

আপনি %sql এর আচরণ কাস্টমাইজ করতে একাধিক পতাকাও ব্যবহার করতে পারেন:

  • -ও : স্থানীয় পরিবেশ ভেরিয়েবল উল্লেখ করে যা ক্যোয়ারির ফলাফল সংরক্ষণ করবে।
  • -n বা --ম্যাক্সরো : ক্যোয়ারী থেকে ফিরে আসার জন্য সর্বাধিক সারি সংখ্যা সেট করে।
  • -কিউ বা --শান্ত : নথিতে আউটপুট প্রদর্শিত হয় কিনা তা নিয়ন্ত্রণ করে। নির্দিষ্ট করা হলে, ফলাফলটি দেখানো হবে না।
  • -চ বা --নমুনা ভগ্নাংশ : নমুনা দেওয়ার সময় ফিরে আসার জন্য সেট করা ফলাফলের ভগ্নাংশকে সংজ্ঞায়িত করে।
  • -মি বা --নমুনা পদ্ধতি : Specifies the sampling method to use—either take or sample.

উদাহরণস্বরূপ:

% % এসকিউএল  - ও test_result - q --সর্বোচ্চ ১০ 
নির্বাচন machine_type , গড় ( memory_usage ) হিসেবে avg_memory_usage থেকে মেশিনস্ট্যাটস গোষ্ঠী দ্বারা machine_type

তুমি এই ঘরটি চালানোর কোনও ফলাফল দেখতে পাবেন না, তবে সেগুলি এতে সংরক্ষণ করা হবে test_result স্থানীয়ভাবে ভেয়ারযোগ্য এবং ব্যবহার করে পুনরুদ্ধার করা যায় %%স্থানীয় ম্যাজিক:

%%স্থানীয় 
test_result

%%স্থানীয় magic command is used to execute code in a local environment. This can be useful when you don’t want to occupy the Spark environment for tasks that don’t require its resources.

আপনি যদি স্পার্ক সেশনে স্থানীয় পরিবেশ থেকে কোনও মান ব্যবহার করতে চান তবে আপনার ব্যবহার করা উচিত %%send_to_spark ম্যাজিক।

%%send_to_spark -i মান -n নাম -t প্রকার 

এখানে আপনি যে মানটি পাঠাতে চান তা নির্দিষ্ট করুন, এর ডেটা টাইপ এবং ভেরিয়েবলের নাম যা এটি স্পার্ক সেশনে বরাদ্দ করা হবে।

উদাহরণস্বরূপ:

% % স্থানীয় 
s = u"abc ሴ def"
%%send_to_spark -i s -n s -t str 
মুদ্রণ ( s ) 

এই 3 টি ঘর চালানোর মুদ্রণ করা উচিত s স্ট্রিং।

  1. তথ্য প্রদর্শন করা হচ্ছে

স্পার্ক এবং পাইস্পার্ক কার্নেলে, এসকিউএল কমান্ড বা পান্ডা ডেটাফ্রেমের সাহায্যে পুনরুদ্ধার করা ডেটাফ্রেমগুলি হিসাবে প্রদর্শিত হতে পারে

  • সারণী
  • পাই
  • বার
  • লাইন চার্ট
  • ছড়িয়ে ছিটিয়ে
  • এলাকা

উদাহরণস্বরূপ:

ইলুম

স্পার্ক ডেটাফ্রেমের জন্য আপনি ব্যবহার করতে পারেন %%সুন্দর আরও মনোরম বিন্যাসে তাদের প্রদর্শন করার জন্য যাদু:

%%সুন্দর 
রেজাল্ট.শো ()

ইলুম

Guide for Zeppelin

জেপেলিনে আপনি স্পার্ক সেশনগুলি নিয়ন্ত্রণ করতে পারবেন না, সেগুলি স্বয়ংক্রিয়ভাবে তৈরি এবং পরিচালিত হয়। প্রতিটি নোটবুকের জন্য ডিফল্টরূপে এর জন্য আলাদা একটি আছে %livy.spark , এক জন্য %livy.pyspark এবং একটি জন্য %livy.sql . ইন্টারপ্রেটার কনফিগারেশনে আপনি এটি পরিবর্তন করতে পারেন।

Create notebook with Livy engine

পূর্বে উল্লিখিত হিসাবে, ইলাম ইলুম পরিষেবার সাথে জেপেলিন থেকে স্পার্ক সেশনটি লিঙ্ক করতে ইলুম-লিভি-প্রক্সি ব্যবহার করে। অতএব আপনাকে অবশ্যই বেছে নিতে হবে স্পার্ক নিয়ে কাজ করার সময় লিভি ইঞ্জিন।

Write spark code in scala

ব্যবহার %livy.spark

ইলুম

Write spark code in pyspark

ব্যবহার %livy.pyspark

ইলুম

Write spark sql statements

ব্যবহার %livy.sql

ইলুম

Make use of built-in visualisztions

আপনি যখন এসকিউএল বিবৃতিগুলি চালান যা সারিগুলি ফিরিয়ে দেয়, আপনি সেগুলি কল্পনা করতে পারেন

ইলুম

Manage sessions lifecycle

দুর্ভাগ্যক্রমে, জেপেলিন সেশন পরিচালনায় নমনীয় নয়। তবে আপনি এটি করতে পারেন:

  1. ব্লকগুলিতে ম্যানুয়ালি ইলাম পরিষেবা শেষ করুন:
স্ফুলিঙ্গ . থামান ( ) 
  1. দোভাষী কনফিগারেশনে নিষ্ক্রিয় সেশনের জন্য সময়সীমা নির্ধারণ করুন:
Zeppelin.livy.idle.timeout=300