بخش چهارم: 

 ابزارهای عظیم داده- اکوسیستم هادوپ، پایگاه داده NoSQL و Spark

4-1 مقدمه

بررسی اجمالی از هادوپ و عظیم داده در فصل 1 آمده است. در بخش‌های این فصل زیر به برخی از ماژول‌های اکوسیستم هادوپ پرداخته خواهد شد.

4-1-1 اکوسیستم هادوپ

اکوسیستم هادوپ شامل موارد زیر است:

  1. 1HDFS (سیستم فایل توزیع شده هادوپ) که به سادگی فایل‌های داده را تا حد ممکن نزدیک به قالب اصلی ذخیره می‌کند.
  2. RDBMS یک سیستم مدیریت پایگاه داده هادوپ است و به خوبی با RDBMS مقایسه می شود. این از ذخیره سازی ساختار داده برای جداول بزرگ پشتیبانی می‌کند.
  3. Hive امکان تجزیه و تحلیل عظیم داده‌ها را با زبانی مشابه SQL فراهم می‌کند ، بنابراین پردازش داده‌ها از نوع SQL را در یک خوشه هادوپ امکان پذیر می‌کند.
  4. Pig یک زبان جریان داده برای درک آسان است، که در تحلیل داده‌های مبتنی بر هادوپ مفید است. اسکریپت‌های Pig توسط Pig Interpreter به طور خودکار به jobs  MapReduce  تبدیل می‌شوند، بنابراین پردازش داده‌های هادوپ از نوع SQL را امکان پذیر می‌کند.
  5. ZooKeeper یک سرویس هماهنگ کننده برای برنامه‌های کاربردی توزیع شده است.
  6. Oozie یک سیستم برنامه گردش کار برای مدیریت Jobs Apache Hadoop است.
  7. Mahout یک کتابخانه مقیاس پذیر برای یادگیری ماشین و داده کاوی است.
  8. Chukwa یک سیستم جمع آوری داده برای مدیریت سیستم‌های بزرگ توزیع شده است.
  9. از Sqoop برای انتقال داده‌های انبوه بین هادوپ و به عنوان سیستم‌های ساختاری مدیریت داده مانند پایگاه‌های داده رابطه‌ای استفاده می‌شود.
  10. ابزار مبتنی بر وب Ambari برای تهیه، مدیریت و نظارت بر خوشه‌های Apache Hadoop می‌باشد.

 

 4-1-2 دستورات HDFS [1]

سیستم فایل توزیع شده هادوپ یک سیستم فایل توزیع شده است که برای ذخیره و مدیریت حجم عظیمی از داده‌های موجود در سخت افزار commodity طراحی شده است که مقیاس پذیر، موثر و متحمل خطا است.

دستورات:

  1. شروع HDFS : $ start-all.sh
  2. بررسی گره ها: jps$
  3. لیست کردن پرونده ها در HDFS: $ hdfs dfs -ls / ، $ hdfs dfs -ls /dir2   
  4. ایجاد یک دایرکتوری: $ hdfs dfs -mkdir /testdir
  5. قرار دادن دستور : $ hdfs dfs -put sample1 /testdir/sample.txt
  6. دستور lSR: $ hdfs dfs -lsr /
  7. دستور :RM $ hdfs dfs -lsr /
  8. دستور Cat: $ hdfs dfs -cat /testdir/sample.txt
  9. کپی از Local: $ hdfs dfs -copyFromLocal /home/hduser/sample1 /mydirectory/sample2.txt
  10. دستور :DU $ hdfs dfs -du /
  11. فرمان شمردن: $ hdfs dfs -count /
  12. دستور متن $ hdfs dfs -text /testdir/sample.txt
  13. دستور mv: $ hdfs dfs -mv /mydirectory/sample1 /testdir/samp1.txt
  14. دستور rmr $ hdfs dfs -rmr /testdir
  15. copyToLocal: $ hdfs dfs -copyToLocal /mydirectory/sample2.txt /home/hduser/sample2.txt
  16. دستور cp: $ hdfs dfs -cp /mydirectory/sample2.txt /testdir
  17. دستور توقف $ stop-all.sh

  4-2 MapReduce

برنامه‌های MapReduce برای محاسبه حجم زیادی از داده‌ها به صورت موازی طراحی شده‌اند. این امر مستلزم تقسیم حجم کار در تعداد زیادی ماشین است. در MapReduce ، دو جز وجود دارد: یکی Mapper ، و دیگری Reducer.

یک تابع کاهش دهنده لیست بزرگی از مقادیر را به یک (یا چند) مقدار خروجی تبدیل می‌کند.

4-3 Pig

Pig یک سیستم جریان داده سطح بالا با منبع باز است. این یک زبان ساده به نام Pig Latin است که برای پرس‌و‌جو و دستکاری داده‌ها استفاده می‌شود. این اسکریپت لاتین Pig در jobs  MapReduce که در هادوپ اجرا می شوند، کامپایلد شده است.

4-4 Flume

عملکرد Flume بدین صورت است که داده‌های ثبت شده را که بزرگتر هستند، به محض ورود، دریافت، جمع آوری و جابجا می‌کند. این برنامه های کاربردی تجزیه و تحلیل آنلاین را توانمند می‌سازد. Flume مجموعه ای از پرونده‌های ورود به سیستم را بر روی هر دستگاه به صورت خوشه‌ای جمع آوری می کند و به صورت تجمع در HDFS انباشته می‌کند. سرعت نوشتن به مقصد بستگی دارد. HDFS مقصد است. Flume مکانیسم های ساده ای را برای مدیریت پرونده های خروجی و قالب های خروجی ارائه می دهد. Hadoop و Hive می توانند داده های جمع آوری شده توسط Flume را پردازش کنند. Flume برای حل چالش ها در انتقال ایمن مجموعه عظیمی از داده ها از یک گره (به عنوان مثال ، پرونده های ورود به سیستم در سرورهای وب شرکت) به ذخیره داده (به عنوان مثال ، HDFS ، Hive ، HBase و Cassandra  ) در نظر گرفته شده است.

4-5 Sqoop

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

4-6 Mahout ، پلت فرم یادگیری ماشین از Apache

کتابخانه‌ای از کد جاوا از الگوریتم‌های قابل یادگیری ماشین و داده‌کاوی مقیاس پذیر در چهار دسته است Mahout

  1. توصیه‌ها یا فیلتر کردن جمعی
  2. طبقه بندی، خوشه بندی طبقه بندی و
  3. مجموعه موارد مكرر استخراج و استخراج الگوی مكرر موازی

تمام الگوریتم ‌های موجود در کتابخانه Mahout  را می‌توان به صورت توزیع شده اجرا کرد و در MapReduce قابل اجرا می‌باشد.

4-7 GANGLIA ، ابزار نظارت

Ganglia یک سیستم مانیتورینگ برای سیستم های محاسباتی با کارایی بالا (HPC) مانند خوشه ها و شبکه ها است. Ganglia یک پروژه منبع باز دارای مجوز (BSD) است که از پروژه هزاره دانشگاه کالیفرنیا، برکلی بیرون می‌آید. این بر اساس یک طراحی سلسله مراتبی است که هدف آن فدراسیون خوشه ها است. از XML برای نمایش داده ، از XDR برای بهم پیوستن، انتقال داده قابل حمل و از ابزار RRD برای ذخیره‌سازی داده‌ها و مجازی سازی استفاده می‌کند.

4-8 Kafka ، بستر پردازش جریان

یک پلت فرم پخش جریانی توزیع شده است. از کافکا می توان برای انجام کارهای زیر استفاده کرد Apache Kafka

  1. جریان سوابق را به عنوان یک صف پیام یا یک سیستم پیام رسانی منتشر و مشترک شوید
  2. 2. برنامه های جریان بلادرنگ ایجاد کنید که داده های ورودی را تغییر داده یا نسبت به آنها واکنش نشان می دهند
  3. برنامه های پخش جریانی بلادرنگ ایجاد کند که بتواند داده ها را بین سیستم ها یا برنامه ها دریافت و پردازش کند.

4-9 Spark

Spark یک چارچوب محاسباتی خوشه ای منبع باز با محیط پردازش داده در حافظه است. در دانشگاه کالیفرنیا ، برکلی توسعه داده شد. بعداً ، به آپاچی اهدا شد. از آنجا که از عملیات درون حافظه ای استفاده می کند ، در مقایسه با سایر ابزارهای Big Data عملکرد خوبی دارد. Spark با Hadoop سازگار است.

4-10 پایگاه داده NoSQL

در سال 1998 ، اصطلاح "NoSQL" برای اولین بار (توسط کارلو استروزی) ابداع شد تا نشانگر سیستم های مدیریت پایگاه داده سبک، منبع باز و غیر رابطه ای باشد که رابط استاندارد SQL را در معرض دید کاربران قرار نمی داد. از سیستم های مدیریت پایگاه داده NoSQL در Big Data و سایر برنامه های زمان واقعی استفاده شده است که SQL معمولی به اندازه کافی قادر به پاسخگویی به تمام خواسته های اندازه، مقیاس بندی و انواع داده ها که برای Big Data مشخص هستند نیست.

4-11 نتیجه گیری

در این فصل،  HDFS ، MapReduce ، Pig ، Flume ، Sqoop ، Mahout ، Ganglia ، Kafka ، Spark و پایگاه داده‌های NoSQL، یعنی MongoDB و Cassandra ارائه شده است.