Mahout Installation এবং Setup

Big Data and Analytics - মাহুত (Mahout)
345

Apache Mahout ইন্সটলেশন এবং সেটআপ করা বেশ সহজ, তবে এটি কিছু নির্দিষ্ট প্রোগ্রামিং ভাষা ও টুলসের সাথে কাজ করে, যেমন Java এবং Apache Hadoop। নিচে Apache Mahout ইন্সটল এবং সেটআপ করার ধাপগুলো আলোচনা করা হলো।


Mahout ইন্সটলেশন Requirements

  • Java: Mahout Java-ভিত্তিক সফটওয়্যার, তাই আপনার সিস্টেমে Java ইন্সটল থাকতে হবে।
  • Apache Hadoop (Optional): যদি আপনি Mahout কে ডিস্ট্রিবিউটেড প্রসেসিংয়ের জন্য ব্যবহার করতে চান, তাহলে Apache Hadoop ইন্সটল করতে হবে।
  • Maven: Mahout এর সোর্স কোড কম্পাইল করতে Maven ব্যবহার করা হয়, তাই Maven ইন্সটল করা প্রয়োজন।

Step 1: Java ইন্সটল করা

প্রথমে আপনার সিস্টেমে Java ইন্সটল করা প্রয়োজন। আপনি কমান্ড লাইন ব্যবহার করে Java ইন্সটল করতে পারেন।

Linux/Mac:

sudo apt update
sudo apt install openjdk-11-jdk

Windows:

  1. Java ডাউনলোড করুন
  2. ইন্সটলেশনের পর, সিস্টেম ভেরিয়েবলস (Environment Variables) এ JAVA_HOME সেট করুন।

Step 2: Apache Mahout ইন্সটল করা

Option 1: Mahout Package ইন্সটল করা

Apache Mahout এর অফিসিয়াল ওয়েবসাইট থেকে ডাউনলোড করে ইন্সটল করা যায়।

  1. Apache Mahout Download পেজ থেকে সর্বশেষ ভার্সন ডাউনলোড করুন।
  2. ডাউনলোড ফাইলটি আনজিপ করুন:

    tar -xvzf mahout-<version>.tar.gz
    
  3. ফোল্ডারে চলে যান:

    cd mahout-<version>
    

Option 2: Maven ব্যবহার করে ইন্সটল করা

Maven ব্যবহার করে Mahout এর সোর্স কোড কম্পাইল ও ইন্সটল করা যায়।

  1. Apache Mahout GitHub Repository থেকে সোর্স কোড ক্লোন করুন:

    git clone https://github.com/apache/mahout.git
    
  2. সোর্স কোড ডিরেক্টরিতে চলে যান:

    cd mahout
    
  3. Maven ব্যবহার করে কম্পাইল ও ইন্সটল করুন:

    mvn clean install
    

Step 3: Apache Mahout সেটআপ করা

Mahout ইন্সটল হওয়ার পর, আপনি এটি ব্যবহার শুরু করতে পারবেন। Mahout কমান্ড-লাইন টুলস এবং লাইব্রেরি হিসেবে কাজ করে, সুতরাং আপনাকে bin/mahout স্ক্রিপ্টটি ব্যবহার করতে হবে।

Mahout চালানো

Mahout এর কোনো কমান্ড রান করতে হলে, আপনাকে নিচের কমান্ডগুলো ব্যবহার করতে হবে।

bin/mahout

এটি Mahout এর মূল কমান্ড লাইন ইন্টারফেস (CLI) চালু করবে।


Step 4: Mahout এর সাথে Hadoop সংযোগ করা

যদি আপনি ডিস্ট্রিবিউটেড প্রসেসিং এর জন্য Apache Mahout ব্যবহার করতে চান, তাহলে আপনাকে Apache Hadoop ইন্সটল করতে হবে। Hadoop ব্যবহার না করলেও Mahout স্থানীয়ভাবে (local mode) কাজ করতে সক্ষম।

Hadoop ইনস্টল করার জন্য, Hadoop ডকুমেন্টেশন অনুসরণ করতে পারেন।


এখন আপনি Apache Mahout ইন্সটল এবং সেটআপ সম্পন্ন করেছেন, এবং এটি মেশিন লার্নিং ও ডেটা মাইনিং প্রকল্পে ব্যবহার করতে প্রস্তুত।

Content added By

Apache Mahout Install এবং Setup করার ধাপ

284

Apache Mahout ইনস্টলেশন প্রক্রিয়া বেশ সোজা, তবে এটি নিশ্চিত করতে হবে যে আপনার সিস্টেমে Apache Hadoop অথবা Apache Spark সেটআপ করা আছে, কারণ Mahout এগুলোর সাথে কাজ করে। নিচে Apache Mahout ইনস্টল এবং সেটআপ করার জন্য ধাপে ধাপে নির্দেশনা দেওয়া হলো।


প্রয়োজনীয় সফটওয়্যার এবং প্রিপকোয়াইজিট

  • Java: Apache Mahout Java দিয়ে ডেভেলপ করা, তাই Java ইনস্টল থাকতে হবে।
  • Apache Hadoop বা Apache Spark: ডিস্ট্রিবিউটেড প্রসেসিংয়ের জন্য।
  • Maven: Mahout কে কম্পাইল এবং ডিপ্লয় করার জন্য Maven প্রয়োজন।

ধাপ ১: Java ইনস্টল করা

Apache Mahout চালানোর জন্য আপনার সিস্টেমে Java ইনস্টল থাকা আবশ্যক। এটি চেক করতে কমান্ড প্রম্পটে টাইপ করুন:

java -version

যদি Java ইনস্টল না থাকে, তবে অফিসিয়াল ওয়েবসাইট থেকে Java ডাউনলোড করে ইনস্টল করুন।


ধাপ ২: Apache Mahout ডাউনলোড করা

আপনি Apache Mahout এর সর্বশেষ ভার্সন ডাউনলোড করতে পারবেন Apache Mahout Download Page থেকে।

একটি সাধারণ কমান্ডের মাধ্যমে আপনি Mahout টারগেট ফাইল ডাউনলোড করতে পারেন:

wget https://downloads.apache.org/mahout/mahout-x.x.x/apache-mahout-x.x.x-bin.tar.gz

ধাপ ৩: Apache Mahout Extract করা

ডাউনলোড করা ফাইলটি এক্সট্র্যাক্ট করতে নিচের কমান্ডটি ব্যবহার করুন:

tar -xvzf apache-mahout-x.x.x-bin.tar.gz

এটি একটি ডিরেক্টরি তৈরি করবে, যেখানে সমস্ত Mahout ফাইল থাকবে।


ধাপ ৪: PATH Environment Variable সেট করা

Mahout ব্যবহার করার জন্য, আপনাকে PATH environment variable এ Mahout এর bin ডিরেক্টরিটি যুক্ত করতে হবে।

~/.bashrc বা ~/.zshrc ফাইলে নিচের লাইনটি যুক্ত করুন:

export MAHOUT_HOME=/path/to/your/mahout/directory
export PATH=$MAHOUT_HOME/bin:$PATH

এটি সেভ করে, টার্মিনাল রিলোড করুন:

source ~/.bashrc

ধাপ ৫: Apache Hadoop বা Apache Spark সেটআপ করা

Apache Mahout সাধারণত Hadoop বা Spark এর সাথে কাজ করে, তাই আপনাকে এই দুটি সিস্টেমের মধ্যে একটি ইনস্টল এবং কনফিগার করতে হবে। যদি আপনি Hadoop ব্যবহার করতে চান, তবে আপনি Apache Hadoop Download Page থেকে Hadoop ডাউনলোড করতে পারবেন।

Apache Spark এর জন্য Apache Spark Download Page ব্যবহার করতে হবে।

আপনার পছন্দ অনুযায়ী যেকোন একটি সিস্টেম ইনস্টল করুন এবং কনফিগার করুন।


ধাপ ৬: Mahout এর কমান্ড ব্যবহার করা

Mahout ইনস্টল হয়ে গেলে, আপনি mahout কমান্ড দিয়ে Mahout চালাতে পারবেন। আপনি কমান্ড লাইনে নিচের কমান্ডটি ব্যবহার করে Mahout এর পদ্ধতি পরীক্ষা করতে পারেন:

mahout

এটি আপনাকে Mahout এর একটি ইনপুট পদ্ধতি দেখাবে যা বিভিন্ন অ্যালগরিদম চালানোর জন্য প্রস্তুত।


ধাপ ৭: পরীক্ষা করা

Mahout সঠিকভাবে ইনস্টল হয়েছে কিনা তা পরীক্ষা করতে, আপনি কিছু উদাহরণ রান করতে পারেন, যেমন:

mahout org.apache.mahout.classifier.sgd.HadoopLogisticRegression --input /path/to/input --output /path/to/output

এটি আপনাকে নিশ্চিত করবে যে Mahout সঠিকভাবে কাজ করছে।


এভাবে আপনি Apache Mahout ইনস্টল এবং সেটআপ করতে পারেন। Mahout এর সাথে কাজ শুরু করার জন্য আপনাকে এর বিভিন্ন অ্যালগরিদম এবং টুলস নিয়ে পরীক্ষা-নিরীক্ষা করতে হবে।

Content added By

Mahout এর জন্য Hadoop এবং Spark Integration

282

Apache Mahout একটি স্কেলেবল মেশিন লার্নিং লাইব্রেরি, যা মূলত Hadoop এবং Spark পরিবেশে কার্যকরভাবে কাজ করার জন্য ডিজাইন করা হয়েছে। এই ইন্টিগ্রেশন Mahout কে ডিস্ট্রিবিউটেড ডেটা প্রসেসিং প্ল্যাটফর্মের সাথে একত্রিত করতে সহায়তা করে, যার ফলে বড় ডেটাসেটের উপর মেশিন লার্নিং অ্যালগরিদম চালানো সম্ভব হয়।


Hadoop এবং Mahout Integration

Apache Hadoop একটি ডিস্ট্রিবিউটেড কম্পিউটিং ফ্রেমওয়ার্ক, যা বৃহৎ পরিসরের ডেটা প্রসেসিং এবং স্টোরেজের জন্য ব্যবহৃত হয়। Hadoop এর সাথে Mahout ইন্টিগ্রেশন এর মাধ্যমে, এটি বড় ডেটাসেট এবং ডিস্ট্রিবিউটেড প্রসেসিংয়ে মেশিন লার্নিং অ্যালগরিদম কার্যকরভাবে রান করাতে পারে।

  • MapReduce: Hadoop এর মূল ভিত্তি হল MapReduce, এবং Mahout Hadoop-এর MapReduce প্ল্যাটফর্মের উপরে মেশিন লার্নিং অ্যালগরিদম চালাতে পারে। যেমন K-means ক্লাস্টারিং, কোলাবোরেটিভ ফিল্টারিং ইত্যাদি।
  • HDFS (Hadoop Distributed File System): Hadoop এ ডেটা স্টোরেজের জন্য HDFS ব্যবহৃত হয়, এবং Mahout এ এই ডেটা ফাইলগুলো থেকে তথ্য নিয়ে মেশিন লার্নিং মডেল তৈরি করতে পারে।

Hadoop এর মাধ্যমে Mahout ডিস্ট্রিবিউটেড পরিবেশে বড় পরিসরের ডেটার উপর অ্যালগরিদম কার্যকরভাবে চালাতে সক্ষম।


Spark এবং Mahout Integration

Apache Spark একটি দ্রুত, ইন-মেমরি ডিস্ট্রিবিউটেড প্রসেসিং ইঞ্জিন যা বৃহৎ ডেটাসেটের দ্রুত প্রসেসিংয়ের জন্য পরিচিত। Spark এর সাথে Mahout ইন্টিগ্রেশন Mahout কে আরও দ্রুত এবং কার্যকরী ভাবে মেশিন লার্নিং অ্যালগরিদম রান করানোর সুযোগ দেয়।

  • In-memory Computing: Spark Mahout এর অ্যালগরিদমগুলোর জন্য ইন-মেমরি কম্পিউটিং প্রদান করে, যার ফলে Hadoop এর MapReduce থেকে দ্রুতগতির প্রসেসিং সম্ভব হয়।
  • Spark MLlib: Spark নিজেই MLlib নামক একটি মেশিন লার্নিং লাইব্রেরি সরবরাহ করে, তবে Mahout এর সাথে ইন্টিগ্রেশন এর মাধ্যমে Spark মেশিন লার্নিং ফিচারগুলোর সমন্বয়ে আরও উন্নত অ্যালগরিদম ব্যবহার করা যায়।
  • RDDs (Resilient Distributed Datasets): Spark এর RDDs ব্যবহারের মাধ্যমে Mahout বড় ডেটাসেটের উপরে স্কেলেবল অ্যালগরিদম চালাতে পারে। Spark এর RDD গুলি ডিস্ট্রিবিউটেড প্রসেসিংয়ের জন্য একেবারে উপযুক্ত।

Mahout এবং Spark এর একত্রিত ব্যবহারে, মেশিন লার্নিং কাজ আরও দ্রুত এবং কার্যকরী হয়, বিশেষ করে বড় ডেটাসেটের প্রসেসিংয়ে।


মাহুত (Mahout) এর Hadoop এবং Spark সাথে সন্নিবেশনের সুবিধা

  • স্কেলেবিলিটি: Mahout Hadoop এবং Spark এর সাহায্যে ডিস্ট্রিবিউটেড প্রসেসিংয়ের মাধ্যমে বিশাল পরিমাণ ডেটা প্রসেস করতে পারে।
  • পারফরম্যান্স: Spark এর ইন-মেমরি কম্পিউটিং এবং Hadoop এর MapReduce দ্বারা উচ্চতর পারফরম্যান্স পাওয়া যায়।
  • বড় ডেটাসেটের জন্য উপযুক্ত: Hadoop এবং Spark এর মাধ্যমে Mahout বড় ডেটাসেটের উপর দক্ষতার সাথে মেশিন লার্নিং মডেল তৈরি করতে সক্ষম।

এভাবে Mahout Hadoop এবং Spark এর সাথে একত্রিত হলে, এটি মেশিন লার্নিং কার্যক্রমে আরও কার্যকরী এবং স্কেলেবল হয়ে ওঠে।

Content added By

Mahout Environment Setup (Standalone এবং Distributed Mode)

291

Apache Mahout পরিবেশ সেটআপ করা দুটি মোডে করা যেতে পারে: Standalone Mode এবং Distributed Mode। এখানে আমরা দুইটি মোডে Apache Mahout সেটআপ করার প্রক্রিয়া নিয়ে আলোচনা করব।


Standalone Mode-এ Mahout সেটআপ

Standalone Mode সাধারণত ছোট আকারের ডেটাসেটের জন্য ব্যবহৃত হয় যেখানে ডিস্ট্রিবিউটেড প্রসেসিংয়ের প্রয়োজন হয় না। এই মোডে আপনার কম্পিউটারে সরাসরি Mahout রান করবে।

ধাপ ১: Java ইন্সটল করা

Apache Mahout চলানোর জন্য Java ইন্সটল করা জরুরি। আপনার সিস্টেমে Java ইন্সটল আছে কিনা, তা চেক করুন:

java -version

যদি Java ইন্সটল না থাকে, তাহলে Java ডাউনলোড ও ইনস্টল করুন Oracle Java অথবা OpenJDK-এর সাহায্যে।

ধাপ ২: Apache Mahout ডাউনলোড করা

Apache Mahout-এর সর্বশেষ ভার্সন ডাউনলোড করতে Apache Mahout-এর অফিশিয়াল ওয়েবসাইট থেকে ডাউনলোড করুন।

ডাউনলোড করার পর, আপনি যেখানেই Mahout ডাউনলোড করেছেন, সেখানে টার্মিনাল বা কমান্ড প্রম্পট ব্যবহার করে নেভিগেট করুন এবং Mahout ফোল্ডারে প্রবেশ করুন।

ধাপ ৩: Mahout রান করা

Mahout রান করার জন্য, নিচের কমান্ডটি ব্যবহার করুন:

bin/mahout

এটি আপনাকে Mahout এর কমান্ড লাইন ইন্টারফেস (CLI) এ নিয়ে যাবে, যেখানে আপনি বিভিন্ন অ্যালগরিদম চালাতে পারবেন।


Distributed Mode-এ Mahout সেটআপ

Distributed Mode ডিস্ট্রিবিউটেড সিস্টেমে Apache Mahout চালানোর জন্য ব্যবহৃত হয়, যেমন Apache Hadoop বা Apache Spark। এটি বড় আকারের ডেটাসেট এবং ব্যাপক পরিসরে কাজ করতে সাহায্য করে।

ধাপ ১: Hadoop ইনস্টল করা

Apache Mahout Distributed Mode এ চলানোর জন্য আপনাকে Apache Hadoop ইন্সটল করতে হবে। Hadoop ডাউনলোড করতে Hadoop ওয়েবসাইট-এ যান।

Hadoop ইনস্টল করা হলে, হাদুপের কনফিগারেশন ফাইল (যেমন core-site.xml, hdfs-site.xml) সঠিকভাবে কনফিগার করুন।

ধাপ ২: Mahout কনফিগার করা

Hadoop ইনস্টল করার পর, Apache Mahout এর ডিস্ট্রিবিউটেড প্রসেসিং চালানোর জন্য আপনাকে Mahout এর কনফিগারেশন ফাইলগুলি ঠিকভাবে সেটআপ করতে হবে।

Mahout-কে Hadoop এর সাথে ইন্টিগ্রেট করতে mahout-distribution ডিরেক্টরিতে গিয়ে কনফিগারেশন ফাইলগুলো সম্পাদনা করতে হবে।

ধাপ ৩: Mahout রান করা

Distributed Mode-এ Mahout রান করতে, আপনি Hadoop ক্লাস্টারে Mahout অ্যালগরিদম চালাতে পারেন। উদাহরণস্বরূপ, K-means ক্লাস্টারিং অ্যালগরিদম চালাতে নিচের কমান্ড ব্যবহার করা যেতে পারে:

bin/mahout org.apache.mahout.clustering.kmeans.KMeansDriver -i input -o output -dm org.apache.mahout.vectorizer.tfidf.TFIDF -k 3

এখানে:

  • -i input নির্দেশ করে ইনপুট ডিরেক্টরি,
  • -o output নির্দেশ করে আউটপুট ডিরেক্টরি,
  • -dm org.apache.mahout.vectorizer.tfidf.TFIDF নির্দেশ করে ডেটা প্রসেসিংয়ের পদ্ধতি,
  • -k 3 নির্দেশ করে ক্লাস্টারের সংখ্যা।

সারাংশ

Standalone Mode এবং Distributed Mode-এ Apache Mahout এর সেটআপ বিভিন্ন পরিস্থিতির জন্য ব্যবহার করা হয়। Standalone Mode ছোট আকারের ডেটাসেট এবং দ্রুত পরীক্ষার জন্য উপযুক্ত, যেখানে Distributed Mode বড় আকারের ডেটাসেট এবং ডিস্ট্রিবিউটেড প্রসেসিংয়ের জন্য কার্যকর। Mahout কে হাদুপ বা স্পার্কের মতো ডিস্ট্রিবিউটেড প্ল্যাটফর্মের সাথে কনফিগার করে বড় ডেটাসেটের উপর কার্যকরী মেশিন লার্নিং মডেল তৈরি করা যায়।

Content added By

Mahout এর জন্য Configuration এবং Dependencies

383

Apache Mahout ব্যবহার করতে গেলে কিছু নির্দিষ্ট কনফিগারেশন এবং ডিপেন্ডেন্সির প্রয়োজন হয়, যা আপনাকে সঠিকভাবে প্রজেক্ট সেটআপ এবং রান করতে সাহায্য করবে। নিচে Mahout এর কনফিগারেশন এবং ডিপেন্ডেন্সি সম্পর্কিত বিস্তারিত আলোচনা করা হলো।


Mahout এর Configuration

Mahout কনফিগারেশন সেটআপের জন্য বিভিন্ন পদ্ধতি রয়েছে। এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন সেটিংস আলোচনা করা হলো:

  • mahout.properties ফাইল: Mahout এ কনফিগারেশন এর জন্য mahout.properties নামক একটি ফাইল ব্যবহৃত হয়, যা Mahout এর বিভিন্ন অ্যালগরিদম এবং সেটিংস কনফিগার করার জন্য ব্যবহার করা হয়। এই ফাইলে সাধারণত ডাটা সোর্স, অ্যালগরিদমের প্যারামিটারস এবং আউটপুট লোকেশন নির্ধারণ করা হয়।
  • Hadoop এবং Spark কনফিগারেশন: যদি আপনি Mahout এর Hadoop অথবা Spark সংস্করণ ব্যবহার করেন, তাহলে আপনাকে যথাযথ Hadoop অথবা Spark কনফিগারেশন ফাইল যেমন core-site.xml, hdfs-site.xml, এবং spark-defaults.conf কনফিগার করতে হবে। এগুলো আপনাকে Mahout এর সাথে Hadoop বা Spark ক্লাস্টারের যোগাযোগ স্থাপন করতে সাহায্য করবে।
  • রান টাইম কনফিগারেশন: Mahout এর চলার সময় বিভিন্ন সেটিংস যেমন সিপিইউ, মেমরি, এবং থ্রেড সংখ্যা কনফিগার করা যেতে পারে। সাধারণত এটি config/ ডিরেক্টরির মধ্যে নির্দিষ্ট করা হয়।

