كيفية تثبيت هادوب على Ubuntuخطوات التنزيل والتثبيت

⚡ ملخص ذكي

تثبيت Apache Hadoop على Ubuntu يتطلب الأمر عمليتي فك ضغط الإصدار تحت حساب نظام مخصص باستخدام SSH بدون كلمة مرور، ثم تحرير أربعة ملفات XML قبل تهيئة HDFS وبدء تشغيل مجموعة العقدة الواحدة.

  • 🔘 المتطلبات الأساسية: الجري Ubuntu آلة مدعومة Java يجب أن تكون مجموعة أدوات التطوير جاهزة أولاً.
  • ☑️ حساب مخصص: قم بإنشاء مجموعة hadoop_ وحساب hduser_ حتى لا يتم تشغيل البرامج الخفية أبدًا كمستخدم تسجيل الدخول الخاص بك.
  • ✅ SSH بدون كلمة مرور: يبدأ Hadoop تشغيل البرامج الخفية عبر SSH، لذا يجب أن ينجح ssh localhost بدون مطالبة بكلمة مرور.
  • 🧪 أربعة ملفات تهيئة: تحتوي الملفات hadoop-env.sh و core-site.xml و mapred-site.xml و hdfs-site.xml على جميع الإعدادات التي يغيرها هذا الدليل.
  • 🛠️ البداية الأولى: قم بتهيئة NameNode مرة واحدة، ثم قم بتشغيل start-dfs.sh و start-yarn.sh وتأكد من وجود خمسة برامج خفية باستخدام jps.
  • 🧭 اختلاف الإصدار: تستخدم لقطات الشاشة Hadoop 2.2.0، لذا تحقق من الإصدار والمنافذ وأسماء الخصائص مقابل Hadoop 3.x.

كيفية تثبيت هادوب على Ubuntu

في هذا الدرس التعليمي، سنشرح لكم بالتفصيل عملية تثبيت Apache Hadoop على جهاز يعمل بنظام Linux (Ubuntu). هذه عملية من جزأين: أولاً تنزيل الإصدار وتثبيته، ثم تهيئته.

هناك شرطان أساسيان:

ملاحظات حول إصدار Hadoop 3.x لهذا الإعداد

تم التقاط لقطات الشاشة في هذا الشرح التوضيحي على نظام Hadoop 2.2.0. لم يتغير تسلسل الخطوات في الإصدارات الحالية، ولكن تم تغيير بعض الأسماء والإعدادات الافتراضية. يُرجى مراجعة الجدول أدناه قبل نسخ أي أمر حرفيًا.

الإعداد أو الخطوة في هذا الدرس التعليمي (هادوب 2.x) الإصدار الحالي من هادوب 3.x
أرشيف الإصدارات hadoop-2.2.0.tar.gz hadoop-3.5.0.tar.gz، الإصدار المستقر الأول 3.5، الذي نُشر في 2 أبريل 2026
خاصية نظام الملفات الافتراضية fs.default.name في النثر، fs.defaultFS في ملف XML fs.defaultFS فقط؛ fs.default.name تم إهماله
خاصية MapReduce mapreduce.jobtracker.address mapreduce.framework.name تعيين إلى yarnالوظيفةTracلم يعد ker موجودًا بمجرد أن يقوم YARN بجدولة العمل
mapred- site.xml منسوخ من mapred-site.xml.template السفن في etc/hadoop لذا فإن خطوة النسخ غير ضرورية بالفعل
منفذ واجهة المستخدم الرسومية لـ NameNode 50070 9870
Java Java 6 أو Java 7 Java 8 أو Java 11

كل شيء آخر في هذا الدليل يتصرف بنفس الطريقة على Hadoop 3: الحساب المخصص، ومفتاح SSH، وملفات التكوين الأربعة، وبرامج بدء التشغيل والإيقاف.

الجزء 1) تنزيل وتثبيت Hadoop

الخطوة 1) إضافة مستخدم نظام Hadoop

أضف مستخدم نظام Hadoop باستخدام الأمر أدناه.

sudo addgroup hadoop_

