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

সময়সূচি

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

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

হুডের অধীনে, এই বৈশিষ্ট্যটি কুবারনেটস ক্রোনজবসকে উপকৃত করে, যা চাকরিগুলি কখন চালানো উচিত তা সঠিকভাবে সংজ্ঞায়িত করতে ক্রন এক্সপ্রেশন ব্যবহার করে। নির্ধারিত সময়ে, ক্রোনজব ইলুমের ব্যাকএন্ডের কাছে একটি অনুরোধ ট্রিগার করে, যা একক চাকরি তৈরির অর্কেস্ট্রেট করে।

কেস ব্যবহার করুন

ডাটা ইনজেশন

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

ডেটা পাইপলাইন অর্কেস্ট্রেশন (ইটিএল)

স্বয়ংক্রিয় স্পার্ক-ভিত্তিক ইটিএল (এক্সট্র্যাক্ট, ট্রান্সফর্ম, লোড) কাজগুলি যা একাধিক উত্স থেকে কাঁচা ডেটা বের করে, জটিল রূপান্তর প্রয়োগ করে এবং লোড করে একটি তথ্য গুদাম মধ্যে ফলাফল

বিশ্লেষণের জন্য প্রতিবেদন প্রস্তুতি এবং ডেটা সমষ্টি

বিভিন্ন উত্স (যেমন, লগ, বিক্রয় ডেটা, ব্যবহারকারীর মিথস্ক্রিয়া) থেকে বড় ডেটাসেটগুলি একত্রিত করার জন্য একটি স্পার্ক কাজের সময়সূচী করুন যা ব্যবহৃত হয় ড্যাশবোর্ড এবং রিপোর্ট।

ডেটা ক্লিনআপ

একটি স্পার্ক কাজের সময়সূচী করুন যা ডেটা ক্লিনআপ সম্পাদন করে, যেমন সঞ্চিত একটি বৃহত ডেটাসেটে সদৃশগুলি অপসারণ করা, অবৈধ এন্ট্রিগুলি সংশোধন করা বা ডেটা ফিল্টার করা একটি বিতরণ সিস্টেমে

শুরু করা যাক

নির্ধারিত পাইথন চাকরি

নীচের উদাহরণটি পাইথনে একটি সাধারণ স্পার্ক কাজ যা এলোমেলো ডেটা তৈরি করে এবং এটি একটি এস 3 বালতিতে লিখে। এই কাজটি একটি নির্দিষ্ট সময়ের ব্যবধানে চলার জন্য নির্ধারিত হবে।

  1. একক কাজ লিখুন

    থেকে পাইস্পার্ক . এসকিউএল আমদানি স্পার্কসেশন 
    থেকে পাইস্পার্ক . এসকিউএল আমদানি ডেটাফ্রেম
    থেকে পাইস্পার্ক . এসকিউএল আমদানি সারি
    আমদানি এলোমেলো
    থেকে তারিখের সময় আমদানি তারিখের সময়


    ডিএফ generate_sample_data ( n ) :
    ফিরে [ সারি ( আইডি = আমি , নাম = চ"Name_ { আমি } " , মান = এলোমেলো . র ্যান্ডরেঞ্জ ( 70 , 100 ) ) জন্য আমি মধ্যে সীমা ( n ) ]


    যদি __নাম__ == "__main__" :
    স্ফুলিঙ্গ = স্পার্কসেশন . নির্মাতা \
    . অ্যাপের নাম ( "মাই স্পার্ক জব" ) \
    . getOrCreate ( )

    ডাটা = generate_sample_data ( 100 )
    ডিএফ = স্ফুলিঙ্গ . createDataFrame ( ডাটা )

    current_datetime = তারিখের সময় . এখন ( )
    current_timestamp = current_datetime . স্ট্রফটাইম ( "%Y-%m-%d %H:%M:%S" )

    output_path = f"s3a://ilum-files/generated_data/ { current_timestamp } "
    ডিএফ . লিখন . পরিমণ্ডল ( "ওভাররাইট" ) . কাঠের কুঠি ( output_path )

    স্ফুলিঙ্গ . থামান ( )

    ফাইলটি এইভাবে সংরক্ষণ করুন <আপনার ফাইলের নাম>.py

  2. একটি সময়সূচী তৈরি করুন

    আপনার সময়সূচী তৈরি করার সময়, নিম্নলিখিতগুলি নির্দিষ্ট করুন:

    • সাধারণ ট্যাব:
      • নাম : তফসিলের নাম
      • ক্লাস্টার : যে ক্লাস্টারে কাজ চলবে
      • ভাষা : এক্ষেত্রে পাইথন
      • শ্রেণী : <আপনার ফাইলের নাম> ছাড়া .py বর্ধিতাংশ
    • টাইমিং ট্যাব:
      • আপনার প্রয়োজন অনুসারে একটি মান চয়ন করুন। পূর্বনির্ধারিত বিকল্পগুলি আপনার প্রয়োজনীয়তাগুলি পূরণ না করলে একটি কাস্টম ক্রোন এক্সপ্রেশন ব্যবহার করা যেতে পারে।

        ইলুম

    • রিসোর্স ট্যাব:
      • PyFiles : পাইথন স্ক্রিপ্ট আপলোড করুন
  3. উপস্থিত চাকরির লগগুলি পর্যবেক্ষণ করুন

    আপনি সময়সূচী তৈরি করার পরে, এটি ইতিমধ্যে সক্রিয় এবং আপনার নির্দিষ্ট করা সেটিংস অনুযায়ী কাজ শুরু করবে।

    তফসিল দ্বারা চালু করা একক কাজগুলি নিয়মিত ইলম একক কাজের মতো একইভাবে আচরণ করে: উদাঃ, আপনি যেতে পারেন কাজ শিডিউল দ্বারা চালু করা চাকরির তালিকা দেখতে ট্যাব।

    ইলুম

