در مواردی که بکارگیری ابزارهای مدیریت Big Data با اهداف یادگیری، تست، آموزش و توسعه در یک چارچوپ پردازش خوشه ای مثل Hadoop یا Spark مدنظر باشد، معمولا" دو روش برای راه اندازی کلاستر آزمایشی پیشنهاد میشود : روش اول ، استفاده از بسته های آماده کلاستر مجازی که توسط شرکت هایی مثل کلودرا و هورتون ورکز ارائه شده .این روش علیرغم مزایایی همچون راه اندازی سرویسهای گوناگون وعدم نیاز به پیکربندی از طرف کاربر، دارای محدودیتهای زیادی هم هست. از جمله اینکه تقریبا" همه’ این شرکتها دسترسی کاربران ایرانی به محصولاتشان را تحریم کرده اند، چندین گیگا بایت حجم دارند و برای راه اندازی نیاز به کامپیوتری با حافظه رم نسبتا" بالا دارند.(حداقل 8 –توصیه شده 16 گیگا بایت) دارند. روش دوم که ما در این آموزش از آن استفاده کرده ایم راه اندازی دستی (Manual) کلاستر روی یک ماشین واحد ، و با معماری شبه توزیعی است. در این روش، تمام مراحل پیکربندی را خودمان انجام میدهیم و خصوصیات و اجزای کلاستری که ایجاد میکنیم را با توجه به موضوع در دست پژوهش و امکانات سخت افزاری که در اختیار داریم میتوانیم تعیین کنیم. محصول حاضر،با توجه به نوپا بودن مفاهیم Big data و کمبود منابع کاربردی و محدودیت هایی که در پژوهشهای حوزه Big Data برای دانش پژوهان، خصوصا " در دسترسی و بکارگیری ابزارها وجود دارد، تهیه گردیده و اهداف اصلی زیر را دنبال میکند:
الف) علاقمندان به فعالیت در زمینه Big Data ، شخصا" مهارت ایجادکلاستری را که برای اهداف تجقیقاتی نیاز دارند، بصورت اصولی در کوتاه ترین زمان ممکن فرا گیرند.
ب) ارائه ماشین مجازی آماده کلاستر شبه نوزیع شده Hadoop+Apache Spark برای کاهش محدودیتها در دسترسی به ابزارهای حوزه Big Data
الف) رویکردی که در این آموزش به آن توجه خاص شده، این است که هر فرد علاقمند به کار با ابزارهای Big Data ، بتواند با در دسترس ترین امکانات سخت افزاری و نرم افزاری مثل یک لپ تاپ یا PC معمولی ویندوز ، با صرف حداقل هزینه و در کوتاه ترین زمان ممکن ، مهارت ایجاد و کار با کلاستری را که برای اهداف تست و یادگیری نیاز دارد را شخصا" فرا گیرد. در یک دوره تحقیقی چند ماهه ،برای رسیدن به راهکاری کارامد، قابل اطمینان ، مطابقت بالا با محیط واقعی و در عین ساده انواع روشها ، بسترها و نرم افزارهای مختلف مجازیسازی مثل Virtualbox ، Hyper-V ، Docker ، Vmware و انواع توزیعهای دسکتاپ و سرور لینوکس بر پایه Ubuntu، RHEL، Debian، Pacman و RPM و توزیعهای مختلف هدوپ و اسپارک ، را برای انتخاب مناسبترین گزینه بررسی و تست کردیم.بنابراین بکارکارگیری هر کدام از ابزارها ، نرم افزارها، و نسخه های بکارگرفته شده در این آموزش بر دلایل منطقی و تجربی قابل دفاعی استوار است،که پرداختن به آنها خارج از حوصله’ این مقاله میباشد. روش کلی کار در این آموزش این است که با نرم افزار مجازیسازی Vmware workstation در محیط ویندوز یک سرور مجازی لینوکس CentOs minimal ایجاد میکنیم، و کلاستر مجازی هدوپ را با معماری شبه توزیعی(Pseudo Distributed Mode) در بستر این سرور مجازی بصورت قدم بقدم راه اندازی میکنیم.در گام بعدی، به پیکربندی چارچوب پردازشی Apache Spark روی این کلاستر میپردازیم. بعد از راه اندازی کلاستر هدوپ/اسپارک با استفاده از چندین مثال و سناریوی عملی نحوه کار و مدیریت کلاستر پردازشی هدوپ/اسپارک ، از محیط ویندوز را با تمام جزئیات بهمراه بیش از 100 تصویر از تک تک مراحل کار پیش میبریم. همانطور که میدانید چارچوب Hadoop از دولایه’ اصلی فایل سیستم توزیع شده Hdfs و مدیر خوشه Yarn تشکیل شده و پارادایم پردازشی آن بر مبنای مدل Map-reduce پایه میباشد. مدل پایه’ Map-reduce ضمن اینکه مدتها بعنوان مدل اصلی در پلتفرم های Big Data مورد استفاده قرار گرفته، لیکن بدلیل هزینه’ زمانی و کندی در پردازش job های تکراری ،خصوصا" در پردازشهای نزدیک به زمان واقعی (real-time) همواره مورد انتقاده بوده. بطوریکه ظهور مدل پردازش بسته ای مقیم در حافظه اصلی (in-memory Batch processing) و توسعه’ موتورهای پردازشی سریعتر مثل Apache Spark ، اخیرا" توسعه دهندگان هدوپ را ناچار کرد که بفکر حذف لایه پردازش و مدیریت کلاستر Yarn از لایه’ فایل سیستم HDFS در نسخه جدید هدوپ بیفتند و بدین ترتیب عملا" مدل Map-reduce پایه بعنوان مدل پردازشی پیش کسوت چارچوبهای پردازشی Big Data با سابقه ای درخشان بازنشسته شد. انگیزه’ اصلی از شکل گیری چارچوب پردازشی Apache Spark بعنوان یکی از زیر پروژه های هدوپ جبران نقایص مدل پایه نگاشت-کاهش است. هسته اسپارک صرفا" یک موتور پردازشی است و فاقد هرگونه امکان ذخیره سازی است. ولی اسپارک این کمبود را با انعطاف پذیری بالایی که در یکپارچه شدن و تغذیه از سایر فایل سیستمها و پایگاههای داده های رابطه ای و NOsql خارجی، بنحو موثری جبران میکند. یکی از مزایای معماری تلفیقی استفاده شده در این آموزش این است که درحین کار با سناریوها و مثالها، سرعت پردازش مدل پایه Map-reduce ،را در مقایسه با زمانیکه موتور پردازشی اسپارک در تعامل با لایه hdfs هدوپ کار میکند ، عملا" لمس خواهیم کرد.
ب) بدلایل زیادی ، برای اکثر ما کاربران ایرانی ، یک سیستم کامپیوتری مفهومی معادل یک PC با سیستم عامل ویندوز را در ذهن تداعی میکند.هر چند سعی شده هیچ نکته ای در آموزش از قلم نیفتد، اما چون ممکن است در آغاز، کار با دستورات محیط لینوکس برای پیکر بندی یک کلاستر پردازشی، با آزمون وخطا همراه بوده یا زمانبر باشد، لذا برای دسترسی همگانی بهمراه این آموزش، اقدام به ارائه ماشین مجازی آماده نیمه توزیعی هدوپ/ اسپارک ، با پیکربندی کامل نموده ایم و فایل فشرده آنرا در کتابخانه دیجیتالی شخصی آپلود و لینک دانلود آنرا (باحجم 1 گیگابایت) درمتن مقاله به اشتراک گذاشته ایم . نرم افزارهای مورد نیاز را قبلا" دانلود و نصب کرده ایم. این ماشین مجازی احتیاج به هیچگونه تنظیمات و پیکربندی نداشته، در یک PC ویندوز 64 بیتی با امکانات معمولی و با نصب نرم افزار مجازیسازی Vmware ، و یک نرم افزار شبیه ساز ترمینال لینوکس مثل Cygwin یا رابط putty آماده استفاده میباشد.ضمنا" دیتا ستهای بکار گرفته شده در این آموزش برای استفاده در فایل سیستم ماشین مجازی آماده موجود است.شما میتواید هر زمان که نیاز داشتید ، بدون نگرانی از ایجاد تغییر در نسخه اصلی ، یک نمونه از ماشین مجازی را اکسترکت کرده، و با آن کار کنید .
لطفا" برای مشاهده ویدئوی راه اندازی ماشین مجازی آماده کلاستر شبه توزیعی spark/ hdp اینجـــــا کلیک فرمایید.
فهرست مطالب:
مقدمه
فصل اول: نصب SSH و Cygwin
ایجاد ماشین مجازی لینوکس CentOs 6.5 minimal با VMware workstation در ویندوز
تنظیم ویژگیهای ماشین مجازی
استخراج مشخصات اینترفیسهای ماشین مجازی
برقراری اتصال ssh از محیط ویندوز به ماشین لینوکس با ترمینال شبیه ساز Cygwin
ویرایشگر متنی vi در لینوکس CentOS
تعیین آدرس Gatway شبکه در ماشین مجازی CentOS
تعیین HOSTNAME با قالب FQDN برای VM
اختصاص نام مستعار برای IP آدرس CentOS VM در ویندوز
تنظیمات دسترسی به اینترنت در ماشین مجازی Centos
دانلود و نصب نرم افزارهای پیشنیاز از اینترنت در CentOS VM
پیکربندی جاوا jdk-8
پیکربندی اینترفیس Ethernet ماشین مجازی CentOS
تست اتصال ssh ماشین محلی ویندوز و ماشین مجازی لینوکس
تاثیرات فایروال و فیلترینگ جداول IP در اتصالات شبکه
غیر فعال کردن فیلترینگ جداول IP در ماشین مجازی لینوکس
تست فایروال و فیلترینگ جداول IP
تنظیم passwordless login بین ماشین محلی ویندوز و CentOS VM
تنظیم passwordless login داخلی ماشین مجازی CentOS
انتقال فایل از ماشین محلی ویندوز به CentOS VM
بررسی حالتهای راه اندازی کلاستر Hadoop
معماری کلاستر Hadoop در حالت Pseudo Distributed Mode (شبه توزیع شده)
نحوه دانلود بسته باینریهای Hadoop در ویندوز و انتقال آن به VM
نحوه دانلود بسته باینری Hadoop بطور مستقیم از محیط VM با ابزار wget
تنظیم متغیر محلی جاوا و hadoop در فایل profile ماشین مجازی
ویرایش فایلهای پیکربنده بندی hadoop برای حالت Pseudo Distributed Mode
راه اندازی demon های dfs و yarn
دسترسی به رابط تحت وب hdfs از مرورگر وب در ویندوز
دسترسی به Yarn web UI
کار با دستورات اصلی مدیریت hdfs در کلاستر hadoop
ایجاد دایرکتوری کاربر در فایل سیستم hdfs
مانیتورینگ و اشکال یابی فرایندها در کلاستر hadoop با Log فایلها
تست عملکرد کلاستر شبه توزیعی هدوپ با مثال Wordcount Map-reduce
نحوه اجرای مثال Wordcount Map-reduce
دسترسی به فایل خروجی برنامه wordcount از طریق hdfs web UI
خواندن فایل خروجی برنامه از hdfs در ترمینال
توقف کلاستر هدوپ
راه اندازی چارچوب Apache Spark در کلاستر شبه توزیعی hadoop در حالت Local
مفاهیم پایه ای در چارچوب پردازشی آپاچی اسپارک
مزایای موتور پردازشی آپاچی اسپارک نسبت به محیطهای پردازشی مشابه
پوسته اسپارک (Spark-Shell)
ساختار داده ای دیتاستهای توزیعی- منعطف (RDD) در اسپارک
مثال عملی spark- برنامه word Count در محیط پردازشی Apache Spark
ارسال دیتاست نمونه از ویندوز به VM
ایجاد دایرکتوری برای ذخیره دیتاست نمونه در hdfs
ارسال دیتاست از فایل سیستم VM به hdfs
ایجاد RDD با خواندن فایل ورودی از hdfs با Spark-Scala API
اعمال transformation برای شناسایی کلمات در متن
اعمال transformation برای تعیین جفتهای کلید- مقدار
اعمال transformation برای کاهش کلیدهای مشابه
تثبیت RDD خروجی در حافظه اصلی
چاپ خروجی برنامه Wordcount Spark در ترمینال
مثال عملی spark : برنامه تطابق الگو در اسناد متنی (Pattern matching) با Scala
استخراج تعداد بازدید کنندگان از وبسایت بر اساس زمان بازدید با Log file
مثال عملی spark- نمونه برنامه متن کاوی با Scala
مهاجرت دایرکتوری hadoop به خارج از دایرکتوری کاربر root
pyspark (رابط برنامه نویسی با زبان pyton در محیط آپاچه اسپارک)
مثال عملی spark : ایجاد برنامه wordcount با pyspark به زبان python
دانلود و کار با بسته’ ماشین مجازی آماده نیمه توزیعی hdp/spark
مثال عملی Spark Wordcount با بسته’ ماشین مجازی آماده نیمه توزیعی hdp/spark
لینک دانلود بسته’ ماشین مجازی آماده نیمه توزیعی hdp/spark
قالب: داکیومنت Word صفحات : 92
ایجاد و مدیریت کلاستر شبه توزیعی Hadoop + Apache Spark روی سرور مجازی CentOS در ویندوز+ دانلود ماشین مجازی آماده استفاده