Mahout এর Dependencies

Mahout এর জন্য কিছু নির্দিষ্ট ডিপেন্ডেন্সির প্রয়োজন হয়, যা প্রজেক্টের ফাংশনালিটি চালাতে সাহায্য করে। নিচে Mahout এর প্রধান ডিপেন্ডেন্সিগুলি আলোচনা করা হলো:

  • Apache Hadoop: যদি আপনি Hadoop পরিবেশে Mahout ব্যবহার করতে চান, তাহলে আপনাকে Hadoop এর নির্দিষ্ট ভার্সনের ডিপেন্ডেন্সি যোগ করতে হবে। Hadoop একটি ডিস্ট্রিবিউটেড ফাইল সিস্টেম এবং কম্পিউটিং ফ্রেমওয়ার্ক যা Mahout কে স্কেলেবিলিটি এবং ডিস্ট্রিবিউটেড প্রসেসিং সক্ষম করে।
  • Apache Spark: Spark ব্যবহারকারীদের জন্য Mahout Spark এর জন্যও ডিপেন্ডেন্সি প্রদান করে, যা ইন-মেমরি প্রসেসিং ও ডিস্ট্রিবিউটেড কম্পিউটিং এর সুবিধা দেয়। Spark চালানো হলে Mahout এর সিস্টেম কম্পিউটেশনাল শক্তি আরও বাড়ে।
  • Apache Commons: Mahout এর জন্য বেশ কিছু সাধারণ কার্যাবলী সম্পাদন করতে Apache Commons লাইব্রেরি দরকার হয়। এটি গণনা, ইউটিলিটি ফাংশন এবং কনফিগারেশন পরিচালনায় সাহায্য করে।
  • SLF4J (Simple Logging Facade for Java): Mahout লোগিং ফিচার ব্যবহারের জন্য SLF4J ডিপেন্ডেন্সি ব্যবহার করে। এটি একটি সাধারণ লোগিং ফেসেড যা বিভিন্ন লোগিং সিস্টেমের জন্য ইন্টারফেস প্রদান করে।
  • Apache Lucene: যদি আপনি টেক্সট মাইনিং বা তথ্য পুনরুদ্ধারের কাজ করেন, তবে Lucene একটি অপরিহার্য লাইব্রেরি। এটি Mahout এর কিছু অ্যালগরিদমের জন্য ব্যবহার হয়।
  • Joda-Time: সময় পরিচালনার জন্য Joda-Time লাইব্রেরি ব্যবহৃত হয়, যা Java ডেটা এবং সময় হ্যান্ডলিং সহজ করে তোলে।

Mahout এর Dependencies Maven মাধ্যমে ব্যবহার

Maven ব্যবহার করে Apache Mahout প্রজেক্টে ডিপেন্ডেন্সি যুক্ত করা যেতে পারে। উদাহরণস্বরূপ, নিচে একটি সাধারণ Mahout Maven ডিপেন্ডেন্সি দেখানো হলো:

<dependency>
    <groupId>org.apache.mahout</groupId>
    <artifactId>mahout-core</artifactId>
    <version>0.13.0</version>
</dependency>

এছাড়া, আপনার যদি Hadoop বা Spark কনফিগারেশন প্রয়োজন হয়, তাহলে আপনি উপযুক্ত ডিপেন্ডেন্সি যোগ করতে পারেন।


Mahout এর কনফিগারেশন এবং ডিপেন্ডেন্সি ঠিকভাবে সেট আপ করার মাধ্যমে আপনি স্কেলেবেল এবং দক্ষ মেশিন লার্নিং মডেল তৈরি করতে পারবেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...