الطرفية التي تعمل بالأمر sudo addgroup hadoop_

sudo adduser --ingroup hadoop_ hduser_

طلب إضافة مستخدم لجمع تفاصيل المستخدم hduser_

أدخل كلمة المرور والاسم والتفاصيل الأخرى.

NOTE: هناك احتمال لحدوث الخطأ المذكور أدناه في عملية الإعداد والتثبيت هذه.

"hduser غير موجود في ملف sudoers. سيتم الإبلاغ عن هذا الحادث."

رسالة الخطأ: المستخدم hduser غير موجود في ملف sudoers

يمكن حل هذا الخطأ عن طريق تسجيل الدخول كمستخدم الجذر.

التبديل إلى المستخدم الجذر في الطرفية

تنفيذ الأمر

sudo adduser hduser_ sudo

إضافة المستخدم hduser_ إلى مجموعة sudo

Re-login as hduser_

إعادة تسجيل الدخول باسم المستخدم hduser_

الخطوة 2) تكوين SSH

لإدارة العقد في مجموعة، يتطلب Hadoop الوصول عبر SSH.

أولاً، قم بتبديل المستخدم، وأدخل الأمر التالي

su - hduser_

تبديل المستخدم باستخدام su - hduser_

سيقوم هذا الأمر بإنشاء مفتاح جديد.

ssh-keygen -t rsa -P ""

يقوم برنامج ssh-keygen بإنشاء زوج مفاتيح RSA للمستخدم hduser_

قم بتمكين الوصول إلى الجهاز المحلي عبر SSH باستخدام هذا المفتاح.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

إضافة id_rsa.pub إلى ملف authorized_keys

الآن اختبر إعداد SSH عن طريق الاتصال بـ localhost كمستخدم 'hduser_'.

ssh localhost

جلسة SSH ناجحة على المضيف المحلي للمستخدم hduser_

ملاحظة: إذا رأيت الخطأ أدناه استجابةً للأمر 'ssh localhost'، فهناك احتمال أن يكون SSH غير متاح على هذا النظام.

فشل الاتصال عبر SSH على المضيف المحلي بسبب رفض الاتصال

لحل هذه –

تطهير SSH باستخدام،

sudo apt-get purge openssh-server

من الممارسات الجيدة إجراء عملية تنظيف قبل بدء التثبيت.

apt-get purge إزالة حزمة openssh-server الموجودة

قم بتثبيت SSH باستخدام الأمر-

sudo apt-get install openssh-server

تثبيت حزمة openssh-server باستخدام apt-get

الخطوة 3) تنزيل Hadoop

الخطوة التالية هي تنزيل هادوب من صفحة إصدارات أباتشي هادوب.

صفحة إصدارات Apache Hadoop التي تعرض الإصدارات المتاحة

حدد مستقر

قائمة الدليل لإصدار Hadoop المستقر

حدد ملف tar.gz (وليس الملف الذي ينتهي بـ src).

اختيار ملف Hadoop الثنائي tar.gz بدلاً من أرشيف src

بمجرد اكتمال التنزيل، انتقل إلى الدليل الذي يحتوي على ملف tar.

تم فتح نافذة الطرفية في المجلد الذي يحتوي على ملف tar الذي تم تنزيله

أدخل،

sudo tar xzf hadoop-2.2.0.tar.gz

Extracتغليف ملف Hadoop المضغوط باستخدام tar xzf

الآن، أعد تسمية hadoop-2.2.0 إلى hadoop.

sudo mv hadoop-2.2.0 hadoop

إعادة تسمية السابقtracمجلد ted hadoop-2.2.0 إلى hadoop

وأخيراً، قم بتسليم المجلد إلى الحساب الجديد.

sudo chown -R hduser_:hadoop_ hadoop

تغيير ملكية مجلد Hadoop إلى المستخدم hduser_ و hadoop_

استبدل النسخة التي قمت بتنزيلها بالفعل بـ hadoop-2.2.0 في الأوامر الثلاثة المذكورة أعلاه.

الجزء 2) تكوين Hadoop

الخطوة 1) تعديل ملف ~/.bashrc

