آموزش آپاچی هدوپ Apache Hadoop

آپاچی هدوپ چیست؟

هدوپ و داده‌های بزرگ

نام تجاری آپاچی هدوپ در پی نیاز به پردازش حجم عظیم داده‌های بزرگ متولد شد. دنیای وب، روزانه در حال تولید اطلاعات بیشتر و بیشتر بود به صورتی که شاخص گذاری بر روی بیش از یک میلیون صفحه محتوا، کار بسیار دشواری بود. برای مقابله، گوگل یک سبک جدید از پردازش داده‌ها که با نام MapReduce شناخته می‌شود را اختراع کرد. یک سال بعد، گوگل اوراق سفیدی[1] در توصیف فریم ورک MapReduce منتشر کرد. داگ کاتینگ و مایک کفرلا[2]، با الهام از این اوراق، هدوپ را برای اعمال این مفاهیم بر روی یک نرم افزار فریم ورک متن باز برای حمایت از توزیع در پروژه موتور جستجوی Nutch خلق کردند. با داشتن ریشه اصلی، هدوپ با یک زیرساخت ذخیره سازی یکبار نوشتنی[3] ساده، طراحی شد.

هدوپ در نمایه سازی وب، بسیار فراتر از آغاز خود حرکت کرده و هم اکنون در بسیاری از صنایع و برای طیف گسترده ای از فعالیت‌هایی که یک قالب مشترک از داده‌هایی با تنوع، حجم و سرعت‌های گوناگون را به اشتراک می‌گذارند، به کار می‌رود- چه داده‌های ساخت یافته و چه داده‌های غیر ساخت یافته. این برنامه در حال حاضر در بسیاری از صنعت‌ها از قبیل صنعت‌های اقتصادی، رسانه و سرگرمی، دولتی، بهداشت و درمان، خدمات اطلاعات، خرده فروشی و دیگر صنعت‌هایی که با داده‌های بزرگ سر و کار دارند مورد استفاده قرار می‌گیرد اما هنوز هم محدودیت‌های زیرساخت‌های زخیره سازی اصلی، پابرجا هستند. هدوپ به طرز رو به افزایشی در حال تبدیل شدن به یک فریم ورک go to [4] برای اطلاعات فشرده در مقیاس بزرگ، می‌باشد. هدوپ برای پردازش حجم عظیم داده‌ها، از ترابایت گرفته تا پتابایت و فراتر از آن ساخته شده است. در این حجم داده، بعید است که بتوان آن را در تنها یک‌هارد کامپیوتر جای داد، و به همین ترتیب احتمال بسیار کمتری وجود دارد که بتوان آن را بر روی حافظه قرار داد.[5] زیبایی هدوپ در این است که این برنامه، طراحی شده تا بتواند حجم عظیمی‌از داده‌ها را با استفاده از اتصال چندین کامپیوتر ساده در کنار هم به صورت موازی، به صورت موثر پردازش کند. هدوپ با استفاده از مدل MapReduce، می‌تواند یک جستجو در یک مجموعه داده را گرفته، آن را تفکیک کرده و به صورت موازی بر روی گره‌های متعدد اجرا کند. توزیع محاسبه، مشکل داشتن داده‌هایی که بسیار بزرگ تر از آن هستند که بر روی تنها یک ماشین جای گیرند را حل می‌کند.

نرم افزار هدوپ

پشته نرم افزار هدوپ، یک اقتصاد کاملا جدید را برای ذخیره سازی و پردازش داده‌ها در مقیاس[6]، معرفی می‌کند. این برنامه به سازمان‌ها اجازه می‌دهد تا انعطاف پذیری بی نظیری در توانایی خود برای استفاده حداکثری از تمامی‌اشکال و اندازه‌ها، برای کشف بینش و دیدگاه در مورد کسب و کار خود، داشته باشند. کاربران حالا می‌توانند از کل سخت افزار و پشته نرم افزار، شامل سیستم عامل و نرم افزار هدوپ، در کل خوشه[7] بهره گرفته، و آن را از طریق یک واسط مدیریتی، کنترل کنند. آپاچی هدوپ یک فایل سیستمی‌توزیع شده را نیز شامل می‌شود که داده‌های ورودی را تفکیک کرده و بر روی گره‌های محاسباتی ذخیره می‌کند. این کار به داده‌ها اجازه می‌دهد تا به صورت موازی و با استفاده از تمامی‌دستگاه‌های درون آن خوشه مورد پردازش قرار گیرند.

فایل سیستمی‌توزیع شده هدوپ [8] به زبان جاوا نوشته شده و بر روی سیستم عامل‌های گوناگونی اجرا می‌شود. هدوپ از ابتدا برای همساز کردن پیاده سازی‌های چندگانه فایل‌های سیستمی‌طراحی شد که در این جا برخی از آنان موجود هستند. فایل‌های سیستمی‌HDFS و S3 احتمالا از پر استفاده ترین این فایل‌ها بوده، اما بسیاری دیگر از قبیل فایل‌های سیستمی‌MapReduce نیز وجود دارند.

در حالی که گوگل MapReduce را اختراع کرده و نسخه داخلی آن را در اختیار دارد، هدوپ نیز باقی مانده دنیای فریم ورک MapReduce را تشکیل می‌دهد. پس این همان برنامه ای خواهد بود که ما از آن استفاده خواهیم کرد. بیشتر دوره‌های هدوپ با جاوا آغاز می‌شوند، اما متاسفانه 90 درصد کد را فایل‌های بیهوده ای تشکیل می‌دهند که ما را از مسیر اصلی دور می‌کنند. چیزی که قصد دارم در این کتاب به تقویت آن بپردازم، پایه‌های اصلی هستند، پس ما تنها زمانی به صمت جاوا می‌رویم که واقعا ضروری باشد.

هدوپ چیست؟

بسیاری از مردم، هدوپ را به عنوان مترادفی برای MapReduce می‌پندارند. این کار نوعی استفاده در هم ریخته از تکنولوژی است. هدوپ در واقع یک اکوسیستم کامل از فن آوری‌هایی است که فریم ورک MapReduce را به کار می‌گیرند. برای مثال، فایل سیستمی‌هدوپ(HDFS) یک فایل سیستمی‌است که از تکرار سازی و شاردینگ[9] برای کمینه کردن احتمال شکست استفاده می‌کند.

در هنگام کار با داده‌های بزرگ، از آنجایی که ماشین‌های بسیاری درگیر هستند، احتمال شکست بالاست. این مساله به پارادوکسی به نام “مشکل تولد” مربوط می‌شود ( این مساله واقعا یک پارادوکس نیست، بلکه مستقیما از ریاضیات پیروی می‌کند). یکی از نتایج “مشکل تولد”، این است که اگر شما 23 قفرد را در یک اتاق داشته باشید، احتمال این که روز تولد 2 نفر از آن‌ها مشترک باشد، 50 درصد است. حال اگر این تعداد به 57 نفر برسد، این احتمال، 99 درصد می‌شود!.

این مساله بر خلاف این واقعیت است که احتمال این که روز تولد دو نفر مشترک باشد،  است.

لینک دانلود

[1]  a white paper- به اسنادی گفته می‌شود که یک شرکت ارتقا یا نشان دادن وِژگی‌های یک محصول یا راه حی منتشر می‌کند.

[2] Doug Cutting and Mike Cafarella

[3] a simple write-once storage infrastructure

[4] دستوری در بسیاری از زبان‌های برنامه نویسی برای کنترل یک خط دستور دیگر

[5] هرچند در متن اصلی مشخص نکرده چه حافظه ای، اما با توجه به استفاده از واژه MEMORY، احتمالا منظور همان حافظه اصلی یا رم می‌باشد.

[6] در متن فقط از واژه  at scale لستفاده شده است.

[7] Cluster- رایانش خوشه ای

[8] The Apache Hadoop Distributed File System

[9] نوعی پارتیشن بندی پایگاه داده که فایل‌های بسیار بزرگ را به فایل‌های کوچکتر، سریع تر و  قابلیت مدیریت ساده تر تقسیم می‌کند.

پیام بگذارید

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

nine + one =