نحوه نصب هدوپ به صورت Multi-Node

سیستم عامل: گنو/لینوکس

نوع نصب: Multi Node Cluster

در این آموزش به نصب هدوپ به صورت چند گره یا Multi Node پرداخته می شود. اگرچه که نمی توانیم کلاستر را به صورت کامل در این آموزش پیاده سازی کنیم ولی به صورت شبیه سازی شده ، محیط چند گره ای هدوپ را پیکربندی و نصب میکنیم که همین مراحل برای محیط واقعی هم صدق می کند.

m1

همانطور که در شکل بالا مشاهده می کنید بر خلاف محیط تک گره ای یا Single Node که همه گره ها نقش مدیر یا Master  را بازی می کنند در کلاستر چند گره ای می بایست یکی از گره ها نقش مدیر را بازی کند و بقیه گره ها نقش فرعی یا Slave  را می کنند.

برای شروع ما می خواهیم هدوپ را با سه گره در کلاستر راه اندازی کنیم. در ابتدا می بایست دو سیستم عامل مجازی سازی شده در هر کدام از نرم افزار های مجازی سازی مثل VMware و Cisco  را ایجاد کنیم.(آموزش راه اندازی سیستم عامل مجازی خارج از موضوع این مقاله می باشد.). پس از ایجاد یک سیستم عامل در نرم افزار مجازی سازی می توان این سیستم عامل را با استفاده از ابزار Clone نمونه سازی کرد تا از نصب دوباره و طی مراحل نصب سیستم عامل جلوگیری شود.

آدرس ها و اسامی این سه گره به شرح زیر است:

