نصب و راهاندازی هدوپ – بخش دوم
در ادامه مطلب سری پیش که به نصب و پیکربندی اوبونتو سرور ۲۰۱۸
بر روی یک ماشین مجازی (به کمک VirtualBox
) پرداختیم، در این بخش به نصب هدوپ و بالاآوردن سرویسهای پایه آن خواهیم پرداخت. اگر اوبونتو را قبلاً نصب کردهاید آنرا اجرا کنید، WinSCP
را طبق راهنمایی مقاله قبل، باز کنید تا به راحتی بتوانیم عملیات جابجایی فایلها بین ویندوز و سرور هدوپ را انجام دهیم. با زدن دکمه Ctrl+P
درون WinSCP
، نرم افزار Putty
را هم باز کنید که هر جا لازم به وارد کردن دستورات خط فرمان بود از آن استفاده کنیم. جهت یادآوری، نام کاربری اوبونتو برای نصب هدوپ را hduser
گذاشتهایم.
نصب هدوپ از طریق نسخه اصلی سایت آپاچی
در ادامهی فصل، روشهای مختلف نصب هدوپ بر روی یک سیستم را خواهیم آموخت. اگر میخواهید بدون دردسر، نسخه اصلی هدوپ و مولفههای اصلی آن یعنی HDFS
، MapReduce
و Yarn
را مستقیماً نصب و تنظیمات آنها را خودتان انجام دهید، از روش موجود در این بخش استفاده کنید که پیچیدگی خاصی نداشته و به راحتی قابل انجام است.
وارد سایت رسمی هدوپ شده، با کلیک بر روی دکمه دانلود، وارد بخش دانلود شوید. آخرین نسخه هدوپ که در حال حاضر ۳٫۲ است را انتخاب کرده، گزینه binary
را بزنید تا وارد صفحه اصلی دانلود این نسخه شود و از صفحه باز شده، یکی از آدرسهای دانلود آنرا انتخاب کنید.
این نسخه حدود ۳۳۰ مگابایتی را دانلود نموده و آنرا با نرم افزار WinSCP
به پوشه مخصوص کاربر (/home/hduser
) که مجوزهای ایجاد و ویرایش فایلها را در آن دارد، منتقل کنید. میتوانید در خط فرمان لینوکس و درون پوشه کاربر، با دستور wget
و دادن آدرس این فایل زیپ، آنرا مستقیماً دانلود نمایید.
حال در خط فرمان لینوکس، با رفتن به پوشهای که فایل زیپ هدوپ را در آنجا کپی یا دانلود نمودهاید، با دستور زیر آن را ازحالت فشرده خارج کنید:
با این کار، محتوای فایل زیپ هدوپ درون پوشه hadoop-3.2.0
قرار میگیرد. این کار را در WinSCP
با کلیک راست بر روی فایل فوق و استفاده از File Custom Commands -> UnTar/GZip
هم میتوانید انجام دهید. این پوشه را مشابه سایر نرمافزارهای اصلی لینوکس به پوشه /usr/local
با نام hadoop
منتقل میکنیم و مجوزهای لازم برای اجرای آن را تنظیم میکنیم.
دستور اول، یک پوشه با نام hadoop
را در مسیر /usr/local
ایجاد کرده و دستور دوم، محتویات پوشهی hadoop-3.2.0
را به درون پوشهی مقصد منتقل میکند ( mv
مخفف move
است). دستور سوم، سب میشود تا مالکیت پوشهی hadoop
و تمامی محتویات آن اعم از فایل و زیرپوشهها، به کاربر جاری یعنی hduser
اختصاص یابد. دستور آخر نیز خود پوشهی مبدأ یعنی hadoop-3.2.0
را که اکنون خالی است، پاکسازی مینماید ( rm
مخفف remove
است). فایل زیپ را برای احتیاط، فعلاً نگه میداریم.
در دستورات فوق، هر جا که نیاز به مجوز کاربر اَدمین داشتهایم، از sudo استفاده کردهایم و هر جا که خود کاربر جاری مجاز به انجام دستور بوده است مانند حذف یک پوشه درون فضای کاری خود کاربر، آنرا به کار نبردهایم.
تنظیمات اولیه هدوپ و اجرای آن
فایل اجرایی اصلی هدوپ که دستورات خط فرمان آنرا برای ما اجرا میکند، فایلی است با نام hadoop
درون پوشه bin
. قبل از هر کاری، این فایل را اجرا میکنیم تا مطمئن شویم تا اینجا همه چیز به خوبی پیش رفته است.
اگر در خط اول خروجی، پیام
را مشاهده کردید، تبریک میگوییم، تا اینجای کار را درست انجام دادهاید و هدوپ شما آماده پیکربندی و تنظیمات اولیه است.
تنظیمات اولیه هدوپ
برای اجرای هدوپ در ابتدا باید متغیرهای محیطی مورد نیاز کل سیستم را مقداردهی کنیم. ابتدا فایل hadoop-env.sh
را به صورت زیر با nano
باز کرده، مقدار متغیر $JAVA_HOME
آنرا مشابه مقاله قبل، تنظیم و مقدار دهی کنید (این کار با WinScp
راحتتر انجام میشود):
بگردید. علامت # را از ابتدای خط بردارید تا از حالت توضیح خارج شود و بعد آنرا مقداردهی کنید. با دکمه ترکیبی Ctrl+O
تغییرات را ذخیره کرده و با Ctrl+X
از ویرایشگر نانو خارج شوید.
برای تنظیمکردن متغیرهای محیطی هدوپ به گونهای که در همه جای سیستم بتوان به راحتی آن را اجرا نمود، تنظیمات را در انتهای فایل /etc/profile
با اجرای nano
به صورت زیر وارد کنید.
از فایل ~/.profile
هم میتوانید برای مقدار دادن به تنظیمات محیطی لینوکس برای کاربر جاری استفاده کنید.
دستورات زیر را در بخش انتهایی از فایل باز شده وارد کنید:
همانطور که مشاهده میکنید، در تنظیمات بالا، هر جا که نیاز به تنظیم کاربر مربوطه بوده است، از کاربر فعلی یعنی hduser
استفاده کردهایم. در ضمن، حواستان به دوگیومه ابتدا و انتهای متغیر HADOOP_OPTS
باشد که بهتر است خودتان آنها را تایپ نمائید و کپی پیست نشود. یادتان نرود که بعد از ذخیره این مقادیر، آنها را با دستور زیر در سیستم اعمال کنید:
ساخت پوشه های مورد نیاز در هدوپ
یک پوشه برای ذخیره موقت دادههای هدوپ و دو پوشه هم برای دادههای سرویسنام(Name Node
) و سرویسداده(Data Node
) آن، باید ایجاد کنیم. می توانید از آدرسهای زیر استفاده کنید:
فایلهای پیکربندی هدوپ
بعد از این مرحله باید فایلهای مختلف پیکربندی هدوپ را ویرایش کرده، تنظیماتی را به آنها اضافه کنیم. با توجه به اینکه مالک اصلی پوشه نصبی هدوپ را کاربر hduser
تنظیم کردهایم، تمام ویرایشهای زیر را به راحتی درون WinScp
هم میتوانید انجام دهید. کافی است به پوشه /usr/local/hadoop/etc/hadoop
بروید و روی هر فایل ذکر شده در زیر، دو بار کلیک کنید تا آماده ویرایش شود.
ابتدا از فایل etc/hadoop/core-site.xml
در مسیر نصب نرمافزار هدوپ شروع می کنیم. به جای آدرس دقیق پوشه هدوپ، از متغیر محیطی $HADOOP_HOME
که در بالا آنرا تنظیم کرده ایم، استفاده میکنیم که اگر برخی کاربران پوشه دیگری را برای نصب هدوپ استفاده کرده باشند، بتوانند دستور زیر را بدون تغییر ، کپی کرده و استفاده کنند :
و مقادیر زیر را به انتهای آن اضافه میکنیم (دقت کنید که تگ < configuration
> از قبل در فایل core-site.xml
موجود است و تنها بخش داخلی متن زیر را به آن اضافه کنید).
دقت کنید که در کد فوق، دو ویژگی هدوپ را تنظیم کردهایم. اولی آدرس وب پیشفرض دسترسی به فایلسیستم هدوپ و دومی، آدرس پوشهی موقت هدوپ است.
مرحله بعد، نوبت فایل etc/hadoop/hdfs-site.xml
در مسیر نصب هدوپ است. مشابه فوق، این فایل را هم با دستور زیر، درون ویرایشگر باز میکنیم (البته با WinScp
این کار سریعتر و راحتتر انجام میشود):
و مقادیر زیر را مطابق فوق به آن اضافه میکنیم :
اگر به مقادیر فوق دقت کنید، میبینید که ضریب تکرار بلاکهای یک فایل را عدد یک (۱) تعیین کردهایم که برای نصب محلی هدوپ همین مقدار کافی است. همچنین، آدرس محل ذخیرهی دادههای سرویس نام و سرویس دادهی هدوپ را هم مشخص کردهایم (همان پوشههایی که چند مرحله قبل آنها را ساختهایم).
اگر بخواهیم با Yarn
برنامههای توزیع و تجمیع ( map/reduce
) خود را اجرا کنیم به تنظیمات زیر هم نیاز داریم. درون فایل $HADOOP_HOME/etc/hadoop/mapred-site.xml
مقادیر زیر را وارد می کنیم:
به عنوان آخرین تنظیمات، درون فایل yarn-site.xml
مقادیر زیر را وارد کنید :
با این تنظیمات، آماده شروع کار با هدوپ هستیم. به تدریج که با هدوپ کار کنید، با تنظیمات فوق و ضرورت هر یک، آشنا خواهید شد اما قبل از آن با دستور زیر باید HDFS
یا همان فضای ذخیرهسازی هدوپ را فرمت کنیم تا آماده به کار شود (اگر از شما سوالی برای فرمت کردن پوشه دادهها پرسید با Y
جواب بدهید):
اجرای سرویسها و آزمایش نهایی
بعد از انجام تمام تنظیمات فوق ، نوبت استارت دو سرویس HDFS
و YARN
است. با دو دستور زیر این کار را انجام می دهیم:
توضیح اینکه این دو فایل در پوشه $HADOOP_HOME/sbin
قرار گرفتهاند و چون این آدرس را در فایل /etc/profile
درون متغیر محیطی PATH
ریختهایم، لینوکس به راحتی آن را پیدا کرده و نیاز به ذکر آدرس دقیق آن نیست.
نکته: میتوانید از دستور start-all.sh
برای راهاندازی تمامی سرویسهای هدوپ و stop-all.sh
هم برای متوقفکردن آنها استفاده کنید.
حال کافیست تا درون مرورگر در سیستم عامل میزبان یعنی ویندوز برویم و این دو آدرس را وارد کنیم که اگر نام سرور هدوپ را در تنظیمات هاست ویندوز انجام ندادهاید، از آدرس آی پی سرور هدوپ به جای نام هاست استفاده کنید:
که اولی برای نمایش اطلاعات کامل کلاستر شامل تعداد نودها، کارهای در حال انجام و فایلهای لاگ استفاده میشود و دومی برای کار با HDFS
و ذخیره و نمایش فایلهای ذخیرهشده در آن از طریق وب کاربرد دارد. پورتهای ذکرشده، پورتهای پیشفرض هدوپ ۳ هستند که میتوانید در فایلهای تنظیمات هدوپ، آنها را تغییر دهید.
با استفاده از دستور jps
هم میتوانید سرویسهای جاوای در حال اجرا را مشاهده کنید:
با دستور زیر هم میتوانید پورتهایی که برنامههای جاوا اشغال کردهاند را ببینید:
که در خروجی این دستور پورت ۹۸۷۰
و ۸۰۸۸
را هم باید حتماً مشاهده کنید. اگر همه چیز اکی باشد، روی پورت ۹۸۷۰
باید واسط وب پیشفرض HDFS
را مشاهده کنید :
همانطور که در شکل فوق مشاهده می کنید، اطلاعات کاملی را درباره HDFS
می توانید در آدرس ۹۸۷۰
بیابید. در منوی utilities
این صفحه، با زدن browse the file system
می توانیم فایلهای ذخیره شده در هدوپ را ببینیم، پوشه بسازیم، داده های موجود در آن را دانلود و یا فایل دادهای را آپلود کنیم. در ادامه سری آموزشی کلانداده به زبان ساده که به اجرای برنامههای مبتنی بر روش توزیع و تجمیع[۱] بپردازیم، از این واسط وب، بسیار استفاده خواهیم کرد.
اگر با این واسط وب، قصد ساخت پوشه و یا آپلود فایلی را در HDFS
داشته باشید با خطای مجوز مواجه خواهید شد. برای رفع این مشکل این خصوصیت را به فایل core-site.xml
اضافه نمایید (اختصاص نام کاربری hduser
به کاربر وب هدوپ):
بعد از راهاندازی مجدد سرویسهای هدوپ، مشکل مجوز برای واسط وب پیشفرض هدوپ هم رفع خواهد شد. در آموزش بعدی، به نحوه کار با HDFS
و مدیریت فایلها در هدوپ خواهیم پرداخت. با ما همراه باشید.
[۱] Map/Reduce
سلام
ممنون از اموزش خوبتون
میخواستم بدونم قسمت بعد کی بارگزاری خواهد شد؟؟
متشکرم
ممنونم از نظر لطفتون. دارم بخش HDFS را آماده می کنم از زودتر از ده روز آینده نخواهد شد.
ممنون بابت آموزش
ممنون از آموزش خوبتون
میخواستم بپرسم ادامه مطالب را کی قرار خواهد گرفت ؟
باتشکر
سلام. مطالب زیادی در این حوزه آماده کرده ام اما متاسفانه وقت کافی برای به روز رسانی سایت ندارم. امیدوارم به تدریج ادامه این بخش از سایت یعنی قسمت کلان داده به زبان ساده تکمیل شود.
سلام. خیلی ممنون از آموزش خیلی خوبتون. میشه لطفا راهنمایی کنید که در ادامه mahout رو چطور نصب کنم؟
سلام،
از تمامی دوستان دعوت میکنم به وبلاگ من هم سری بزنند،
آموزش نصب هدوپ رو هم گذاشتم.
narmafzaria.blogfa.com