Big Data and Analytics Oozie Coordinator Jobs এর মাধ্যমে Scheduled Data Transfer গাইড ও নোট

224

Apache Oozie হল একটি workflow সিস্টেম যা Hadoop সিস্টেমে বিভিন্ন টাইপের ডেটা প্রসেসিং টাস্ক যেমন স্ক্রিপ্ট, ম্যাপReduce জব, এবং Sqoop জবগুলোকে অটোমেটিক্যালি সিডিউল এবং ম্যানেজ করার জন্য ব্যবহৃত হয়। Oozie Coordinator Jobs এর মাধ্যমে আপনি scheduled data transfer সেটআপ করতে পারেন, যেখানে নির্দিষ্ট সময়ের ব্যবধানে (যেমন, প্রতি ঘণ্টায় বা প্রতি দিনে) Sqoop জবগুলি স্বয়ংক্রিয়ভাবে চালানো হবে।

Oozie-র Coordinator Jobs আপনি যখন একটি নির্দিষ্ট সময়ে বা নির্দিষ্ট সময়ের মধ্যে ডেটা স্থানান্তরের কাজ পরিচালনা করতে চান, তখন খুবই কার্যকরী। Sqoop ব্যবহার করে RDBMS থেকে Hadoop (HDFS, HBase, Hive ইত্যাদি) এ বা বিপরীতে ডেটা স্থানান্তর করতে এটি ব্যবহার করা হয়।


Oozie Coordinator Job কী?

Oozie Coordinator Job হল একটি টাইম-ভিত্তিক জব, যা নির্দিষ্ট সময় বা নির্দিষ্ট সময়ের মধ্যে কাজ চালানোর জন্য সেটআপ করা হয়। এটি একটি নির্দিষ্ট টাইম পিরিয়ডে বা নির্দিষ্ট সিকোয়েন্সে একাধিক কাজ সম্পন্ন করতে পারে। এটি সাধারণত ডেটা ইম্পোর্ট বা এক্সপোর্টের মতো কাজ সিডিউল করতে ব্যবহৃত হয়।


Oozie Coordinator Job এর মাধ্যমে Sqoop Data Transfer Scheduling

Oozie Coordinator Jobs ব্যবহার করে আপনি Sqoop import বা Sqoop export এর মতো কাজগুলি একটি নির্দিষ্ট সময়ে সিডিউল করে রাখতে পারেন, যাতে এগুলি স্বয়ংক্রিয়ভাবে নির্দিষ্ট সময়ের পর পর চলে।


1. Oozie Coordinator Job Configuration

Oozie Coordinator Job তৈরি করার জন্য একটি XML configuration file ব্যবহার করতে হয়। এই ফাইলটি Oozie কে বলে দেয় যে এটি কোন কাজগুলো কবে চালাবে এবং কীভাবে চালাবে।

উদাহরণ:

ধরা যাক, আপনি প্রতি দিন রাত ১২টায় একটি Sqoop Import Job চালাতে চান, যার মাধ্যমে MySQL থেকে ডেটা HDFS-এ ইম্পোর্ট হবে।

Oozie Coordinator XML File উদাহরণ:

<coordinator-app xmlns="uri:oozie:coordinator:0.1" name="sqoop-coordinator-job" frequency="24" start="2024-12-18T00:00Z" end="2024-12-19T00:00Z">
    <action>
        <workflow>
            <app-path>hdfs://namenode_host/user/hadoop/sqoop_workflow</app-path>
        </workflow>
    </action>
</coordinator-app>

এখানে:

  • frequency="24": এই প্যারামিটারটি বলে দেয় যে Job টি প্রতি ২৪ ঘণ্টায় একবার চালানো হবে।
  • start="2024-12-18T00:00Z": এই সময় থেকে Job চালানো শুরু হবে।
  • end="2024-12-19T00:00Z": এই সময়ের মধ্যে Jobটি চলতে থাকবে।
  • <app-path>: এটি বলে দেয় যে workflow যেখানে অবস্থিত তা।