নির্ধারিত স্কালা চাকরি

এই উদাহরণটি পাইথনের মতোই, তবে স্কালায় লেখা।

  1. একটি sbt প্রকল্প তৈরি করুন

    প্রকল্পটি তৈরি করার সময়, এটি অন্তর্ভুক্ত করা গুরুত্বপূর্ণ স্পার্ক-এসকিউএল নির্ভরশীলতা build.sbt ফাইল।

    libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.5.3" % "প্রদত্ত" 

    মনে রাখবেন যে নির্ভরতার সংস্করণটি ক্লাস্টারে চলমান স্পার্কের সংস্করণটির সাথে মেলে।

  2. একটি একক কাজ লিখুন এবং সংকলন করুন

    আমদানি  org. apache. স্ফুলিঙ্গ . এসকিউএল . types. { IntegerType,  StringType,  StructField,  StructType} 
    আমদানি org. apache. স্ফুলিঙ্গ . এসকিউএল . { সারি , স্পার্কসেশন }

    আমদানি java. time. LocalDateTime
    আমদানি java. time. format. DateTimeFormatter
    আমদানি scala. util. Random

    অবজেক্ট মূল {
    private ডিএফ generateSampleData( n : Int) : Seq[ সারি ] = {
    ( 0 until n) . মানচিত্র ( আমি =>সারি ( আমি , s "Name_$আমি " , Random. nextInt( 30 ) + 70 ) )
    }

    ডিএফ মূল ( আর্গস : Array[ String] ) : Unit = {
    valস্ফুলিঙ্গ = স্পার্কসেশন . builder( )
    . অ্যাপের নাম ( "মাই স্পার্ক জব" )
    . getOrCreate ( )

    valডাটা = generateSampleData( 100 )
    valডিএফ = স্ফুলিঙ্গ . createDataFrame (
    স্ফুলিঙ্গ . স্পার্ককনটেক্সট . সমান্তরাল ( ডাটা ) ,
    StructType(
    List(
    StructField( "আইডি" , IntegerType, nullable = মিথ্যা ) ,
    StructField( "নাম" , StringType, nullable = মিথ্যা ) ,
    StructField( "value", IntegerType, nullable = মিথ্যা )
    )
    )
    )

    val currentDateTime = LocalDateTime. এখন ( )
    val currentTimestamp = currentDateTime. format( DateTimeFormatter. ofPattern( "yyyy-MM-dd HH:mm:ss") )

    val outputPath = s "s3a://ilum-files/generated_data/$currentTimestamp"
    ডিএফ . লিখন . পরিমণ্ডল ( "ওভাররাইট" ) . কাঠের কুঠি ( outputPath)

    স্ফুলিঙ্গ . থামান ( )
    }
    }

    এখন প্রকল্পটি একটি জার ফাইলে সংকলিত করা যেতে পারে। যদিও সাধারণত আপনি সমস্ত নির্ভরতা সহ একটি 'ফ্যাট জার' চাইবেন, এই কাজটি ক্লাস্টার দ্বারা প্রদত্ত নির্ভরতার সাথে চালানোর পক্ষে যথেষ্ট সহজ।

    প্রকল্পটি দ্রুত প্যাকেজ করতে, চালান এসবিটি প্যাকেজ আদেশ।

  3. একটি সময়সূচী তৈরি করুন

    আপনার সময়সূচী তৈরি করার সময়, নিম্নলিখিতগুলি নির্দিষ্ট করুন:

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

        ইলুম

    • রিসোর্স ট্যাব:
      • জার : জার ফাইল আপলোড করুন
  4. উপস্থিত চাকরির লগগুলি পর্যবেক্ষণ করুন

    আপনি সময়সূচী তৈরি করার পরে, এটি ইতিমধ্যে সক্রিয় এবং আপনার নির্দিষ্ট করা সেটিংস অনুযায়ী কাজ শুরু করবে।

    তফসিল দ্বারা চালু করা একক কাজগুলি নিয়মিত ইলম একক কাজের মতো একইভাবে আচরণ করে: উদাঃ, আপনি যেতে পারেন কাজ শিডিউল দ্বারা চালু হওয়া চাকরির তালিকা দেখতে ট্যাব।

    ইলুম

