Apache Sqoop, একটি শক্তিশালী ডেটা স্থানান্তর টুল, সাধারণত RDBMS এবং Hadoop সিস্টেমের মধ্যে ডেটা স্থানান্তরের জন্য ব্যবহৃত হয়। এই প্রক্রিয়াগুলি অনেক সময় স্বয়ংক্রিয়ভাবে চালানো প্রয়োজন হয়, বিশেষ করে যখন ডেটা স্থানান্তরের কাজটি নিয়মিত বা নির্দিষ্ট সময়সূচীতে করতে হয়। এজন্য Cron এবং Oozie দুটি জনপ্রিয় টুল ব্যবহার করা হয়, যা স্কুপ জবগুলোকে নির্দিষ্ট সময়সূচী অনুসারে চালানোর জন্য সহায়ক।
Cron এর মাধ্যমে Sqoop Job Scheduling
Cron একটি Unix/Linux ভিত্তিক টাস্ক সিডিউলার, যা স্বয়ংক্রিয়ভাবে নির্দিষ্ট সময়, দিন, সপ্তাহ বা মাসে নির্ধারিত স্ক্রিপ্ট বা কমান্ড চালানোর জন্য ব্যবহৃত হয়। এটি সার্ভারে স্ক্রিপ্ট রান করার জন্য সহজ এবং কমপ্যাক্ট একটি উপায়।
Cron ব্যবহার করে Sqoop Job Scheduling:
- Cron Job Setup: প্রথমে, আপনার সিস্টেমে একটি Cron job তৈরি করতে হবে, যা নির্দিষ্ট সময়সূচীতে Sqoop কমান্ড চালাবে। এর জন্য Cron ট্যাব ফাইল (crontab) সম্পাদনা করতে হয়।
Crontab ফাইল সম্পাদনা: নিম্নলিখিত কমান্ড ব্যবহার করে crontab ফাইলটি এডিট করুন:
crontab -eCron Job কমান্ড: Sqoop Job চালানোর জন্য নির্দিষ্ট সময় অনুযায়ী Cron job তৈরি করুন। উদাহরণস্বরূপ, যদি আপনি প্রতিদিন রাত ২ টায় একটি Sqoop job চালাতে চান, তবে crontab এ নিচের মতো একটি লাইন যোগ করুন:
0 2 * * * /usr/bin/sqoop import --connect jdbc:mysql://localhost:3306/mydb --table my_table --target-dir /user/hadoop/my_table_dataএখানে:
0 2 * * *: এটি প্রতিদিন ২ টায় Cron job চালানোর জন্য নির্দেশনা দেয়।/usr/bin/sqoop: এটি Sqoop-এর পাথ।--connect: ডেটাবেস সংযোগ স্ট্রিং।--table: ইনপোর্ট করার টেবিল।--target-dir: HDFS টার্গেট ডিরেক্টরি।
- Cron Job পরীক্ষা: Cron job সেট করা হলে, এটি একটি নির্দিষ্ট সময়ে স্বয়ংক্রিয়ভাবে চালিত হবে। আপনাকে শুধু
crontab -lকমান্ডের মাধ্যমে আপনার ক্রন জবটি যাচাই করতে হবে।
Oozie এর মাধ্যমে Sqoop Job Scheduling
Oozie হল একটি ওপেন সোর্স ওয়েব ভিত্তিক কো-অর্ডিনেশন সিস্টেম যা Hadoop ইকোসিস্টেমে জব বা টাস্ক সিডিউল করার জন্য ব্যবহৃত হয়। Oozie ব্যবহার করে আপনি আরও উন্নত এবং জটিল ওয়র্কফ্লো তৈরি করতে পারেন, যেমন একাধিক টাস্কের মধ্যে ডিপেনডেন্সি ম্যানেজমেন্ট এবং নির্দিষ্ট সময়সূচীতে একাধিক Sqoop job চালানো।
Oozie ব্যবহার করে Sqoop Job Scheduling:
- Oozie Workflow তৈরি করা: Oozie workflow একটি XML ফাইলের মধ্যে সংজ্ঞায়িত হয়, যেখানে টাস্ক এবং তাদের মধ্যে সম্পর্ক (dependency) নির্ধারিত হয়।
Sqoop Job এর জন্য Oozie Action Configuration: Oozie workflow-এ একটি
shellaction ব্যবহার করে Sqoop job রান করানো যেতে পারে। এখানে একটি উদাহরণ দেখানো হচ্ছে:<workflow-app xmlns="uri:oozie:workflow:0.5" name="sqoop-workflow"> <start to="sqoop-action"/> <action name="sqoop-action"> <shell xmlns="uri:oozie:shell-action:0.2"> <exec>sqoop</exec> <argument>import</argument> <argument>--connect</argument> <argument>jdbc:mysql://localhost:3306/mydb</argument> <argument>--table</argument> <argument>my_table</argument> <argument>--target-dir</argument> <argument>/user/hadoop/my_table_data</argument> <capture-output/> </shell> <ok to="end"/> <error to="end"/> </action> <end name="end"/> </workflow-app>এখানে:
<shell>: Sqoop কমান্ড চালানোর জন্য Oozie Shell Action ব্যবহার করা হয়েছে।<exec>: কমান্ড যে ফাইলটি রান করবে তা নির্দেশ করে।<argument>: Sqoop কমান্ডের আর্গুমেন্টগুলির তালিকা।
Oozie Job Submit করা: Oozie job-এর জন্য XML ফাইল প্রস্তুত করার পর, এটি Oozie সার্ভারে সাবমিট করা হয়। Oozie job চালানোর জন্য নিম্নলিখিত কমান্ড ব্যবহার করা হয়:
oozie job -oozie http://localhost:11000/oozie -config job.properties -runএখানে:
job.properties: Oozie job এর কনফিগারেশন ফাইল।-oozie: Oozie সার্ভারের URL।-run: Oozie job চালানোর জন্য অপশন।
- Oozie Workflow Scheduling: Oozie-এর মাধ্যমে স্বয়ংক্রিয়ভাবে যেকোনো নির্দিষ্ট সময় বা তারিখে Sqoop job চালানোর জন্য Oozie-এর Coordinator ব্যবহার করা যেতে পারে, যা নির্দিষ্ট সময় অনুসারে বা ইভেন্টের ভিত্তিতে job রান করাতে পারে।
সারাংশ
Apache Sqoop-এর জন্য Cron এবং Oozie দুটি জনপ্রিয় টুল যা ডেটা স্থানান্তরের কাজ স্বয়ংক্রিয়ভাবে নির্দিষ্ট সময়সূচীতে চালানোর জন্য ব্যবহৃত হয়। Cron সাধারণত সহজ এবং কমপ্লেক্স নন টাস্ক সিডিউলিং এর জন্য উপযোগী, যেখানে Oozie আরও জটিল টাস্ক এবং ডিপেনডেন্সি ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। Oozie একটি শক্তিশালী টুল, যা Hadoop ইকোসিস্টেমের মধ্যে বহু ধরনের কাজের স্বয়ংক্রিয়তা এবং স্কেলেবিলিটি প্রদান করে, যেখানে Cron একটি সরল, কমপ্লেক্সিটি কম সমাধান।
Read more