Hadoop Master: 192.168.1.15 (hadoop-master(

Hadoop Slave: 192.168.1.16 (hadoop-slave-1(

Hadoop Slave: 192.168.1.17 (hadoop-slave-2(

سیستم مدیر یا Master سیستم فیزیکی حاضر شما می باشد و دو گره فرعی یا Slave مجازی سازی می شود.

مراحل نصب:

ابتدا مطمئن شوید که بسته JDK بر روی سیستم شما نصب می باشد. زیرا که هدوپ برای کارکردن نیاز به جاوا دارد. می توانید با دستور "java –version" در خط فرمان از نصب آن اطمینان حاصل کنید. پس از نصب جاوا می بایست مطمئن شوید که فایل های جاوا از طریق متغیر JAVA_HOME در خط فرمان قابل دسترس است. در غیر اینصورت هدوپ پیغام خطای عدم وجود جاوا را صادر می کند.

برای افزودن مسیر جاوا به متغیر JAVA_HOME ، از طریق خط فرمان فایل .bashrc را که در مسیر ~/.bashrc قرار دارد را با یکی از ویرایشگرهای متنی باز کنید و دو خط زیر را به آن اضافه کنید:

export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH=$PATH:$JAVA_HOME/bin

*/usr/local/jdk1.7.0_71 مسیر نصب جاوا است

پس از آن می بایست یک حساب کاربری سیستمی بسازید. با دو دستور زیر در خط فرمان حسابی با نام hadoop و کلمه عبور hadoop می سازیم:

useradd hadoop
passwd hadoop

در مرحله بعدی می بایست فایل مربوط به میزبان های شبکه ای را بر روی تمامی گره ها به صورت زیر ویرایش و آدرس های زیر را به آن اضافه کنید(این فایل در مسیر /etc/hosts قرار دارد):

# vi /etc/hosts
192.168.1.109 hadoop-master
192.168.1.145 hadoop-slave-1
192.168.56.1 hadoop-slave-2

در مرحله بعد به دلیل اینکه هدوپ برای ارتباط بین گره ها از SSH استفاده می کند می بایست SSH را نیز بر روی تمامی گره ها پیکربندی کرد. با استفاده از دستورات زیر به هرسه گره کلیدی اختصاص می دهید که با استفاده از آن مجوز این را دارند که از طریق SSH  با یکدیگر ارتباط برقرار کنند:

# su hadoop
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub tutorialspoint@hadoop-master
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp1@hadoop-slave-1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop_tp2@hadoop-slave-2
chmod 0600 ~/.ssh/authorized_keys
exit

حالا نوبت به نصب هدوپ بر روی سرویس دهنده یا همان گره مدیر می رسد. دستورات زیر را اجرا کنید:

mkdir /opt/hadoop
cd /opt/hadoop
wget http://apache.mesi.com.ar/hadoop/common/hadoop-1.2.1/hadoop-1.2.0.tar.gz
tar -xzf hadoop-1.2.0.tar.gz
mv hadoop-1.2.0 hadoop
chown -R hadoop /opt/hadoop
cd /opt/hadoop/hadoop

با استفاده از این دستوران فایل های مربوط به هدوپ در مسیر /opt/hadoop دانلود و ذخیره می شود و در دو خط پایانی ، حساب کاربری مالک این پوشه به آن کاربری که قبلا ساختیم تغییر داده می شود.

برای پیکربندی هدوپ می بایست 4 فایل زیر را ویرایش کنیم.

فایل core-site.xml را باز و به صورت زیر ویرایش کنید:

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://hadoop-master:9000/</value>
   </property>
   <property>
      <name>dfs.permissions</name>
      <value>false</value>
   </property>
</configuration>

فایل hdfs-site.xml را باز و به صورت زیر ویرایش کنید:

<configuration>
   <property>
      <name>dfs.data.dir</name>
      <value>/opt/hadoop/hadoop/dfs/name/data</value>
      <final>true</final>
   </property>
   <property>
      <name>dfs.name.dir</name>
      <value>/opt/hadoop/hadoop/dfs/name</value>
      <final>true</final>
   </property>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
</configuration>

فایل mapred-site.xml را باز و به صورت زیر ویرایش کنید:

<configuration>
   <property>
      <name>mapred.job.tracker</name>
      <value>hadoop-master:9001</value>
   </property>
</configuration>

فایل hadoop-env.sh را به صورت زیر باز و متغیرهای JAVA_HOME, HADOOP_CONF_DIR,HADOOP_OPTS را به صورت زیر ویرایش کنید(متغیر JAVA_HOME را نسبت به پوشه موردنظر خود آدرس دهی کنید):

export JAVA_HOME=/opt/jdk1.7.0_17 export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true export HADOOP_CONF_DIR=/opt/hadoop/hadoop/conf

در مرحله بعد با دستوران زیر هدوپ را بر روی دو گره فرعی یا Slave نصب نمایید:

# su hadoop

cd /opt/hadoop

scp -r hadoop hadoop-slave-1:/opt/hadoop

scp -r hadoop hadoop-slave-2:/opt/hadoop

vi etc/hadoop/masters

hadoop-master

vi etc/hadoop/slaves

hadoop-slave-1

hadoop-slave-2

# su hadoop

cd /opt/hadoop/hadoop

bin/hadoop namenode –format

تبریک می گوییم. شما اولین کلاستر چند گره ای هدوپ را به درستی ایجاد کردید. در پایان برای اجرای سرویس هدوپ بر روی سیستم مدیر یا Master دستوران زیر را اجرا کنید:

cd $HADOOP_HOME/sbin

start-all.sh
از سرورهای ما برای اجرای پروژه های داده های کلان خود بدون اینکه درگیر پیچیدگی نصب شوید استفاده کنید. برای سفارش اینجا را کلیک کنید.
ما حتی می توانیم کلاستر و سرورهای هدوپ را برای شما ایجاد کنیم. برای درخواست راه اندازی اینجا را کلیک کنید.
اگر نیاز به مشاوره و یا کلاس آموزشی داشتید به اینجا مراجعه کنید.

لیست نظرات

  1. سلام

    ببخشید اگه میشه در مورد حداقل های سخت افزاری نصب هدوپ توضیح بدید. اگه هورتون ورک استفاده کنیم چه محدودیت هایی داریم و اگه از اپچی استفاده کنیم چه محدودیت هایی داریم؟ چرا کسانی که با هدوپ کار می کنند اکثراً از centOS استفاده می کنند؟

    من قصد ندارم از vmware و مجازی سازی استفاده کنم و قصد دارم سه تا کامپیوتر رو با هم شبکه کنم. بفرمایید که نود مستر و اسلیو هر کدوم باید دست کم چقدر رم و چقدر هارد خالی داشته باشن؟ کابل شبکه مهمه از چه نوعی باشه؟ من قصد دارم از یه هاپ معمولی استفاده کنم. مهم ترین بخش سؤال من مقدار رم و هارد خالی در مستر و اسلیوها بود که امیدوارم جواب بدید.

    • در مورد حداقل های نرم افزاری در این لینک به صورت کامل نوشتم:
      http://hadoop.ir/requirement/
      همانطور که می دانید هورتون ورکس چندین محصول دارد که یکی از آنها بسته آماده مجازی شده هدوپ می باشد. محصولات دیگر این شرکت مثل HDP را به شخصه بررسی نکردم. در جواب اینکه چرا از centOS استفاده می کنند می تونم بگم که دلایل زیادی دارد. مثلا این توزیع  مختص به سیستم های سرور است و مثل توزیع های دیگر برای استفاده عمومی منجمله سرور ارائه نمی شود. از موارد دیگر میشه به گران نبودن اون نسبت به RHEL نام برد. همچنین centOS از جامعه کاربران بسیار خوبی هم برخوردار است. در مورد سوال آخرتون هم در لینکی که بالا قرار دادم هست می توانید مطالعه کنید.

  2. سلام ببخشید میشه از سیستم عامل مجازی لینوکس استفاده نکرد و از دوسیستم واقعی که هردو ویندوز باشن استفاده کرد و هدوپ مولتی نود اجرا کرد لطفا توضیح بدین شرمنده؟

     

    • شرکت مهندسی تکنولوژی فرافکر

      بله اصولا سیستم عامل مجازی برای یادگیری و تست مورد استفاده قرار میگیرد. برای دو سیستم واقعی جدا از هم می بایست آی پی معتبر برای هرکدام داشته باشید.

  3. :سلام اقای رنجبر اگه میشه منو راهنمایی کنید

    من یه مولتی نود با سرور راه انداختم ولی خطا میده اگه میشه من ادرس این سرورامو می فرستم ببینید مشکل این کجاست و خطایابی کنم هزینه هرچه که باشد متقبل میشم

    تشکر

  4. سلام با تشکر از آموزشی که گذاشتید

    من تمام مراحل را انجام دادم اما در زمان اجرا هدوپ از پورت 9000 ارور میگیرد . 

    میخواستم بدونم این پورت ها بر چه اساس داده شدند . قابل تغییر هستند؟

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *