Oozie Workflow এ Sqoop Jobs Execute করা গাইড ও নোট

Big Data and Analytics - স্কুপ (Sqoop) - Sqoop এবং Oozie Integration
269

Apache Oozie একটি ওয়র্কফ্লো কন্ট্রোল সিস্টেম যা Hadoop-এ জব রান করার জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীদের বিভিন্ন ধরনের টাস্ক (যেমন Sqoop, MapReduce, Hive, HBase, ইত্যাদি) শৃঙ্খলাবদ্ধভাবে চালানোর অনুমতি দেয়। Sqoop এর মাধ্যমে ডেটাবেস থেকে ডেটা ইম্পোর্ট বা এক্সপোর্ট করার প্রক্রিয়াটি Oozie Workflow-এ অন্তর্ভুক্ত করা যায়, যাতে এটি অটোমেটেড এবং স্কেলেবলভাবে পরিচালনা করা যায়।

Oozie Workflow-এ Sqoop Jobs এক্সিকিউট করার জন্য একটি Oozie workflow XML ফাইল তৈরি করতে হয়, যা এই কাজে সাহায্য করে। এই ফাইলের মাধ্যমে নির্দিষ্ট সময় বা ট্রিগার অনুযায়ী Sqoop জবগুলি রান করা যায়।


Oozie Workflow এ Sqoop Job Execute করার ধাপ

১. Sqoop Job Command তৈরি করা

প্রথমত, আপনি যে Sqoop Job রান করতে চান তার জন্য একটি সাধারণ Sqoop কমান্ড তৈরি করুন। যেমন, MySQL থেকে HDFS এ ডেটা ইম্পোর্ট করতে:

Sqoop Command (example):

sqoop import \
  --connect jdbc:mysql://localhost:3306/mydb \
  --username root --password secret \
  --table employees \
  --target-dir /user/hadoop/employees_data

২. Oozie Workflow XML তৈরি করা

Oozie Workflow ফাইল হলো একটি XML ফাইল যা Oozie Job কন্ট্রোলের জন্য ব্যবহৃত হয়। এটি বিভিন্ন টাস্ক সংজ্ঞায়িত করে, যেমন Sqoop Jobs, এবং এগুলোর মধ্যে নির্দিষ্ট অর্ডারে dependencies স্থাপন করা হয়।

Oozie Workflow XML Example:

<workflow-app xmlns="uri:oozie:workflow:0.5" name="sqoop-workflow">
  <start to="sqoop-job"/>

  <action name="sqoop-job">
    <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 \
          --username root --password secret \
          --table employees \
          --target-dir /user/hadoop/employees_data
      </command>
    </sqoop>
    <ok to="end"/>
    <error to="fail"/>
  </action>

  <end name="end"/>

  <failure name="fail">
    <message>Sqoop job failed</message>
  </failure>
</workflow-app>

এখানে:

  • : Sqoop কমান্ডটি এখানে অন্তর্ভুক্ত করা হয়েছে।
  • এবং : Hadoop Cluster এর Job Tracker এবং NameNode-এর কনফিগারেশন।
  • : এটি আপনার Sqoop Job কমান্ড, যা এখানে রান হবে।
  • এবং : সফল বা ব্যর্থ হওয়া ভিত্তিতে পরবর্তী পদক্ষেপ।

৩. Oozie Workflow Job Submit করা

একবার আপনার Oozie Workflow XML ফাইল তৈরি হয়ে গেলে, আপনি এটি Oozie এর মাধ্যমে রান করতে পারেন। প্রথমে আপনাকে Oozie Job সরবরাহ করতে হবে এবং তারপর এটি একটি Oozie কিউয়ে পাঠাতে হবে।

Oozie Job Submit Command:

oozie job --oozie http://<oozie-server>:11000/oozie -config /path/to/job.properties -run

এখানে:

  • --oozie: Oozie সার্ভারের URL।
  • -config: আপনার Oozie job-এর প্রপার্টি ফাইলের পাথ।
  • -run: এটি Job রান করার নির্দেশ।

৪. Oozie Job Properties File তৈরি করা

Oozie job properties ফাইলটি একটি কনফিগারেশন ফাইল যা Oozie Workflow চালানোর জন্য প্রয়োজনীয় সমস্ত ভ্যারিয়েবল এবং কনফিগারেশন ধারণ করে। এটি আপনার job-এর বিভিন্ন সেটিংস যেমন, Job Tracker, NameNode, HDFS, Sqoop কমান্ডের জন্য ব্যবহার করা হয়।

Oozie Job Properties Example:

jobTracker=localhost:8021
nameNode=hdfs://localhost:9000
sqoop.job.name=employees-import
sqoop.command=sqoop import --connect jdbc:mysql://localhost:3306/mydb --username root --password secret --table employees --target-dir /user/hadoop/employees_data

৫. Oozie Job Monitor করা

Oozie job রান হওয়ার পর, আপনি এটি মনিটর করতে পারেন যাতে দেখতে পারেন কাজটি সফলভাবে সম্পন্ন হয়েছে কিনা, অথবা কোনো ত্রুটি ঘটেছে কিনা। আপনি Oozie Web UI অথবা Oozie CLI ব্যবহার করে job-এর স্টেটাস চেক করতে পারেন।

Oozie Job Status Check Command:

oozie job -info <job-id>

সারাংশ

Apache Oozie Workflow-এর মাধ্যমে Sqoop Job Execute করার প্রক্রিয়া অত্যন্ত কার্যকরী যখন আপনাকে ডেটাবেস থেকে Hadoop-এ ডেটা ইম্পোর্ট বা এক্সপোর্টের কাজ অটোমেটেড ও স্কেলেবলভাবে চালাতে হয়। আপনি একটি Oozie Workflow XML ফাইল তৈরি করেন, যা আপনার Sqoop কমান্ড অন্তর্ভুক্ত করে এবং নির্দিষ্ট সময় বা ট্রিগারের মাধ্যমে সেটি চালানো হয়। Oozie Workflow এ Sqoop জব রান করার মাধ্যমে আপনাকে Batch Process বা Scheduled Jobs আরও সহজে পরিচালনা করতে সহায়তা করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...