كيفية إعداد Hadoop Cluster مع HDFS High Availability

توفر هذه المدونة نظرة عامة على بنية HDFS High Availability وكيفية إعداد وتكوين مجموعة HDFS High Availability بخطوات بسيطة.

HDFS 2.x بنية الكتلة عالية الإتاحة

في هذه المدونة ، سأتحدث عن HDFS 2.x High Availability Cluster Architecture وإجراءات إعداد مجموعة HDFS High Availability.هذا جزء مهم من . الترتيب الذي تم تناول الموضوعات به في هذه المدونة هو كما يلي:

  • HDFS HA ​​العمارة
    • المقدمة
    • توفر NameNode
    • عمارة HA
    • تنفيذ HA (عقدة Journal والتخزين المشترك)
  • كيف يتم إعداد HA (Quorum Journal Nodes) في مجموعة Hadoop؟

المقدمة:

تم تقديم مفهوم مجموعة الإتاحة العالية في Hadoop 2.x لحل النقطة الوحيدة لمشكلة الفشل في Hadoop 1.x. كما تعلم من مدونتي السابقة أن يتبع Master / Slave Topology حيث يعمل NameNode كخادم رئيسي ومسؤول عن إدارة العقد التابعة الأخرى التي تسمى DataNodes. يصبح هذا البرنامج الخفي الرئيسي أو NameNode عنق الزجاجة. على الرغم من أن إدخال عقدة الاسم الثانوية منعنا من فقدان البيانات وإلغاء تحميل بعض عبء NameNode ، إلا أنه لم يحل مشكلة توفر NameNode.





توفر NameNode:

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

يمكن أن تكون أسباب عدم توفر NameNode:



  • حدث مخطط له مثل أعمال الصيانة مثل ترقية البرامج أو الأجهزة.
  • قد يكون أيضًا بسبب حدث غير مخطط له حيث يتعطل NameNode بسبب بعض الأسباب.

في أي من الحالات المذكورة أعلاه ، لدينا فترة تعطل حيث لا يمكننا استخدام مجموعة HDFS التي تصبح تحديًا.

بنية HDFS HA:

دعونا نفهم كيف حلت HDFS HA ​​Architecture هذه المشكلة الحرجة لتوافر NameNode:

حلت بنية HA مشكلة توفر NameNode من خلال السماح لنا بالحصول على اثنين من NameNodes في تكوين نشط / خامل. لذلك ، لدينا اثنين من NameNodes قيد التشغيل في نفس الوقت في مجموعة High Availability:



  • الاسم النشط
  • الاستعداد / الاسم الخامل عقدة.

HDFS HA ​​Architecture - مجموعة عالية التوافر - Edureka

إذا تعطل NameNode ، يمكن لـ NameNode الأخرى تولي المسؤولية وبالتالي تقليل وقت تعطل الكتلة. يخدم NameNode في وضع الاستعداد الغرض من NameNode احتياطي (بخلاف عقدة الاسم الثانوية) التي تدمج قدرات تجاوز الفشل في كتلة Hadoop. لذلك ، مع StandbyNode ، يمكن أن يكون لدينا تجاوز فشل تلقائي كلما تعطل NameNode (حدث غير مخطط له) أو يمكن أن يكون لدينا تجاوز فشل (بدأ يدويًا) أثناء فترة الصيانة.

هناك مشكلتان في الحفاظ على الاتساق في مجموعة HDFS High Availability:

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

تنفيذ هيكل HA:

الآن ، أنت تعلم أنه في HDFS HA ​​Architecture ، لدينا اثنين من NameNodes يعملان في نفس الوقت. لذلك ، يمكننا تنفيذ تكوين Active and Standby NameNode باتباع طريقتين:

  1. استخدام عقد دفتر النصاب
  2. التخزين المشترك باستخدام NFS

دعونا نفهم هاتين الطريقتين للتنفيذ مع الأخذ واحدة تلو الأخرى:

1. استخدام عقد Quorum Journal:

  • يظل كل من NameNode في وضع الاستعداد و NameNode النشط متزامنين مع بعضهما البعض من خلال مجموعة منفصلة من العقد أو الشياطين - يتم استدعاؤها دفتر اليومية .تتبع JournalNodes الهيكل الدائري حيث ترتبط العقد ببعضها البعض لتشكيل حلقة.يخدم JournalNode الطلب القادم إليه ويقوم بنسخ المعلومات في العقد الأخرى في الحلقة.يوفر هذا التسامح مع الخطأ في حالة فشل JournalNode.
  • تعتبر NameNode النشطة مسؤولة عن تحديث EditLogs (معلومات البيانات الوصفية) الموجودة في JournalNodes.
  • تقرأ العقدة الاحتياطية التغييرات التي تم إجراؤها على EditLogs في JournalNode وتطبقها على مساحة الاسم الخاصة بها بطريقة ثابتة.
  • أثناء تجاوز الفشل ، تتأكد StandbyNode من أنها قامت بتحديث معلومات بيانات التعريف الخاصة بها من JournalNodes قبل أن تصبح Active NameNode الجديد. هذا يجعل حالة مساحة الاسم الحالية متزامنة مع الحالة قبل تجاوز الفشل.
  • تتوفر عناوين IP لكل من NameNodes لجميع DataNodes ويقومون بإرسال نبضات القلب الخاصة بهم وحظر معلومات الموقع إلى كل من NameNode. يوفر هذا تجاوزًا سريعًا للفشل (وقت تعطل أقل) حيث أن العقدة الاحتياطية لديها معلومات محدثة حول موقع الكتلة في الكتلة.

سياج NameNode:

الآن ، كما نوقش سابقًا ، من المهم جدًا التأكد من وجود عقدة اسم نشطة واحدة فقط في كل مرة. لذا ، فإن المبارزة هي عملية لضمان هذه الخاصية بالذات في مجموعة.

  • تقوم JournalNodes بتنفيذ هذا المبارزة بالسماح لـ NameNode واحد فقط ليكون الكاتب في كل مرة.
  • تتولى Standby NameNode مسؤولية الكتابة إلى JournalNodes وتمنع أي NameNode أخرى من أن تظل نشطة.
  • أخيرًا ، يمكن لـ Active NameNode الجديد أداء أنشطته بأمان.

2. استخدام التخزين المشترك:

  • يظل كل من StandbyNode و NameNode النشط متزامنين مع بعضهما البعض باستخدام ملف جهاز تخزين مشترك .يسجل NameNode النشط سجل أي تعديل تم إجراؤه في مساحة الاسم الخاصة به إلى EditLog الموجود في وحدة التخزين المشتركة هذه.يقوم StandbyNode بقراءة التغييرات التي تم إجراؤها على EditLogs في وحدة التخزين المشتركة هذه وتطبيقها على مساحة الاسم الخاصة بها.
  • الآن ، في حالة تجاوز الفشل ، تقوم StandbyNode بتحديث معلومات البيانات الوصفية الخاصة بها باستخدام EditLogs في التخزين المشترك في البداية. بعد ذلك ، يتحمل مسؤولية Active NameNode. هذا يجعل حالة مساحة الاسم الحالية متزامنة مع الحالة قبل تجاوز الفشل.
  • يجب على المسؤول تكوين طريقة واحدة على الأقل للمبارزة لتجنب سيناريو انقسام الدماغ.
  • قد يستخدم النظام مجموعة من آليات المبارزة. قد يتضمن إنهاء عملية NameNode وإلغاء وصولها إلى دليل التخزين المشترك.
  • كحل أخير ، يمكننا إحاطة عقدة الاسم النشطة سابقًا بتقنية تُعرف باسم STONITH ، أو 'إطلاق النار على العقدة الأخرى في الرأس'. تستخدم STONITH وحدة توزيع طاقة متخصصة لإيقاف آلة NameNode بالقوة.

تجاوز الفشل التلقائي:

تجاوز الفشل هو إجراء يقوم من خلاله النظام تلقائيًا بنقل التحكم إلى نظام ثانوي عندما يكتشف عطلًا أو فشلًا. هناك نوعان من تجاوز الفشل:

تجاوز الفشل: في هذه الحالة ، نبدأ يدويًا تجاوز الفشل للصيانة الروتينية.

تجاوز الفشل التلقائي: في هذه الحالة ، يتم بدء تجاوز الفشل تلقائيًا في حالة فشل NameNode (حدث غير مخطط له).

Apache Zookeeper هي خدمة توفر إمكانية تجاوز الفشل تلقائيًا في مجموعة HDFS High Availabilty. يحتفظ بكميات صغيرة من بيانات التنسيق ، ويبلغ العملاء بالتغييرات في تلك البيانات ، ويراقب العملاء بحثًا عن حالات الفشل. يحتفظ Zookeeper بجلسة مع NameNodes. في حالة الفشل ، ستنتهي الجلسة وسيقوم Zookeeper بإبلاغ NameNodes الأخرى لبدء عملية تجاوز الفشل. في حالة فشل NameNode ، يمكن لـ NameNode الآخر الخامل أن يأخذ قفلًا في Zookeeper يوضح أنه يريد أن يصبح Active NameNode التالي.

ZookeerFailoverController (ZKFC) هو عميل Zookeeper يقوم أيضًا بمراقبة حالة NameNode وإدارتها. كل من NameNode يدير ZKFC أيضًا. ZKFC مسؤولة عن مراقبة صحة NameNodes بشكل دوري.

الآن بعد أن فهمت ما هو التوفر العالي في مجموعة Hadoop ، فقد حان الوقت لإعداده. لإعداد High Availability في مجموعة Hadoop ، يجب عليك استخدام Zookeeper في جميع العقد.

الشياطين في Active NameNode هي:

  • حارس حديقة الحيوان
  • Zookeeper Fail Over Controller
  • جورنود
  • NameNode

الشياطين في Standby NameNode هي:

  • حارس حديقة الحيوان
  • Zookeeper Fail Over Controller
  • جورنود
  • NameNode

الشياطين في DataNode هي:

  • حارس حديقة الحيوان
  • جورنود
  • داتاينود

إذا كنت ترغب في إتقان HDFS و Hadoop ، تحقق من دورة البيانات الكبيرة و Hadoop المنسقة خصيصًا من Edureka. انقر على الزر أدناه لتبدأ.

إعداد وتكوين الكتلة عالية الإتاحة في Hadoop:

يجب عليك أولاً إعداد Java وأسماء المضيف لكل عقدة.

آلة افتراضية عنوان IP اسم المضيف
الاسم النشط192.168.1.81nn1.cluster.com أو nn1
اسم الاستعداد192.168.1.58nn2.cluster.com أو nn2
داتاينود192.168.1.82dn1.cluster.com أو dn1

قم بتنزيل ملف القطران الثنائي Hadoop و Zookeeper ، واستخرج الملفات لتحرير ملفات التكوين.

أمر : wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

انشر zookeeper-3.4.6.tar.gz

أمر : tar –xvf zookeeper-3.4.6.tar.gz

تعيين مسار الفصل لجافا

قم بتنزيل القطران الثنائي المستقر Hadoop من موقع Apache Hadoop.

أمر : wget https://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz

استخراج كرة القطران Hadoop.

أمر : tar –xvf hadoop-2.6.0.tar.gz

انتشار hadoop ثنائي.

أضف Hadoop و Zookeeper والمسارات إلى ملف .bashrc.

افتح ملف .bashrc.

أمر : sudo gedit ~ / .bashrc

أضف المسارات التالية:

تصدير HADOOP_HOME = تصدير HADOOP_MAPRED_HOME = $ HADOOP_HOME تصدير HADOOP_COMMON_HOME = $ HADOOP_HOME تصدير HADOOP_HDFS_HOME = $ HADOOP_HOME تصدير YARN_HOME = $ HADOOP_HOME تصدير HADOOP_CONF_DIR = $ HADOOP_HOME / الخ / hadoop تصدير YARN_CONF_DIR = $ HADOOP_HOME / الخ / تصدير hadoop JAVA_HOME = تصدير ZOOKEEPER_HOME = تصدير PATH = $ PATH: $ JAVA_HOME / الصندوق: $ HADOOP_HOME / الصندوق: $ HADOOP_HOME / sbin: $ ZOOKEEPER_HOME / bin

تحرير ملف bashrc.

قم بتمكين SSH في كل العقدة.

قم بإنشاء مفتاح SSH في جميع العقد.

أمر : ssh-keygen –t rsa (هذه الخطوة في جميع العقد)

قم بإعداد مفتاح SSH في جميع العقد.

لا تعطي أي مسار لملف Enter لحفظ المفتاح ولا تعطي أي عبارة مرور. اضغط على زر الدخول.

قم بإنشاء عملية مفتاح ssh في جميع العقد.

بمجرد إنشاء مفتاح ssh ، ستحصل على المفتاح العام والمفتاح الخاص.

يجب أن يحتوي دليل مفاتيح .ssh على Permission 700 ويجب أن تحتوي جميع المفاتيح الموجودة داخل دليل .ssh على الأذونات 600.

قم بتغيير إذن دليل SSH.

قم بتغيير الدليل إلى .ssh وقم بتغيير إذن الملفات إلى 600

تغيير إذن المفتاح العام والخاص.

يجب عليك نسخ المفتاح العمومي لعقد الاسم ssh لجميع العقد.

في Active Namenode ، انسخ id_rsa.pub باستخدام الأمر cat.

أمر : cat ~ / .ssh / id_rsa.pub >> ~ / .ssh / author_keys

انسخ مفتاح Namenode ssh إلى المفاتيح المصرح بها.

انسخ المفتاح العام NameNode إلى جميع العقد التي تستخدم ssh- نسخة- معرف أمر.

أمر : ssh-copy-id –i .ssh / id_rsa.pub edureka@nn2.cluster.com

نسخ مفتاح الغرض إلى Standby NameNode.

نسخ المفتاح العام NameNode إلى عقدة البيانات.

أمر : ssh-copy-id –i .ssh / id_rsa.pub edureka@dn1.cluster.com

انسخ مفتاح Namenode العام إلى عقدة البيانات.

أعد تشغيل خدمة sshd في جميع العقد.

أمر : إعادة تشغيل sudo service sshd (قم بذلك في جميع العقد)

أعد تشغيل خدمة SSH.

الآن يمكنك تسجيل الدخول إلى أي عقدة من Namenode دون أي مصادقة.

افتح الملف core-site.xml من عقدة الاسم النشط وأضف الخصائص أدناه.

قم بتحرير core-site.xml من Active namenode

افتح ملف hdfs-site.xml في Active Namenode. أضف الخصائص أدناه.

dfs.namenode.name.dir / home / edureka / HA / data / namenode dfs.replication 1 dfs.permissions false dfs.nameservices ha-الكتلة dfs.ha.namenodes.ha-الكتلة nn1، nn2 dfs.namenode.rpc-address .ha-cluster.nn1 nn1.cluster.com:9000 dfs.namenode.rpc-address.ha -كليسترو.nn2 nn2.cluster.com:9000 dfs.namenode.http-address.ha-cluster.nn1 nn1.Cluster com: 50070 dfs.namenode.http-address.ha- الكتلة.nn2 nn2.cluster.com:50070 dfs.namenode.shared.edits.dir qjournal: //nn1.cluster.com: 8485nn2.cluster.com: 8485dn1. Cluster.com:8485/ha-cluster dfs.client.failover.proxy.provider.ha-الكتلة org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.automatic-failover.enabled صحيح ha.zookeeper .quorum nn1.cluster.com:2181،nn2.cluster.com:2181،dn1.cluster.com:2181 dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files / home / edureka /.ssh/id_rsa

قم بتغيير الدليل إلى دليل conf الخاص بـ zookeeper.

أمر : cd zookeeper-3.4.6 / conf

دليل Zookeeper Conf.

في دليل conf لديك ملف zoo_sample.cfg ، قم بإنشاء zoo.cfg باستخدام ملف zoo_sample.cfg.

أمر : cp zoo_sample.cfg zoo.cfg

قم بإنشاء ملف zoo.cfg.

قم بإنشاء الدليل في أي مكان واستخدم هذا الدليل لتخزين بيانات zookeeper.

أمر : mkdir

قم بإنشاء دليل لتخزين بيانات zookeeper.

افتح ملف zoo.cfg.

أمر : gedit zoo.cfg

أضف مسار الدليل الذي تم إنشاؤه في الخطوة أعلاه إلى خاصية dataDir وأضف التفاصيل أدناه فيما يتعلق بالعقدة المتبقية ، في ملف zoo.cfg.

Server.1 = nn1.cluster.com: 2888: 3888

Server.2 = nn2.cluster.com: 2888: 3888

Server.3 = dn1.cluster.com: 2888: 3888

تحرير ملف zoo.cfg.

الآن انسخ مجلدات Java و Hadoop-2.6.0 و zookeeper-3.4.6 وملف .bashrc إلى جميع العقد (عقدة اسم الاستعداد ، عقدة البيانات) باستخدام الأمر scp.

أمر : scp –r edureka @:

انسخ ملف Hadoop و Zookeeper و .bashrc إلى جميع العقد.

وبالمثل ، انسخ ملف .bashrc ودليل zookeeper إلى جميع العقد وقم بتغيير متغيرات البيئة في كل منها وفقًا للعقدة المعنية.

في عقدة البيانات ، أنشئ أي دليل تريد تخزين كتل HDFS فيه.

في عقدة البيانات ، يجب عليك إضافة خصائص dfs.datanode.data.dir.

في حالتي ، لقد خلقت datanode دليل لتخزين الكتل.

إنشاء دليل Datanode.

قم بتغيير الإذن إلى دليل عقدة البيانات.

تغيير إذن دليل Datanode.

افتح ملف HDFS-site.xml ، أضف مسار دليل Datanode هذا في خاصية dfs.datanode.data.dir.

ملاحظة: احتفظ بجميع الخصائص التي تم نسخها من رمز الاسم النشط ، أضف dfs.datanode.data.dir خاصية استخراج واحدة في namenode.

dfs.datanode.data.dir / home / edureka / HA / data / datanode

في الاسم النشط ، قم بتغيير الدليل حيث تريد تخزين ملف تكوين zookeeper (مسار خاصية dataDir).

قم بإنشاء ملف myid داخل الدليل وأضف الرقم 1 إلى الملف واحفظ الملف.

أمر : vi myid

قم بإنشاء ملف myid.

في اسم الاستعداد ، قم بتغيير الدليل حيث تريد تخزين ملف تكوين zookeeper (مسار خاصية dataDir).

قم بإنشاء ملف myid داخل الدليل وأضف الرقم 2 إلى الملف واحفظ الملف.

في عقدة البيانات ، قم بتغيير الدليل حيث تريد تخزين ملف تكوين zookeeper (مسار خاصية dataDir).

قم بإنشاء ملف myid داخل الدليل وأضف الرقم 3 إلى الملف واحفظ الملف.

ابدأ تشغيل Journalnode في جميع العقد الثلاثة.

أمر : hadoop-daemon.sh بدء journalnode

ابدأ في Journalnode.

مطور Cloudera معتمد لأباتشي hadoop

عند إدخال أمر jps ، سترى البرنامج الخفي لـ JournalNode في جميع العقد.

تنسيق ملفالغرض النشط.

أمر : HDFS المقصود - تنسيق

نشط NameNode تنسيق.

ابدأ البرنامج الخفي لـ Namenode و Active Namedode.

أمر : hadoop-daemon.sh غرض البدء

ابدأ Namenode.

كيفية عمل مضاعفة كثافة العمليات في جافا

انسخ بيانات HDFS Meta من عقدة الاسم النشط إلى وضع الاستعداد.

أمر : HDFS المقصود -bootstrapStandby

انسخ بيانات HDFS Meta من عقدة الاسم النشط إلى Standby Namenode.

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

معلومات تفاصيل الغرض النشط.

بمجرد نسخ بيانات التعريف من رمز الاسم النشط إلى وضع الاستعداد ، ستحصل على الرسالة الموضحة أدناه في لقطة الشاشة.

معلومات بخصوص HDFS في وضع الاستعداد Namenode.

ابدأ البرنامج الخفي لـ namenode في جهاز وضع الأسماء في وضع الاستعداد.

أمر : hadoop-daemon.sh غرض البدء

ابدأ الآن خدمة Zookeeper في جميع العقد الثلاثة.

أمر : zkServer.sh start (قم بتشغيل هذا الأمر في جميع العقد)

في الغرض النشط:

ابدأ تشغيل zookeeper في Active NameNode.

في وضع الاستعداد Namenode:

ابدأ تشغيل zookeeper في وضع الاستعداد NameNode.

في عقدة البيانات:

ابدأ zookeeper في DataNode.

بعد تشغيل خادم Zookeeper ، أدخل أمر JPS. في جميع العقد ، سترى خدمة QuorumPeerMain.

ابدأ البرنامج الخفي لعقدة البيانات في جهاز عقدة البيانات.

أمر : hadoop-daemon.sh بدء datanode

بدء فشل Zookeeper على وحدة التحكم في عقدة الاسم النشط وعقدة الاسم الاحتياطي.

فشل تنسيق zookeeper على وحدة التحكم في الاسم النشط.

أمر: HDFS zkfc –formatZK

تنسيق ZKFC.

ابدأ ZKFC في وضع الاسم النشط.

أمر : hadoop-daemon.sh ابدأ zkfc

أدخل الأمر jps للتحقق من شياطين DFSZkFailoverController.

ابدأ ZKFC.

فشل تنسيق zookeeper على وحدة التحكم في وضع الاستعداد.

أمر : hdfs zkfc –formatZK

ابدأ ZKFC في وضع الاستعداد.

أمر : hadoop-daemon.sh ابدأ zkfc

أدخل الأمر jps للتحقق من شياطين DFSZkFailoverController.

تحقق الآن من حالة كل Namenode ، أي عقدة نشطة أو أي عقدة في وضع الاستعداد باستخدام الأمر أدناه.

أمر : hdfs haadmin –getServiceState nn1

تحقق من حالة كل NameNode.

تحقق الآن من حالة كل Namenode باستخدام متصفح الويب.

افتح متصفح الويب وأدخل عنوان URL أدناه.

: 50070

سيُظهر ما إذا كانت عقدة الاسم نشطة أم في وضع الاستعداد.

الاسم النشط

افتح تفاصيل عقدة اسم أخرى باستخدام متصفح الويب.

اسم الاستعداد

في رمز الاسم النشط ، اقتل البرنامج الخفي لرمز الاسم لتغيير عقدة اسم الاستعداد إلى رمز اسم نشط.

أدخل jps في namenode النشط واقتل البرنامج الخفي.

أمر: سودو قتل -9

معرف عملية Daemons.

معرّف عملية Namenode هو 7606 ، اقتل namenode.

أمر : سودو قتل -9 7606

اقتل عملية عقدة الاسم

افتح العقدتين من خلال متصفح الويب وتحقق من الحالة.

تفاصيل Namenode.

حالة NameNode.

تهانينا ، لقد نجحت في إعداد مجموعة HDFS عالية الإتاحة في Hadoop.

الآن بعد أن فهمت Hadoop High Availability Cluster Architecture ، تحقق من من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تساعد الدورة التدريبية لشهادة Edureka Big Data Hadoop المتعلمين على أن يصبحوا خبراء في مجال HDFS ، و Yarn ، و MapReduce ، و Pig ، و Hive ، و HBase ، و Oozie ، و Flume ، و Sqoop باستخدام حالات الاستخدام في الوقت الفعلي في مجال البيع بالتجزئة ، ووسائل التواصل الاجتماعي ، والطيران ، والسياحة ، والمالية

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات وسنعاود الاتصال بك.

window._LQ_ = window._LQ_ || {}

lqQuizModal (window، document، {quizId: ’XAIVp8 ′، baseUrl:’ https: //quiz.leadquizzes.com/’،trigger: ’exit’}، _LQ_)