أضف الأسطر التالية إلى نهاية الملف ~/.bashrc.

#Set HADOOP_HOME
export HADOOP_HOME=<Installation Directory of Hadoop>
#Set JAVA_HOME
export JAVA_HOME=<Installation Directory of Java>
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin

ملف bashrc مع إضافة متغيرات HADOOP_HOME و JAVA_HOME و PATH

الآن، قم بتفعيل إعدادات هذه البيئة باستخدام الأمر أدناه.

. ~/.bashrc

يتم استدعاء ملف bashrc لتفعيل متغيرات البيئة الجديدة.

الخطوة الثانية) الإعدادات المتعلقة بنظام ملفات Hadoop الموزع (HDFS)

قم بتعيين JAVA_HOME داخل الملف $HADOOP_HOME/etc/hadoop/hadoop-env.sh، كما هو موضح أدناه.

سطر JAVA_HOME الافتراضي داخل ملف hadoop-env.sh

تم فتح ملف hadoop-env.sh في المحرر، وعرض تصدير JAVA_HOME

مع

تم استبدال متغير البيئة JAVA_HOME في ملف hadoop-env.sh بالمتغير الحقيقي. Java مسار التثبيت

يوجد معياران في الملف $HADOOP_HOME/etc/hadoop/core-site.xml يجب ضبطهما-

1. 'hadoop.tmp.dir' – يستخدم لتحديد دليل سيتم استخدامه بواسطة Hadoop لتخزين ملفات البيانات الخاصة به.

2. 'fs.defaultFS' – يحدد هذا الخيار نظام الملفات الافتراضي. أما الاسم القديم لنفس الخاصية، 'fs.default.name'، فقد أصبح مهملاً.

لتعيين هذه المعلمات، افتح core-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml

فتح ملف core-site.xml باستخدام gedit

انسخ الأسطر أدناه بين الوسوم.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>Parent directory for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS </name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. </description>
</property>

يحتوي ملف core-site.xml على خصائص hadoop.tmp.dir و fs.defaultFS

انتقل إلى الدليل $HADOOP_HOME/etc/hadoop.

الطرفية داخل دليل تكوين Hadoop etc/hadoop

الآن، قم بإنشاء الدليل المذكور في ملف core-site.xml.

sudo mkdir -p <Path of Directory used in above setting>

إنشاء المسار hadoop.tmp.dir باستخدام الأمر mkdir -p

امنح صلاحيات الوصول إلى الدليل.

sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>

chown منح المستخدم hduser_ ملكية الدليل المؤقت

sudo chmod 750 <Path of Directory created in above step>

تم تطبيق الأمر chmod 750 على الدليل المؤقت

الخطوة 3) تهيئة MapReduce

قبل أن تبدأ بهذه الإعدادات، دعنا نحدد مسار HADOOP_HOME.

sudo gedit /etc/profile.d/hadoop.sh

وأدخل

export HADOOP_HOME=/home/guru99/Downloads/Hadoop

نص برمجي لملف تعريف hadoop.sh يقوم بتصدير HADOOP_HOME

بعد ذلك أدخل

sudo chmod +x /etc/profile.d/hadoop.sh

قم بتفعيل الأمر chmod +x لجعل ملف تعريف hadoop.sh قابلاً للتنفيذ

أغلق نافذة الطرفية وأعد تشغيلها مرة أخرى.

اكتب echo $HADOOP_HOME للتحقق من المسار.

echo $HADOOP_HOME طباعة مسار التثبيت المُكوّن

الآن قم بنسخ الملفات

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

جارٍ نسخ ملف mapred-site.xml.template إلى ملف mapred-site.xml

افتح ملف mapred-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

فتح ملف mapred-site.xml باستخدام gedit

أضف الإعدادات أدناه بين و الوسوم.

<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>

ملف mapred-site.xml الذي يحتوي على مهمة MapReduce tracملكية كير

افتح الملف $HADOOP_HOME/etc/hadoop/hdfs-site.xml كما هو موضح أدناه،

sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

فتح ملف hdfs-site.xml باستخدام gedit

أضف الإعدادات أدناه بين و الوسوم.

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser_/hdfs</value>
</property>

ملف hdfs-site.xml الذي يحتوي على خصائص dfs.replication و dfs.datanode.data.dir

أنشئ الدليل المحدد في الإعداد أعلاه.

sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs

إنشاء دليل بيانات DataNode باستخدام الأمر mkdir -p

ثم امنح الملكية والصلاحيات اللازمة.

sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs

chown منح المستخدم hduser_ ملكية دليل بيانات DataNode

sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs

تم تطبيق الأمر chmod 750 على دليل بيانات DataNode

الخطوة الرابعة) تهيئة نظام ملفات Hadoop الموزع (HDFS)

قبل أن نبدأ تشغيل Hadoop لأول مرة، قم بتهيئة HDFS باستخدام الأمر أدناه.

$HADOOP_HOME/bin/hdfs namenode -format

hdfs namenode -format output تهيئة نظام الملفات الجديد

الخطوة 5) ابدأ تشغيل مجموعة عقدة واحدة من Hadoop

ابدأ تشغيل مجموعة Hadoop أحادية العقدة باستخدام الأمر أدناه.

$HADOOP_HOME/sbin/start-dfs.sh

يظهر ناتج الأمر أعلاه أدناه.

مخرجات start-dfs.sh بدء تشغيل NameNode و DataNode

ثم ابدأ تشغيل برامج YARN.

$HADOOP_HOME/sbin/start-yarn.sh

مخرجات الأمر start-yarn.sh: بدء تشغيل مدير الموارد ومدير العقدة

باستخدام أداة "jps"، تحقق مما إذا كانت جميع العمليات المتعلقة بـ Hadoop قيد التشغيل.

مخرجات jps التي تعرض قائمة بخمسة برامج Hadoop قيد التشغيل

إذا تم تشغيل Hadoop بنجاح، فيجب أن يسرد إخراج jps كلاً من NameNode و NodeManager و ResourceManager و SecondaryNameNode و DataNode.

الخطوة السادسة) توقفping Hadoop

قم بإيقاف تشغيل المجموعة بالترتيب العكسي.

$HADOOP_HOME/sbin/stop-dfs.sh

مخرجات الأمر stop-dfs.sh تؤدي إلى إيقاف تشغيل خدمات HDFS

$HADOOP_HOME/sbin/stop-yarn.sh

مخرجات الأمر stop-yarn.sh تؤدي إلى إيقاف تشغيل خدمات YARN

كيفية التحقق من تشغيل هادوب وإصلاح الأخطاء الشائعة

يؤكد ناتج الأمر jps بدء العمليات، لكنه لا يؤكد جاهزية المجموعة للاستخدام. أربع فحوصات إضافية تحسم هذا الأمر.

  • افتح واجهة الويب الخاصة بـ NameNode على http://localhost:9870 (المنفذ 50070 على Hadoop 2.x) وتأكد من أن الملخص يشير إلى وجود عقدة نشطة واحدة.
  • افتح واجهة مدير الموارد على http://localhost:8088 للتأكد من أن YARN قد قبل NodeManager.
  • يجري hdfs dfsadmin -report بالنسبة للسعة، وعقد البيانات النشطة، وأي كتل غير مكررة بشكل كافٍ.
  • اكتب شيئاً: hdfs dfs -mkdir /test تليها hdfs dfs -ls / يثبت ذلك أن مساحة الاسم تقبل التغييرات.

تندرج معظم حالات الفشل في المرة الأولى ضمن إحدى الفئات الخمس.

