معلومات حول استخدام HDInsight على Linux

تعمل أنظمة مجموعات Azure HDInsight على توفير Apache Hadoop على بيئة نظام Linux مألوفة، والتي يتم تشغيلها في سحابة Azure. بالنسبة لمعظم الأشياء، يجب أن تعمل تماماً مثل أي عملية تثبيت Hadoop-على-Linux أخرى. يوضح هذا المستند اختلافات محددة يجب أن تكون على علم بها.

المتطلبات الأساسية

تستخدم العديد من الخطوات في هذا المستند الأدوات المساعدة التالية، التي قد يجب تثبيتها على نظامك.

المستخدمون

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

يدعم HDInsight المُنضم إلى المجال العديد من المستخدمين والمزيد من إعدادات الأذونات والأدوار متعددة المستويات. لمزيد من المعلومات، راجع إدارة أنظمة مجموعات HDInsight المُنضمة إلى المجال.

أسماء المجال

اسم المجال المؤهل بالكامل (FQDN) لاستخدامه عند الاتصال بنظام المجموعة من الإنترنت هو CLUSTERNAME.azurehdinsight.net أو CLUSTERNAME-ssh.azurehdinsight.net (لـ SSH فقط).

داخلياً، تحتوي كل عقدة في نظام المجموعة على اسم تم تعيينه أثناء تكوين نظام المجموعة. للبحث عن أسماء نظام المجموعة، راجع صفحة الأجهزة المضيفة على واجهة مستخدم الويب Ambari. يمكنك أيضاً استخدام ما يلي لإرجاع قائمة الأجهزة المضيفة من واجهة برمجة تطبيقات Ambari REST:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/hosts" | jq '.items[].Hosts.host_name'

استبدل CLUSTERNAME باسم نظام مجموعة الخاص بك. عند مطالبتك، أدخِل كلمة المرور لحساب المسؤول. يقوم هذا الأمر بإرجاع مستند JSON الذي يحتوي على قائمة الأجهزة المضيفة في نظام المجموعة. يتم استخدام jq لاستخراج قيمة العنصر host_name لكل مضيف.

إذا كنت بحاجة إلى البحث عن اسم العقدة لخدمة محددة، يمكنك استعلام Ambari لهذا المكون. على سبيل المثال، للبحث عن الأجهزة المضيفة لعقدة اسم HDFS، استخدم الأمر التالي:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/HDFS/components/NAMENODE" | jq '.host_components[].HostRoles.host_name'

يقوم هذا الأمر بإرجاع مستند JSON الذي يصف الخدمة، ثم يسحب jq القيمة host_name فقط للأجهزة المضيفة.

الوصول عن ُبعد إلى الخدمات

  • Ambari (ويب) - https://CLUSTERNAME.azurehdinsight.net

    يمكنك المصادقة باستخدام مستخدم مسؤول وكلمة مرور نظام المجموعة، ثم قم بتسجيل الدخول إلى Ambari.

    المصادقة هي نص عادي - استخدم HTTPS دائماً للمساعدة في التأكد من أمان الاتصال.

    هام

    تتوفر بعض واجهات المستخدم للويب من خلال عُقد وصول Ambari باستخدام اسم مجال داخلي. أسماء النطاقات الداخلية غير متاحة بشكل عام عبر الإنترنت. قد تتلقى أخطاء "لم يتم العثور على الخادم" عند محاولة الوصول إلى بعض الميزات عبر الإنترنت.

    لاستخدام الوظائف الكاملة لواجهة مستخدم الويب لـ Ambari، استخدم نفق SSH لنسبة استخدام الشبكة عبر الويب للوكيل إلى عُقدة رأس نظام المجموعة. راجع استخدام التوجيه لأسفل لـ SSH للوصول إلى واجهة مستخدم الويب لدى Apache Ambari، وResourceManager، وJobHistory، وNameNode، وOozie، وغيرها من واجهات مستخدمين الويب

  • Ambari (REST) - https://CLUSTERNAME.azurehdinsight.net/ambari

    إشعار

    المصادقة باستخدام المستخدم المسؤول وكلمة المرور لنظام المجموعة وكلمة المرور.

    المصادقة هي نص عادي - استخدم HTTPS دائماً للمساعدة في التأكد من أمان الاتصال.

  • WebHCat (Templeton) - https://CLUSTERNAME.azurehdinsight.net/templeton

    إشعار

    المصادقة باستخدام المستخدم المسؤول وكلمة المرور لنظام المجموعة وكلمة المرور.

    المصادقة هي نص عادي - استخدم HTTPS دائماً للمساعدة في التأكد من أمان الاتصال.

  • SSH - CLUSTERNAME-ssh.azurehdinsight.net على المنفذ 22 أو 23. يتم استخدام المنفذ 22 للاتصال بعقدة الرأسي الأساسية، بينما يُستخدم 23 للاتصال بالعقدة الثانوية. لمزيد من المعلومات حول العقد الرأسية، راجع توفر وموثوقية أنظمة مجموعات Apache Hadoop في HDInsight.

    إشعار

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

لمزيد من المعلومات، راجع المنافذ المستخدمة من قِبل خدمات Apache Hadoop على مستند HDInsight.

مواقع الملفات

يمكن العثور على الملفات ذات الصلة لـ Hadoop على عقد نظام المجموعة في /usr/hdp. يحتوي هذا الدليل على الدلائل الفرعية التالية:

  • 2.6.5.3009-43: اسم الدليل هو إصدار النظام الأساسي لـ Hadoop المستخدم من قِبل HDInsight. قد يكون العدد على نظام المجموعة الخاص بك مختلفاً عن ذلك المذكور هنا.
  • الحالي: يحتوي هذا الدليل على ارتباطات إلى الدلائل الفرعية ضمن الدليل 2.6.5.3009-43. يوجد هذا الدليل بحيث لا تحتاج إلى تذكر رقم الإصدار.

يمكن العثور على بيانات المثال وملفات JAR على نظام الملفات الموزعة في Hadoop في /example و/HdiSamples.

HDFS، وتخزين Azure، وData Lake Storage

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

عند استخدام HDInsight، يتم تخزين ملفات البيانات بطريقة قابلة للتكيف ومرنة في السحابة باستخدام تخزين Azure Blob وAzure Data Lake Storage Gen1/Gen2 اختيارياً. توفر هذه الخدمات الميزات التالية:

  • تخزين رخيص على المدى الطويل.
  • إمكانية الوصول من الخدمات الخارجية مثل مواقع الويب، والأدوات المساعدة لتحميل/تنزيل الملفات، وعِدد SDK متعددة اللغات، ومستعرضات الويب.
  • سعة ملف كبيرة ومساحة تخزين كبيرة قابلة للتكيف.

لمزيد من المعلومات، راجع تخزين Azure Blob، أو Azure Data Lake Storage Gen1، أو Azure Data Lake Storage Gen2.

عند استخدام تخزين Azure Blob أو تخزين Data Lake Storage Gen1/Gen2، لا يتعين عليك القيام بأي شيء خاص من HDInsight للوصول إلى البيانات. على سبيل المثال، يسرد الأمر التالي الملفات الموجودة في المجلد /example/data سواء كان مُخزناً على تخزين Azure أو Data Lake Storage:

hdfs dfs -ls /example/data

في HDInsight، يتم فصل موارد تخزين البيانات (تخزين Azure Blob وAzure Data Lake Storage) عن موارد الحساب. يمكنك إنشاء أنظمة مجموعات HDInsight للقيام بالحساب حسب ما تحتاج، ثم حذف نظام المجموعة في وقت لاحق عند الانتهاء من العمل. وفي الوقت نفسه، الاحتفاظ بملفات البيانات المستمرة بأمان في التخزين على السحابة طالما كنت بحاجة إلى ذلك.

URI والنظام

قد تتطلب بعض الأوامر تحديد النظام كجزء من URI عند الوصول إلى أحد الملفات. عند استخدام التخزين غير الافتراضي (مساحة التخزين المضافة كتخزين "إضافي" إلى نظام المجموعة)، يجب عليك دائماً استخدام النظام كجزء من URI.

عند استخدام تخزين Azure، استخدم أحد أنظمة URI التالية:

  • wasb:///: الوصول إلى التخزين الافتراضي باستخدام الاتصال غير المشفر.

  • wasbs:///: الوصول إلى التخزين الافتراضي باستخدام الاتصالات المشفرة. يتم دعم نظام wasbs فقط من الإصدار HDInsight 3.6 والأحدث.

  • wasb://<container-name>@<account-name>.blob.core.windows.net/: يُستخدم عند الاتصال بحساب تخزين غير افتراضي. على سبيل المثال، عندما يكون لديك حساب تخزين إضافي أو عند الوصول إلى البيانات المخزنة في حساب تخزين يمكن الوصول إليه بشكل عام.

عند استخدام Azure Data Lake Storage Gen2، استخدم نظام URI التالي:

  • abfs://: الوصول إلى التخزين الافتراضي باستخدام الاتصالات المشفرة.

  • abfs://<container-name>@<account-name>.dfs.core.windows.net/: يُستخدم عند الاتصال بحساب تخزين غير افتراضي. على سبيل المثال، عندما يكون لديك حساب تخزين إضافي أو عند الوصول إلى البيانات المخزنة في حساب تخزين يمكن الوصول إليه بشكل عام.

عند استخدام Azure Data Lake Storage Gen1، استخدم أحد أنظمة URI التالية:

  • adl:///: الوصول إلى Data Lake Storage الافتراضي لنظام المجموعة.

  • adl://<storage-name>.azuredatalakestore.net/: يُستخدم عند الاتصال بـ Data Lake Storage غير الافتراضي. يُستخدم أيضاً للوصول إلى البيانات خارج الدليل الجذر الخاص بنظام مجموعة HDInsight.

هام

عند استخدام Data Lake Storage كمخزن افتراضي لـ HDInsight، يجب تحديد مسار داخل المخزن لاستخدامه كجذر لتخزين HDInsight. المسار الافتراضي هو /clusters/<cluster-name>/.

عند استخدام / أو adl:/// الوصول إلى البيانات، يمكنك الوصول فقط إلى البيانات المخزنة في الجذر (على سبيل المثال، /clusters/<cluster-name>/) لنظام المجموعة. للوصول إلى البيانات في أي مكان في المخزن، استخدم التنسيق adl://<storage-name>.azuredatalakestore.net/.

ما هو التخزين الذي يستخدمه نظام المجموعة

يمكنك استخدام Ambari لاسترداد تكوين التخزين الافتراضي لنظام المجموعة. استخدم الأمر التالي لاسترداد معلومات تكوين HDFS باستخدام curl، وتصفيتها باستخدام jq:

curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["fs.defaultFS"] | select(. != null)'

إشعار

يقوم هذا الأمر بإرجاع التكوين الأول المُطبق على الخادم (service_config_version=1)، والذي يحتوي على هذه المعلومات. قد تحتاج إلى سرد جميع إصدارات التكوين للبحث عن أحدث إصدار.

يقوم هذا الأمر بإرجاع قيمة مشابهة لمعرفات URI التالية:

  • wasb://<container-name>@<account-name>.blob.core.windows.net إذا كنت تستخدم حساب تخزين Azure.

    يُعد اسم الحساب هو اسم حساب تخزين Azure. يُعد اسم الحاوية هو حاوية الكائن الثنائي كبير الحجم وهو جذر تخزين نظام المجموعة.

  • adl://home عند استخدام Azure Data Lake Storage. للحصول على اسم Data Lake Storage، استخدم استدعاء REST التالي:

    curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.hostname"] | select(. != null)'
    

    يقوم هذا الأمر بإرجاع اسم المضيف التالي: <data-lake-store-account-name>.azuredatalakestore.net.

    للحصول على الدليل داخل المخزن الذي يكون الجذر لـ HDInsight، استخدم استدعاء REST التالي:

    curl -u admin -G "https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/configurations/service_config_versions?service_name=HDFS&service_config_version=1" | jq '.items[].configurations[].properties["dfs.adls.home.mountpoint"] | select(. != null)'
    

    يقوم هذا الأمر بإرجاع مسار مشابه للمسار التالي: /clusters/<hdinsight-cluster-name>/.

يمكنك أيضاً العثور على معلومات التخزين باستخدام مدخل Microsoft Azure باستخدام الخطوات التالية:

  1. من مدخل Microsoft Azure، حدد نظام مجموعة HDInsight.

  2. من قسم الخصائص، حدد حسابات التخزين. يتم عرض معلومات التخزين لنظام المجموعة.

كيف يمكنني الوصول إلى الملفات من خارج HDInsight

هناك طرق مختلفة للوصول إلى البيانات من خارج نظام مجموعة HDInsight. فيما يلي بعض الارتباطات إلى الأدوات المساعدة وعِدد SDK التي يمكن استخدامها للعمل مع البيانات الخاصة بك:

إذا كنت تستخدم تخزين Azure Blob، فراجع الارتباطات التالية لمعرفة الطرق التي يمكنك من خلالها الوصول إلى بياناتك:

  • Azure CLI: أوامر واجهة سطر الأوامر للعمل مع Azure. بعد التثبيت، استخدم الأمر az storage للحصول على تعليمات حول استخدام التخزين، أو az storage blob للأوامر المحددة للكائن الثنائي كبير الحجم.

  • blobxfer.py: البرنامج النصي لـ Python للعمل مع الكائنات الثنائية كبيرة الحجم في تخزين Azure.

  • عِدد SDK المتنوعة:

إذا كنت تستخدم Azure Data Lake Storage Gen1، فراجع الارتباطات التالية لمعرفة الطرق التي يمكنك من خلالها الوصول إلى بياناتك:

تحجيم نظام المجموعة

تسمح لك ميزة تحجيم نظام المجموعة بتغيير عدد عُقد البيانات المستخدمة بشكل كبير من قِبل نظام مجموعة. يمكنك القيام بعمليات التحجيم أثناء تشغيل مهام أو عمليات أخرى على نظام مجموعة. راجع تغيير حجم أنظمة مجموعات HDInsight

كيف يمكنني تثبيت Hue (أو غيرها من مكونات Hadoop)؟

تُعد خدمة HDInsight هي خدمة مُدارة. إذا اكتشف Azure مشكلة في نظام المجموعة، فقد يحذف العقدة التي فشلت وينشئ عقدة لاستبدالها. عند تثبيت الأشياء يدوياً على نظام المجموعة، لا يتم استمرارها عند حدوث هذه العملية. بدلاً من ذلك، استخدم إجراءات البرنامج النصي لـ HDInsight. يمكن استخدام إجراء البرنامج النصي لإجراء التغييرات التالية:

  • تثبيت وتكوين خدمة أو موقع ويب.
  • تثبيت وتكوين مكوّن يتطلب تغييرات التكوين على عُقد متعددة في نظام المجموعة.

إجراءات البرنامج النصي هي برامج Bash النصية. يتم تشغيل البرامج النصية أثناء إنشاء نظام المجموعة، وتُستخدم لتثبيت وتكوين مكونات إضافية. للحصول على معلومات حول تطوير "إجراءات البرنامج النصي" الخاصة بك، راجع تطوير "إجراء البرنامج النصي" باستخدام HDInsight.

ملفات Jar

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

على سبيل المثال، إذا كنت ترغب في استخدام أحدث إصدار من Apache DataFu، يمكنك تنزيل jar يحتوي على المشروع وتحميله إلى نظام مجموعة HDInsight. ثم اتبع وثائق DataFu حول كيفية استخدامه من Pig أو Apache Hive.

هام

يتم توفير بعض المكونات التي تكون ملفات jar مستقلة مع HDInsight، ولكن ليست في المسار. إذا كنت تبحث عن مكوّن معين، يمكنك استخدام المتابعة للبحث عنه على نظام المجموعة الخاص بك:

find / -name *componentname*.jar 2>/dev/null

يقوم هذا الأمر بإرجاع مسار أي ملفات jar مطابقة.

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

هام

يتم دعم المكونات المتوفرة مع نظام مجموعة HDInsight بشكل كامل ويساعد دعم Microsoft على عزل وحل المشكلات المتعلقة بهذه المكونات.

تتلقى المكونات المخصصة دعمًا تجاريًا معقولاً لمساعدتك على استكشاف المشكلة وإصلاحها بشكل أكبر. قد يؤدي ذلك إلى حل المشكلة OR أو يطلب منك إشراك القنوات المتاحة لتقنيات المصدر المفتوح حيث توجد خبرة عميقة لتلك التكنولوجيا. على سبيل المثال، هناك العديد من المواقع المجتمعية التي يمكن استخدامها، مثل: صفحة أسئلة Microsoft Q&A لـ HDInsight ، https://stackoverflow.com. تحتوي مشاريع Apache أيضاً على مواقع المشروع على https://apache.org، على سبيل المثال: Hadoop، Spark.

الخطوات التالية