HDFS (Hadoop Distributed File System) হলো Hadoop এর ডিস্ট্রিবিউটেড ফাইল সিস্টেম, যা বড় পরিমাণের ডেটা সংরক্ষণ ও প্রসেসিংয়ের জন্য ব্যবহৃত হয়। HDFS এর মাধ্যমে ডেটা ক্লাস্টারের বিভিন্ন নোডে ভাগ করা হয় এবং একাধিক কপি তৈরি করা হয়, যাতে ডেটা নিরাপদ ও সহজে অ্যাক্সেসযোগ্য থাকে। HDFS এ ডেটা লোড করার সময় দুটি প্রধান পদ্ধতি রয়েছে: Local Data Loading এবং Remote Data Loading।
Local Data লোড করা
Local Data Loading মানে হচ্ছে, যখন ডেটা একটি একক মেশিন থেকে HDFS এ লোড করা হয়। সাধারণত, যখন ডেটা মেশিনের লোকাল স্টোরেজে (যেমন, কম্পিউটারের হার্ডডিস্ক) থাকে, তখন সেটি HDFS এ আপলোড করা হয়।
Local Data লোড করার পদ্ধতি
HDFS এ ফাইল আপলোড করা
HDFS এ লোকাল ডেটা লোড করার জন্য,hadoop fs -putবাhadoop fs -copyFromLocalকমান্ড ব্যবহার করা হয়। এর মাধ্যমে লোকাল মেশিন থেকে ফাইল HDFS তে কপি করা হয়।উদাহরণ:
hadoop fs -put /localpath/myfile.txt /user/hadoop/hdfspath/এখানে:
/localpath/myfile.txtহলো লোকাল ফাইলের পাথ।/user/hadoop/hdfspath/হলো HDFS তে ফাইলের গন্তব্য পাথ।
HDFS এ ডিরেক্টরি আপলোড করা
আপনি যদি একটি পূর্ণ ডিরেক্টরি আপলোড করতে চান, তাহলে একইভাবেhadoop fs -putব্যবহার করতে পারেন:উদাহরণ:
hadoop fs -put /localpath/mydir /user/hadoop/hdfspath/
Local Data লোড করার সুবিধা
- সহজ অপারেশন: লোকাল ডেটা HDFS এ লোড করা খুব সহজ এবং দ্রুত হয়, কারণ এটি একটি সিঙ্গেল মেশিন থেকে সরাসরি করা হয়।
- কম্পিউটার ফাইল সিস্টেমের সাথে সরাসরি ইন্টিগ্রেশন: লোকাল সিস্টেমের ফাইল সিস্টেমের মধ্যে সরাসরি কাজ করে, ফলে কমপ্লেক্সিটিও কম থাকে।
Remote Data লোড করা
Remote Data Loading মানে হচ্ছে, যখন ডেটা একটি দূরবর্তী (remote) সিস্টেম বা সার্ভার থেকে HDFS এ লোড করা হয়। এটি সাধারণত তখন প্রয়োজন হয় যখন ডেটা অন্য কোনো সার্ভারে বা অন্য কোনো মেশিনে থাকে এবং HDFS এ ইমপোর্ট বা মাইগ্রেট করতে হয়।
Remote Data লোড করার পদ্ধতি
- HDFS এ রিমোট ফাইল কপি করা (HTTP/FTP)
HDFS তে রিমোট ডেটা লোড করতেhadoop fs -copyFromLocalকমান্ড ব্যবহার করা যেতে পারে, তবে এটি শুধুমাত্র লোকাল ডেটার জন্য। Rsync বা SCP (Secure Copy Protocol)
যখন ডেটা একটি রিমোট সার্ভার থেকে স্থানান্তরিত হয়, তখনrsyncবাscpকমান্ড ব্যবহার করা হয়।উদাহরণ:
scp user@remotehost:/path/to/remote/file /localpath/এরপর, আপনি লোকাল ফাইলটি HDFS তে আপলোড করতে পারেন:
hadoop fs -put /localpath/file /user/hadoop/hdfspath/DistCp (Distributed Copy)
Hadoop ক্লাস্টার থেকে ক্লাস্টারে ডেটা কপি করার জন্যDistCpকমান্ড ব্যবহার করা হয়। এটি মূলত দূরবর্তী HDFS সিস্টেম থেকে ডেটা কপি করার জন্য উপযোগী।উদাহরণ:
hadoop distcp hdfs://remote-cluster/path/to/file hdfs://local-cluster/path/to/destination/
Remote Data লোড করার সুবিধা
- বৃহৎ ডেটা স্থানান্তর: রিমোট সিস্টেম বা সার্ভার থেকে বৃহৎ পরিমাণ ডেটা HDFS এ স্থানান্তর করতে
DistCpঅত্যন্ত কার্যকরী। - নিরাপত্তা: SCP বা FTP ব্যবহার করলে ডেটা নিরাপদে স্থানান্তর করা যায়, যা বিশেষত প্রযোজ্য যখন ডেটা সংবেদনশীল।
HDFS এ Data লোড করার সময় কিছু গুরুত্বপূর্ণ বিষয়
- রিপ্লিকেশন: HDFS স্বয়ংক্রিয়ভাবে ডেটার কপি তৈরি করে (যেমন, সাধারণত ৩টি কপি), যাতে ডেটা হারানো বা নষ্ট হলে তা পুনরুদ্ধার করা যায়।
- স্টোরেজ লিমিটেশন: HDFS তে খুব বড় পরিমাণের ডেটা রাখতে সক্ষম, তবে ডেটা লোড করার সময় পর্যাপ্ত স্টোরেজ থাকা উচিত।
- ফাইল আকার: HDFS এর জন্য বড় ফাইল গুলি সবচেয়ে উপযুক্ত, কারণ এটি ছোট ছোট ফাইলের সাথে কম কার্যকরী হতে পারে।
সারাংশ
HDFS এ ডেটা লোড করার জন্য Local Data এবং Remote Data দুটি প্রধান পদ্ধতি রয়েছে। Local Data লোড করার জন্য hadoop fs -put বা hadoop fs -copyFromLocal কমান্ড ব্যবহার করা হয়, যেখানে ডেটা লোকাল মেশিন থেকে সরাসরি HDFS তে পাঠানো হয়। অপরদিকে, Remote Data লোড করার জন্য scp, rsync অথবা DistCp ব্যবহার করা যেতে পারে, যেখানে রিমোট সার্ভার থেকে ডেটা HDFS তে স্থানান্তরিত হয়। HDFS এ ডেটা লোড করার প্রক্রিয়াটি স্কেলেবেল এবং ফাল্ট টলারেন্ট, যা বিশাল পরিমাণ ডেটা পরিচালনা করতে সহায়ক।
Read more