عرض سبب حل
لم يتم تعيين متغير البيئة JAVA_HOME ولم يتم العثور عليه يتم تصدير المتغير في ملف ‎.bashrc ولكن ليس في ملف hadoop-env.sh قم بتعيين مسار JDK المطلق داخل ملف hadoop-env.sh أيضًا.
تم رفض الوصول (المفتاح العام، كلمة المرور) على ssh localhost مفتاح authorized_keys مفقود أو متساهل للغاية أعد إضافة id_rsa.pub، ثم نفّذ الأمر chmod 600 على ~/.ssh/authorized_keys
تم رفض الاتصال على المنفذ 22 برنامج openssh-server غير مثبت أو لا يعمل قم بتثبيت openssh-server وابدأ خدمة ssh
تم حذف عقدة البيانات من ملف jps بعد إعادة التنسيق Cluster عدم تطابق المعرف بين NameNode المنسق ودليل DataNode القديم قم بإفراغ مجلد dfs.datanode.data.dir، ثم قم بتهيئته مرة أخرى
start-dfs.sh: الأمر غير موجود لم يتم استدعاء متغيري البيئة HADOOP_HOME و PATH في واجهة سطر الأوامر الحالية. قم بتشغيل ملف ‎.bashrc الموجود في الملف ‎.~/.bashrc أو افتح نافذة طرفية جديدة.

الأسئلة الشائعة

أي منها مدعوم بنشاط Ubuntu إصدارات الدعم طويل الأمد (LTS) تعمل، بما في ذلك الإصدارين 22.04 و24.04. تم بناء واختبار Hadoop 3.x على Java و8 Java 11، لذا قم بتثبيت أحد إصدارات JDK هذه؛ إصدارات JDK الأحدث غير مدعومة بالكامل والإصدارات الأقدم Java لم تعد الإصدارات 7 قابلة للتطبيق.

يقوم البرنامجان النصيان start-dfs.sh و start-yarn.sh بتشغيل جميع الخدمات عبر SSH، حتى عندما يكون المضيف الوحيد هو localhost. بدون مفتاح بدون كلمة مرور، يتوقف البرنامجان النصيان عند طلب كلمة المرور ولا يتم تشغيل أي خدمة.

يُعدّ hadoop.tmp.dir مسار التخزين المؤقت الأساسي الذي يستمد منه Hadoop مواقع التخزين المؤقتة الأخرى. أما dfs.datanode.data.dir فهو المكان الذي يحتفظ فيه DataNode بملفات الكتل الفعلية. وجّه المسار الثاني إلى وحدة تخزين دائمة، ولا تُوجّهه أبدًا إلى /tmp، وإلا ستختفي الكتل عند إعادة التشغيل.

قم بالتنسيق مرة واحدة، قبل التشغيل الأول. إعادة تشغيل التنسيق تمسح مساحة الاسم وتترك أدلة DataNode الحالية تحمل معرف مجموعة أقدم، ولهذا السبب يرفض DataNode التسجيل ويختفي من مخرجات jps.

نعم، على الرغم من ذلك Windows يحتاج إلى ملفات winutils.exe و hadoop.dll الثنائية الأصلية للإصدار المتوافق. يتجنب معظم المستخدمين ذلك عن طريق تشغيل نفس Ubuntu خطوات داخل WSL 2، الذي يتصرف مثل مضيف Linux عادي.

لأغراض التعلم، نعم: فالصورة الجاهزة تتجاوز إنشاء المستخدمين ومفاتيح SSH وتعديل ملفات XML. مع ذلك، يُنصح بتجربة التثبيت اليدوي مرة واحدة، لأنه يُظهر الملف الذي يتحكم بكل إعداد عند حدوث خلل في أداء مجموعة الخوادم الحقيقية.

تتنبأ نماذج التعلم الآلي، التي تعتمد على مقاييس NameNode وYARN، بحدود السعة، وتكشف عن المهام غير المتوازنة، وتُشير إلى أعطال الأقراص مبكرًا. كما تُوصي العديد من المنصات بأحجام الحاويات تلقائيًا، مما يُغني عن الكثير من الضبط اليدوي لهذا التكوين عند الحاجة.

يقوم Copilot بصياغة كتل خصائص ملفي core-site.xml و hdfs-site.xml بسرعة ويتذكر التهجئة الدقيقة. تحقق من كل اقتراح بالرجوع إلى وثائق إصدارك، لأنه غالبًا ما يقترح خصائص مهملة مثل mapreduce.jobtracker.address أو fs.default.name.

تلخيص هذه التدوينة بـ: