کلان‌داده به زبان ساده

نصب و راه‌اندازی هدوپ – بخش دوم

در ادامه مطلب سری پیش که به نصب و پیکربندی اوبونتو سرور ۲۰۱۸ بر روی یک ماشین مجازی (به کمک VirtualBox ) پرداختیم، در این بخش به نصب هدوپ و بالاآوردن سرویس‌های پایه آن خواهیم پرداخت. اگر اوبونتو را قبلاً نصب کرده‌اید آنرا اجرا کنید، WinSCP‌ را طبق راهنمایی مقاله قبل،‌ باز کنید تا به راحتی بتوانیم عملیات جابجایی فایلها بین ویندوز و سرور هدوپ را انجام دهیم. با زدن دکمه Ctrl+P درون WinSCP، نرم افزار Putty‌ را هم باز کنید که هر جا لازم به وارد کردن دستورات خط فرمان بود از آن استفاده کنیم. جهت یادآوری، نام کاربری اوبونتو برای نصب هدوپ را hduser‌ گذاشته‌ایم.

نصب هدوپ از طریق نسخه اصلی سایت آپاچی

در ادامه‌ی فصل، روش‌های مختلف نصب هدوپ بر روی یک سیستم را خواهیم آموخت. اگر می‌خواهید بدون دردسر، نسخه اصلی هدوپ و مولفه†های اصلی آن یعنی HDFS ، MapReduce و Yarn را مستقیماً نصب و تنظیمات آنها را خودتان انجام دهید، از روش موجود در این بخش استفاده کنید که پیچیدگی خاصی نداشته و به راحتی قابل انجام است.

وارد سایت رسمی هدوپ شده، با کلیک بر روی دکمه دانلود، وارد بخش دانلود شوید. آخرین نسخه هدوپ که در حال حاضر ۳٫۲ است را انتخاب کرده، گزینه binary را بزنید تا وارد صفحه اصلی دانلود این نسخه شود و از صفحه باز شده، یکی از آدرس­های دانلود آنرا انتخاب کنید.

این نسخه حدود ۳۳۰ مگابایتی را دانلود نموده و آنرا با نرم افزار WinSCP به پوشه مخصوص کاربر (/home/hduser) که مجوزهای ایجاد و ویرایش فایل‌ها را در آن دارد، منتقل کنید. می‌توانید در خط فرمان لینوکس و درون پوشه کاربر، با دستور wget و دادن آدرس این فایل زیپ، آنرا مستقیماً دانلود نمایید.

Shell

حال در خط فرمان لینوکس، با رفتن به پوشه‌ای که فایل زیپ هدوپ را در آنجا کپی یا دانلود نموده‌اید، با دستور زیر آن را ازحالت فشرده خارج کنید:

Shell

با این کار، محتوای فایل زیپ هدوپ درون پوشه hadoop-3.2.0 قرار می‌گیرد. این کار را در WinSCP‌ با کلیک راست بر روی فایل فوق و استفاده از File Custom Commands -> UnTar/GZip هم می‌توانید انجام دهید. این پوشه را مشابه سایر نرم‌افزارهای اصلی لینوکس به پوشه /usr/local با نام hadoop منتقل می‌کنیم و مجوزهای لازم برای اجرای آن را تنظیم می‌کنیم.

Shell

دستور اول، یک پوشه با نام hadoop را در مسیر /usr/local ایجاد کرده و دستور دوم، محتویات پوشه‌ی hadoop-3.2.0 را به درون پوشه‌ی مقصد منتقل می‌کند ( mv مخفف move است). دستور سوم، سب می‌شود تا مالکیت پوشه‌ی hadoop و تمامی محتویات آن اعم از فایل و زیرپوشه‌ها، به کاربر جاری یعنی hduser اختصاص یابد. دستور آخر نیز خود پوشه‌ی مبدأ یعنی hadoop-3.2.0 را که اکنون خالی است، پاک‌سازی می‌نماید ( rm مخفف remove است). فایل زیپ را برای احتیاط، فعلاً نگه می‌داریم.

 

در دستورات فوق، هر جا که نیاز به مجوز کاربر اَدمین داشته‌ایم، از sudo‌ استفاده کرده‌ایم و هر جا که خود کاربر جاری مجاز به انجام دستور بوده است مانند حذف یک پوشه درون فضای کاری خود کاربر، آنرا به کار نبرده‌ایم.

تنظیمات اولیه هدوپ و اجرای آن

فایل اجرایی اصلی هدوپ که دستورات خط فرمان آن‌را برای ما اجرا می‌کند، فایلی است با نام hadoop درون پوشه bin . قبل از هر کاری، این فایل را اجرا می‌کنیم تا مطمئن شویم تا اینجا همه چیز به خوبی پیش رفته است.

Shell

اگر در خط اول خروجی، پیام

Shell

را مشاهده کردید، تبریک می‌گوییم، تا اینجای کار را درست انجام داده‌اید و هدوپ شما آماده پیکربندی و تنظیمات اولیه است.

تنظیمات اولیه هدوپ

برای اجرای هدوپ در ابتدا باید متغیرهای محیطی مورد نیاز کل سیستم را مقداردهی کنیم. ابتدا فایل hadoop-env.sh را به صورت زیر با nano باز کرده، مقدار متغیر $JAVA_HOME آنرا مشابه مقاله قبل، تنظیم و مقدار دهی کنید (این کار با WinScp‌ راحت‌تر انجام می‌شود):

Shell
 توضیح   : دنبال خط

Plain Text

بگردید. علامت # را از ابتدای خط بردارید تا از حالت توضیح خارج شود و بعد آنرا مقداردهی کنید. با دکمه ترکیبی Ctrl+O‌ تغییرات را ذخیره کرده و با Ctrl+X از ویرایشگر نانو خارج شوید.

Shell

برای تنظیم‌کردن  متغیرهای محیطی هدوپ   به گونه‌­ای که در همه جای سیستم بتوان به راحتی آن را اجرا نمود، تنظیمات را در انتهای فایل  /etc/profile با اجرای nano‌ به صورت زیر وارد کنید.

Shell

از فایل ~/.profile هم می‌توانید برای مقدار دادن به تنظیمات محیطی لینوکس برای کاربر جاری استفاده کنید.

دستورات زیر را در بخش انتهایی از فایل باز شده وارد کنید:

Shell

همان‌طور که مشاهده می‌کنید، در تنظیمات بالا، هر جا که نیاز به تنظیم کاربر مربوطه بوده است، از کاربر فعلی یعنی hduser استفاده کرده‌ایم. در ضمن، حواستان به دوگیومه ابتدا و انتهای متغیر   HADOOP_OPTS باشد که بهتر است خودتان آن‌ها را تایپ نمائید و کپی پیست نشود. یادتان نرود که بعد از ذخیره این مقادیر، آنها را با دستور زیر در سیستم اعمال کنید:

Shell

ساخت پوشه های مورد نیاز در هدوپ

یک پوشه برای ذخیره موقت داده­های هدوپ و دو پوشه هم برای داده‌های سرویس‌نام(Name Node) و سرویس‌داده(Data Node) آن، باید ایجاد کنیم. می توانید از آدرس‌های زیر استفاده کنید:

Shell

فایلهای پیکربندی هدوپ

بعد از این مرحله باید فایلهای مختلف پیکربندی هدوپ را ویرایش کرده، تنظیماتی را به آنها اضافه کنیم. با توجه به اینکه مالک اصلی پوشه نصبی هدوپ را کاربر hduser‌ تنظیم کرده‌ایم، تمام ویرایش‌های زیر را به راحتی درون WinScp هم می‌توانید انجام دهید. کافی است به پوشه /usr/local/hadoop/etc/hadoop بروید و روی هر فایل ذکر شده در زیر، دو بار کلیک کنید تا آماده ویرایش شود.

 ابتدا از فایل etc/hadoop/core-site.xml در مسیر نصب نرم‌افزار هدوپ شروع می کنیم. به جای آدرس دقیق پوشه هدوپ، از متغیر محیطی $HADOOP_HOME که در بالا آنرا تنظیم کرده ایم، استفاده می­کنیم که اگر برخی کاربران پوشه دیگری را برای نصب هدوپ استفاده کرده باشند، بتوانند دستور زیر را بدون تغییر ، کپی کرده و استفاده کنند :

Shell

و مقادیر زیر را به انتهای آن اضافه می‌کنیم (دقت کنید که تگ < configuration >  از قبل در فایل core-site.xml موجود است و تنها بخش داخلی متن زیر را به آن اضافه کنید).

XML

دقت کنید که در کد فوق، دو ویژگی هدوپ را تنظیم کرده‌ایم. اولی آدرس وب پیش‌فرض دسترسی به فایل‌سیستم هدوپ و دومی، آدرس پوشه‌ی موقت هدوپ است.

مرحله بعد، نوبت فایل etc/hadoop/hdfs-site.xml در مسیر نصب هدوپ است. مشابه فوق، این فایل را هم با دستور زیر، درون ویرایشگر باز می‌کنیم (البته با WinScp ‌ این کار سریع‌تر و راحت‌تر انجام می‌شود):

Shell

و مقادیر زیر را مطابق فوق به آن اضافه می‌کنیم :

XML

اگر به مقادیر فوق دقت کنید، می­بینید که ضریب تکرار بلاک‌های یک فایل را عدد یک (۱) تعیین کرده‌ایم که برای نصب محلی هدوپ همین مقدار کافی‌ است. هم‌چنین، آدرس محل ذخیره‌ی داده‌های سرویس نام و سرویس داده‌ی هدوپ را هم مشخص کرده‌ایم (همان پوشه‌هایی که چند مرحله قبل آنها را ساخته‌ایم).

اگر بخواهیم با Yarn برنامه­های توزیع و تجمیع ( map/reduce ) خود را اجرا کنیم به تنظیمات زیر هم نیاز داریم. درون فایل $HADOOP_HOME/etc/hadoop/mapred-site.xml مقادیر زیر را وارد می کنیم:

XML

به عنوان آخرین تنظیمات، درون فایل yarn-site.xmlمقادیر زیر را وارد کنید :

XML

با این تنظیمات، آماده شروع کار با هدوپ هستیم. به تدریج که با هدوپ کار کنید، با تنظیمات فوق و ضرورت هر یک، آشنا خواهید شد اما قبل از آن با دستور زیر باید HDFS یا همان فضای ذخیره‌سازی هدوپ را فرمت کنیم تا آماده به کار شود (اگر از شما سوالی برای فرمت کردن پوشه داده‌ها پرسید با Y ‌ جواب بدهید):

Shell

اجرای سرویس­ها و آزمایش نهایی

بعد از انجام تمام تنظیمات فوق ، نوبت استارت دو سرویس HDFS و YARN است. با دو دستور زیر این کار را انجام می دهیم:

Shell

توضیح اینکه این دو فایل در پوشه $HADOOP_HOME/sbin قرار گرفته‌اند و چون این آدرس را در فایل /etc/profile درون متغیر محیطی PATH ریخته‌ایم، لینوکس به راحتی آن را پیدا کرده و نیاز به ذکر آدرس دقیق آن نیست.

نکته: می‌توانید از دستور start-all.sh ‌ برای راه‌اندازی تمامی سرویس‌های هدوپ و stop-all.sh هم برای متوقف‌کردن آنها استفاده کنید.

حال کافیست تا درون مرورگر در سیستم عامل میزبان یعنی ویندوز برویم و این دو آدرس را وارد کنیم که اگر نام سرور هدوپ را در تنظیمات هاست ویندوز انجام نداده‌اید، از آدرس آی پی سرور هدوپ به جای نام هاست استفاده کنید:

Plain Text

که اولی برای نمایش اطلاعات کامل کلاستر شامل تعداد نودها، کارهای در حال انجام و فایل‌های لاگ استفاده می‌شود و دومی برای کار با HDFS و ذخیره و نمایش فایل‌های ذخیره‌شده در آن از طریق وب کاربرد دارد. پورت‌های ذکر‌شده، پورت‌های پیش‌فرض هدوپ ۳ هستند که می‌توانید در فایل‌های تنظیمات هدوپ، آن‌ها را تغییر دهید.

با استفاده از دستور jps هم می­توانید سرویس­های جاوای در حال اجرا را مشاهده کنید:

Plain Text

با دستور زیر هم می‌توانید پورت‌هایی که برنامه‌های جاوا اشغال کرده‌اند را ببینید:

Shell

که در خروجی این دستور پورت ۹۸۷۰ و ۸۰۸۸ را هم باید حتماً مشاهده کنید. اگر همه چیز اکی باشد، روی پورت ۹۸۷۰ باید واسط وب پیش‌فرض HDFS‌ را مشاهده کنید :

همانطور که در شکل فوق مشاهده می کنید، اطلاعات کاملی را درباره HDFSمی توانید در آدرس ۹۸۷۰ بیابید. در منوی utilities این صفحه، با زدن browse the file system می توانیم فایلهای ذخیره شده در هدوپ را ببینیم، پوشه بسازیم، داده های موجود در آن را دانلود و یا فایل داده‌ای را آپلود کنیم. در ادامه سری آموزشی کلان‌داده به زبان ساده که به اجرای برنامه‌­های مبتنی بر روش توزیع و تجمیع[۱] بپردازیم، از این واسط وب، بسیار استفاده خواهیم کرد.

اگر با این واسط وب، قصد ساخت پوشه و یا آپلود فایلی را در HDFS‌ داشته باشید با خطای مجوز مواجه خواهید شد. برای رفع این مشکل این خصوصیت را به فایل core-site.xml اضافه نمایید (اختصاص نام کاربری hduser‌ به کاربر وب هدوپ):

XML

بعد از راه‌اندازی مجدد سرویس‌های هدوپ، مشکل مجوز برای واسط وب پیش‌فرض هدوپ هم رفع خواهد شد. در آموزش بعدی، به نحوه کار با HDFS و مدیریت فایلها در هدوپ خواهیم پرداخت. با ما همراه باشید.

حمایت از تولید محتوای تخصصی

نوشتن یک مقاله کاربردی گاهی چندین روز از ما زمان میگیرد. اگر مایل به تداوم این مقالات، افزایش کیفیت و سرعت تولید و نیز دلگرم کردن اعضای تیم کوچک ما هستید، ممنون میشویم با حمایتی هر چند اندک، فراغ بال بیشتری به ما برای پرداختن به مباحث کاربردی و عملی هدیه دهید.


[۱] Map/Reduce

امتیاز کاربران: ۴٫۷ ( ۱ رای)
برچسب ها
مشاهده بیشتر

مجتبی بنائی

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

۳ دیدگاه

پاسخی بگذارید

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

دکمه بازگشت به بالا
بستن
بستن