الاتصال بـ HiveServer2 باستخدام Beeline أو تثبيت Beeline محليًا للاتصال من جهازك المحلي

Apache Beeline هو عميل Apache Hive مضمن في العقد الرئيسية لمجموعة HDInsight الخاصة بك. توضح هذه المقالة كيفية الاتصال بـ HiveServer2 باستخدام عميل Beeline المثبت على مجموعة HDInsight عبر أنواع مختلفة من الاتصالات. كما يناقش أيضاً كيفية تثبيت عميل Beeline محلياً.

أنواع الاتصالات

من جلسة SSH

عند الاتصال من جلسة SSH بالعقد الرئيسي لنظام المجموعة، يمكنك بعد ذلك الاتصال بالعنوان headnodehost الموجود على المنفذ 10001:

beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'

عبر Azure Virtual Network

عند الاتصال من عميل بـ HDInsight عبر Azure Virtual Network، يجب توفير اسم المجال المؤهل بالكامل (FQDN) لعقدة رأس نظام المجموعة. نظراً لأن هذا الاتصال يتم مباشرة إلى عقد المجموعة، فإن الاتصال يستخدم المنفذ 10001:

beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/;transportMode=http'

استبدل <headnode-FQDN>باسم المجال المؤهل بالكامل للعقد الرئيسي للمجموعة. للعثور على اسم المجال المؤهل بالكامل للعقد الرئيسي، استخدم المعلومات الواردة في مستند إدارة HDInsight باستخدام Apache Ambari REST API .

إلى مجموعة HDInsight Enterprise Security Package (ESP) باستخدام Kerberos

عند الاتصال من عميل بمجموعة حزمة أمان المؤسسة (ESP) المنضمة إلى Microsoft Entra Domain Services على جهاز في نفس نطاق المجموعة، يجب عليك أيضا تحديد اسم <AAD-Domain> المجال واسم حساب مستخدم المجال مع أذونات للوصول إلى نظام المجموعة <username>:

kinit <username>
beeline -u 'jdbc:hive2://<headnode-FQDN>:10001/default;principal=hive/_HOST@<AAD-Domain>;auth-kerberos;transportMode=http' -n <username>

استبدل <username> باسم حساب على المجال بأذونات للوصول إلى نظام المجموعة. استبدل <AAD-DOMAIN> باسم معرف Microsoft Entra الذي تم ضم نظام المجموعة إليه. استخدم سلسلة أحرف كبيرة لقيمة <AAD-DOMAIN>، وإلا فلن يتم العثور على بيانات الاعتماد. حدد /etc/krb5.conf بحثاً عن أسماء المجالات إذا لزم الأمر.

للعثور على عنوان URL لـ JDBC من Ambari:

  1. من متصفح ويب، انتقل إلى https://CLUSTERNAME.azurehdinsight.net/#/main/services/HIVE/summary، حيث CLUSTERNAME هو اسم نظام المجموعة. تأكد من تشغيل HiveServer2.

  2. استخدم الحافظة لنسخ HiveServer2 JDBC URL.

على نقاط النهاية العامة أو الخاصة

عند الاتصال بمجموعة باستخدام نقاط النهاية العامة أو الخاصة، يجب توفير اسم حساب تسجيل الدخول إلى المجموعة (الافتراضي admin) وكلمة المرور. على سبيل المثال، استخدام Beeline من نظام عميل للاتصال بالعنوان clustername.azurehdinsight.net. يتم إجراء هذا الاتصال عبر المنفذ 443، ويتم تشفيره باستخدام TLS/SSL.

استبدل clustername باسم مجموعة HDInsight الخاصة بك. استبدل admin بحساب تسجيل الدخول إلى نظام المجموعة الخاص بك. بالنسبة لمجموعات ​​ESP، استخدم UPN الكامل (على سبيل المثال، user@domain.com). استبدل password بكلمة المرور لحساب تسجيل الدخول إلى المجموعة.

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

أو لنقطة نهاية خاصة:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/hive2' -n admin -p 'password'

تشير نقاط النهاية الخاصة إلى موازن تحميل أساسي، والذي لا يمكن الوصول إليه إلا من شبكات VNET الموجودة في نفس المنطقة. راجع القيود المفروضة على نظير VNet العالمي وموازن التحميل لمزيد من المعلومات. يمكنك استخدام خيار curlالأمر مع -vلاستكشاف أي مشكلات في الاتصال بنقاط النهاية العامة أو الخاصة وإصلاحها قبل استخدام Beeline.

استخدم Beeline مع Apache Spark

يوفر Apache Spark تطبيقه الخاص لـ HiveServer2، والذي يشار إليه أحياناً باسم خادم Spark Thrift. تستخدم هذه الخدمة Spark SQL لحل الاستعلامات بدلاً من Apache Hive. وقد يوفر أداءً أفضل بناءً على استعلامك.

من خلال نقاط النهاية العامة أو الخاصة

سلسلة الاتصال المستخدمة مختلفة قليلاً. بدلاً من احتواء httpPath=/hive2فإنه يستخدم httpPath/sparkhive2. استبدل clustername باسم مجموعة HDInsight الخاصة بك. استبدل admin بحساب تسجيل الدخول إلى نظام المجموعة الخاص بك. استبدل password بكلمة المرور لحساب تسجيل الدخول إلى المجموعة.

إشعار

بالنسبة لمجموعات ESP، استبدل admin بـ UPN الكامل (على سبيل المثال، user@domain.com).

beeline -u 'jdbc:hive2://clustername.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

أو لنقطة نهاية خاصة:

beeline -u 'jdbc:hive2://clustername-int.azurehdinsight.net:443/;ssl=true;transportMode=http;httpPath=/sparkhive2' -n admin -p 'password'

تشير نقاط النهاية الخاصة إلى موازن تحميل أساسي، والذي لا يمكن الوصول إليه إلا من شبكات VNET الموجودة في نفس المنطقة. راجع القيود المفروضة على نظير VNet العالمي وموازن التحميل لمزيد من المعلومات. يمكنك استخدام خيار curlالأمر مع -vلاستكشاف أي مشكلات في الاتصال بنقاط النهاية العامة أو الخاصة وإصلاحها قبل استخدام Beeline.

من عقدة رأس المجموعة أو داخل Azure Virtual Network مع Apache Spark

عند الاتصال مباشرة من عقدة رأس المجموعة، أو من مورد داخل نفس Azure Virtual Network مثل مجموعة HDInsight، يجب استخدام المنفذ 10002 لخادم Spark Thrift بدلاً من 10001. يوضح المثال التالي كيفية الاتصال مباشرة بالعقدة الرئيسية:

/usr/hdp/current/spark2-client/bin/beeline -u 'jdbc:hive2://headnodehost:10002/;transportMode=http'

تثبيت عميل Beeline

على الرغم من تضمين Beeline في العقد الرئيسية، فقد ترغب في تثبيته محلياً. تعتمد خطوات التثبيت للجهاز المحلي على نظام Windows الفرعي لـ Linux‬.

  1. تحديث قوائم الحزم. أدخل الأمر التالي في غلاف bash الخاص بك:

    sudo apt-get update
    
  2. قم بتثبيت Java إذا لم تكن مثبتة. يمكنك التحقق من الأمر which java.

    1. إذا لم يتم تثبيت حزمة جافا، أدخل الأمر التالي:

      sudo apt install openjdk-11-jre-headless
      
    2. افتح ملف bashrc (غالباً ما يوجد في ~/.bashrc): nano ~/.bashrc.

    3. تعديل ملف bashrc. أضف السطر التالي في نهاية الملف:

      export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
      

      ثم اضغط على Ctrl+X، ثم Y، ثم Enter.

  3. قم بتنزيل أرشيفات Hadoop وBeeline، أدخل الأوامر التالية:

    wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz
    wget https://archive.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
    
  4. قم بفك ضغط الأرشيف، أدخل الأوامر التالية:

    tar -xvzf hadoop-2.7.3.tar.gz
    tar -xvzf apache-hive-1.2.1-bin.tar.gz
    
  5. مزيد من تعديل ملف bashrc. ستحتاج إلى تحديد المسار إلى حيث تم تفريغ الأرشيف. إذا كنت تستخدم نظام Windows الفرعي لـ Linux‬، واتبعت الخطوات بدقة، فسيكون مسارك هو /mnt/c/Users/user/، حيث user هو اسم المستخدم الخاص بك.

    1. افتح الملف: nano ~/.bashrc

    2. قم بتعديل الأوامر أدناه بالمسار المناسب ثم أدخلها في نهاية ملف bashrc:

      export HADOOP_HOME=/path_where_the_archives_were_unpacked/hadoop-2.7.3
      export HIVE_HOME=/path_where_the_archives_were_unpacked/apache-hive-1.2.1-bin
      PATH=$PATH:$HIVE_HOME/bin
      
    3. ثم اضغط على Ctrl+X، ثم Y، ثم Enter.

  6. أغلق جلسة bash ثم أعد فتحها.

  7. اختبر اتصالك. استخدم تنسيق الاتصال من عبر نقاط النهاية العامة أو الخاصة أعلاه.

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