উদাহরণ সময়সূচী লোড হচ্ছে

নতুন ব্যবহারকারীদের দ্রুত শুরু করতে সহায়তা করার জন্য ইলাম একটি উদাহরণ সময়সূচী সরবরাহ করে। উদাহরণ সময়সূচী লোড হচ্ছে সক্ষম করা হয়েছে ডিফল্টরূপে। তবে আপনি এটি ব্যবহার করে অক্ষম করতে পারেন --সেট ilum-core.examples.schedule=false .

ইঙ্গিত

ক্রোন এক্সপ্রেশনগুলির সম্পূর্ণ শক্তি লিভারেজ করুন

ইলাম সময়সূচীর জন্য পূর্বনির্ধারিত বিকল্পগুলির সাথে আসে, আপনি আরও জটিল সময়সূচী সেট আপ করতে কাস্টম ক্রন এক্সপ্রেশনগুলিও ব্যবহার করতে পারেন।

ক্রোন এক্সপ্রেশন 5 টি ক্ষেত্র নিয়ে গঠিত: 
<minute> <hour> <day-of-month> <month> <day-of-week>

* - প্রতিটি সময় ইউনিট
? - যে কোনও সময় ইউনিট (? সপ্তাহ-দিনের ক্ষেত্রের ফলাফলগুলি সাপ্তাহিক-দিন উপেক্ষা করে)
- - পরিসীমা (1-5)
, - মান: (1,5)
/ - ইনক্রিমেন্ট (মিনিট ফিল্ডে 5/15 = 5, 20, 35, 50)

উদাহরণ :

প্রতি ঘন্টা: 
0 * * * *

প্রতি রবিবার রাত ৩টায়:
0 3 * * 0

প্রতিদিন ১৫ মিনিট:
0/15 0 * * ?

প্রতিদিন দুপুর ১টা থেকে শুরু হয়ে দুপুর ১টা ৫৫ মিনিটে শেষ হয়ে সন্ধ্যা ৬টা ৫৫ মিনিটে শেষ হয়।
0/5 13,18 * * ?

আপনি যদি আরও জানতে চান তবে দেখুন কুবারনেটসের ক্রোন জব ডকুমেন্টেশন .

সময়সূচী নির্ধারণের আগে আপনার কাজ পরীক্ষা করুন

নির্ধারিত কাজগুলি পর্যায়ক্রমে চালু করা হয়, তাই কাজটি সঠিকভাবে কাজ করে তা নিশ্চিত করা অপরিহার্য। কারণ নির্ধারিত কাজগুলি নিয়মিত একক চাকরির মতো একইভাবে আচরণ করে, আপনি একটি সময়সূচী তৈরি করার আগে একটি একক কাজ চালু করে মৃত্যুদন্ড পরীক্ষা করতে পারেন।

শিডিউল চালু ইলম একক চাকরি চালু

আইলুম একক চাকরি হিসাবে নির্ধারিত চাকরি চালু করা হয়। এর অর্থ হ'ল একক কাজের জন্য উপলব্ধ আপনার সমস্ত কনফিগারেশন, লগ, আউটপুট এবং অন্যান্য বৈশিষ্ট্যগুলিও নির্ধারিত কাজের জন্য উপলব্ধ।

প্রয়োজন না হলে সময়সূচী বন্ধ করুন

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

একটি নতুন তৈরি করার পরিবর্তে আপনার সময়সূচী সম্পাদনা করুন

আপনি যদি বিদ্যমান সময়সূচীর কনফিগারেশন পরিবর্তন করতে চান, ক্লিক করুন সম্পাদনা তার উপর।