نوشته‌ها

Hadoop: راه‌اندازی یک خوشه تک‌گره‌ای

هدف
این سند توضیح می‌دهد چگونه یک نصب Hadoop تک‌گره‌ای را راه‌اندازی و پیکربندی کنید تا بتوانید به سرعت عملیات ساده‌ای با استفاده از MapReduce Hadoop و سیستم فایل توزیع‌شده Hadoop (HDFS) انجام دهید.

توجه: تمام خوشه‌های Hadoop تولیدی از Kerberos برای احراز هویت تماس‌گیران و دسترسی امن به داده‌های HDFS استفاده می‌کنند، همچنین دسترسی محدود به خدمات محاسباتی (YARN و غیره) را محدود می‌کنند.این دستورالعمل‌ها شامل ادغام با هیچ سرویس Kerberos نمی‌شوند، همه کسانی که یک خوشه تولیدی را ایجاد می‌کنند باید اتصال به زیرساخت Kerberos سازمان خود را به عنوان بخش کلیدی از پیاده‌سازی در نظر بگیرند.

پیش‌نیازها
پلتفرم‌های پشتیبانی شده
GNU/Linux به عنوان یک پلتفرم توسعه و تولید پشتیبانی می‌شود. Hadoop در خوشه‌های GNU/Linux با 2000 گره نشان داده شده است.

نرم‌افزارهای مورد نیاز

– باید Java™ نصب باشد. نسخه‌های پیشنهادی Java در HadoopJavaVersions توصیف شده است.
– ssh باید نصب شده و sshd باید در حال اجرا باشد تا از اسکریپت‌های Hadoop استفاده شود که دیمون‌های Hadoop را از راه دور مدیریت می‌کنند، در صورت استفاده از اسکریپت‌های start و stop اختیاری. علاوه بر این، توصیه می‌شود که pdsh نیز نصب شود تا مدیریت بهتری از منابع ssh انجام شود.

نصب نرم‌افزار
اگر خوشه شما دارای نرم‌افزارهای لازم نباشد، باید آن‌ها را نصب کنید.

برای مثال در لینوکس اوبونتو:

$ sudo apt-get install ssh
$ sudo apt-get install pdsh

دانلود
برای دریافت یک توزیع Hadoop، یک نسخه پایدار اخیر را از یکی از آینه‌های دانلود Apache بارگیری کنید.
آماده‌سازی برای شروع خوشه Hadoop
بسته‌ی Hadoop دانلود شده را باز کنید. در توزیع، فایل etc/hadoop/hadoop-env.sh را ویرایش کنید و برخی پارامترها را به شکل زیر تعریف کنید:

# مقدار دهی به ریشه نصب جاوا

export JAVA_HOME=/usr/java/latest

امتحان دستور زیر را انجام دهید:

$ bin/hadoop

این دستور مستندات استفاده از اسکریپت hadoop را نمایش می‌دهد.

اکنون شما آماده شروع خوشه Hadoop خود در یکی از سه حالت پشتیبانی شده هستید:

– حالت محلی (Standalone)
– حالت نیمه-توزیع‌شده
– حالت کاملاً توزیع‌شده

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

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

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output ‘dfs[a-z.]+’
$ cat output/*

عملیات نیمه-توزیع‌شده
Hadoop همچنین می‌تواند در حالت نیمه-توزیع‌شده بر روی یک گره تکی اجرا شود که در آن هر دیمون Hadoop در یک پردازش جاوا جداگانه اجرا می‌شود.

پیکربندی
از موارد زیر استفاده کنید:

etc/hadoop/core-site.xml:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
راه‌اندازی اتصال SSH بدون نیاز به گذرواژه
اکنون بررسی کنید که بتوانید به localhost بدون نیاز به گذرواژه متصل شوید:

$ ssh localhost
اگر نتوانید بدون نیاز به گذرواژه به localhost متصل شوید، دستورات زیر را اجرا کنید:

$ ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

اجرا
دستورات زیر برای اجرای یک کار MapReduce به صورت محلی استفاده می‌شوند. اگر می‌خواهید یک کار را بر روی YARN اجرا کنید، راهنمای YARN در یک گره تک را ببینید.

فرمت داده‌سازی فایل سیستم:

$ bin/hdfs namenode -format

شروع دیمون NameNode و دیمون DataNode:

 

$ sbin/start-dfs.sh

خروجی لاگ دیمون Hadoop در دایرکتوری $HADOOP_LOG_DIR نوشته می‌شود (به صورت پیش‌فرض در $HADOOP_HOME/logs).

صفحه وب NameNode را مشاهده کنید؛ به طور پیش‌فرض در دسترس است:

NameNode – http://localhost:9870/

پوشه‌های HDFS لازم برای اجرای کارهای MapReduce را ایجاد کنید:

$ bin/hdfs dfs -mkdir -p /user/<username>

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

$ bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input

چندین نمونه از مثال‌های ارائه شده را اجرا کنید:

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output ‘dfs[a-z.]+’

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

$ bin/hdfs dfs -get output output
$ cat output/*

یا

فایل‌های خروجی را در فایل‌سیستم توزیع‌شده مشاهده کنید:

$ bin/hdfs dfs -cat output/*

وقتی کار تمام شد، دیمون‌ها را با دستور زیر متوقف کنید:

$ sbin/stop-dfs.sh

YARN در یک گره تک
می‌توانید یک کار MapReduce را در YARN به حالت نیمه-توزیع‌شده اجرا کنید با تنظیم چندین پارامتر و اجرای دیمون ResourceManager و دیمون NodeManager به علاوه.

دستورات زیر فرض می‌کنند که مراحل ۱ تا ۴ از دستورات فوق از قبل انجام شده است.

پارامترها را به صورت زیر پیکربندی کنید:

etc/hadoop/mapred-site.xml:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
etc/hadoop/yarn-site.xml:

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,

HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
</configuration>

دیمون ResourceManager و دیمون NodeManager را راه‌اندازی کنید:

$ sbin/start-yarn.sh

صفحه وب ResourceManager را مشاهده کنید؛ به طور پیش‌فرض در دسترس است:

ResourceManager – http://localhost:8088/

یک کار MapReduce را اجرا کنید.

وقتی کار تمام شد، دیمون‌ها را با دستور زیر متوقف کنید:

$ sbin/stop-yarn.sh

معرفی Apache Pig

در این مقاله، به معرفی ابزار آپاچی پیگ(Apache Pig) می‌پردازیم. آپاچی پیگ یک ابزار تحلیل و پردازش داده برای محیط‌های توزیع‌شده مانند هادوپ (Hadoop) است. این ابزار قدرتمند به شما امکان می‌دهد داده‌های بزرگ را تحت پردازش قرار دهید و تبدیل‌ها و عملیات‌های پیچیده را روی آن‌ها انجام دهید. در این مقاله، مفاهیم اساسی، نصب و راه‌اندازی، نحوه استفاده، و مزایا و معایب آپاچی پیگ را بررسی خواهیم کرد.

بخش 1: مفهوم آپاچی پیگ

1.1. مقدمه

آپاچی پیگ(Apache Pig) یک زبان برنامه‌نویسی و یک فریم‌ورک تحلیل داده است که به توسعه‌دهندگان امکان می‌دهد تا داده‌های بزرگ را پردازش کرده و تبدیل‌های مورد نیاز را روی داده‌ها اعمال کنند. از جمله اصول اساسی آپاچی پیگ، تسهیل و اجرای پردازش داده توزیع‌شده با استفاده از هادوپ می‌باشد.

1.2. ویژگی‌ها

  • سادگی: آپاچی پیگاز یک زبان بسیار ساده و مفهومی برای تعریف عملیات پردازش داده استفاده می‌کند که به توسعه‌دهندگان امکان می‌دهد به راحتی داده‌ها را تبدیل و تحلیل کنند.
  • مقیاس‌پذیری: آپاچی پیگ به خوبی با محیط‌های توزیع‌شده سازگار است و امکان مقیاس‌پذیری برای پردازش داده‌های بزرگ را فراهم می‌کند.
  • تعامل با هادوپ: این ابزار به خوبی با هادوپ تعامل می‌کند و از فریم‌ورک‌های هادوپ برای اجرای وظایف پردازش داده استفاده می‌کند.

بخش 2: نصب و راه‌اندازی

2.1. نصب آپاچی پیگ

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

2.2. تنظیم و راه‌اندازی

پس از نصب، شما باید تنظیمات موردنیاز برای اجرای آپاچی پیگ انجام دهید. این تنظیمات شامل مسیرها و پارامترهای مختلفی است که باید برای محیط شما تنظیم شود.

بخش 3: نحوه استفاده از آپاچی پیگ

آپاچی پیگ از یک زبان اسکریپتی به نام Pig Latin برای تعریف عملیات پردازش داده استفاده می‌کند. شما می‌توانید اسکریپت‌های Pig Latin خود را بنویسید و اجرا کنید تا داده‌ها را تبدیل و تحلیل کنید.

بخش 4: مزایا و معایب

4.1. مزایا

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

4.2. معایب

  • کمبود پشتیبانی از بعضی زبان‌های برنامه‌نویسی: آپاچی پیگ از Pig Latin برای تعریف عملیات پردازش داده استفاده می‌کند و این زبان برای بعضی توسعه‌دهندگان قابلیت‌های کافی را ارائه نمی‌دهد.
  • منابع و زمان نصب: نصب و راه‌اندازی آپاچی پیگ نیاز به زمان و منابع دارد.

بخش 5: نتیجه‌گیری

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