2. Sqoop Workflow Oozie-তে সংযুক্ত করা

Oozie Coordinator Job কেবলমাত্র টাইমিং এবং কাজের সিডিউল ঠিক করে, কিন্তু কাজটি সম্পাদন করার জন্য একটি Oozie Workflow প্রয়োজন হয়। এই workflow-এ Sqoop import বা export Job রান করার জন্য স্ক্রিপ্ট বা কমান্ড থাকতে হবে।

উদাহরণ Workflow (Sqoop import):

<workflow-app xmlns="uri:oozie:workflow:0.5" name="sqoop-import">
    <start to="sqoop-import-node"/>
    <action name="sqoop-import-node">
        <sqoop xmlns="uri:oozie:sqoop-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <command>sqoop import --connect jdbc:mysql://localhost:3306/mydb --table employees --target-dir /user/hadoop/employees</command>
        </sqoop>
        <ok to="end"/>
        <error to="fail"/>
    </action>
    <end name="end"/>
    <kill name="fail">
        <message>Sqoop Import Failed</message>
    </kill>
</workflow-app>

এখানে:

  • <sqoop>: এই ট্যাগে Sqoop কমান্ড রাখা হয়, যা ডেটা স্থানান্তর কার্য সম্পাদন করবে।
  • <command>: Sqoop কমান্ডটি এখানে উল্লেখ করা হয়, যেমন MySQL থেকে HDFS-এ ডেটা ইম্পোর্ট করার কমান্ড।

3. Oozie Coordinator Job Deploy এবং Run করা

একবার আপনি Oozie Coordinator Job এবং Workflow ফাইল তৈরি এবং কনফিগার করার পর, আপনাকে এগুলোর ডিপ্লয়মেন্ট এবং এক্সিকিউশন করতে হবে। এটি করার জন্য আপনি Oozie CLI বা Oozie Web UI ব্যবহার করতে পারেন।

কমান্ড লাইনে Oozie Job Deploy:

  1. Oozie Coordinator Job এবং Workflow ফাইল HDFS-এ আপলোড করুন।

    hadoop fs -put sqoop-coordinator.xml /user/hadoop/oozie/
    hadoop fs -put sqoop-workflow.xml /user/hadoop/oozie/
    
  2. Oozie Coordinator Job চালান:

    oozie job -run -config /user/hadoop/oozie/sqoop-coordinator.xml
    

এই কমান্ডটি Oozie Coordinator Job চালাবে এবং এটি প্রোগ্রামটিক্যালি সিডিউল করা Sqoop Job এর কাজ শুরু করবে।


4. Oozie Job Monitoring

Oozie Job Monitoring এবং লগ ফাইল দেখতে Oozie Web UI বা Oozie CLI ব্যবহার করতে পারেন। Oozie CLI-তে আপনি Job Status দেখতে পারেন:

oozie job -status <job_id>

এতে আপনি জানতে পারবেন যে আপনার Sqoop Job সফলভাবে চলছে, নাকি কোনো সমস্যা হচ্ছে।


সারাংশ

Oozie Coordinator Jobs ব্যবহার করে আপনি Apache Sqoop-কে একটি সিডিউল অনুযায়ী স্বয়ংক্রিয়ভাবে চালাতে পারেন। এটি আপনাকে প্রতি নির্দিষ্ট সময় পর পর RDBMS থেকে Hadoop-এ বা Hadoop থেকে RDBMS-এ ডেটা স্থানান্তরের কাজগুলো সিডিউল করতে সাহায্য করে। Oozie Workflow এবং Coordinator Job এর মাধ্যমে আপনি একাধিক Sqoop Data Transfer কাজকে সম্পাদন করতে পারেন, যা ডেটা স্থানান্তরকে আরও স্বয়ংক্রিয় এবং কার্যকরী করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...