بداية سريعة: الاستعلام عن Apache HBase في Azure HDInsight باستخدام Apache Phoenix

في هذه البداية السريعة، تتعلم كيفية استخدام Apache Phoenix لتشغيل استعلامات HBase في Azure HDInsight. يعد Apache Phoenix محرك استعلام SQL من أجل Apache HBase. يتم الوصول إليه كبرنامج تشغيل JDBC، ويتيح الاستعلام عن جداول HBase وإدارتها باستخدام SQL. SQLLine أداة مساعدة سطر الأوامر لتنفيذ SQL.

إذا لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

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

تحديد عقدة ZooKeeper

عند الاتصال بمجموعة HBase، تحتاج إلى الاتصال بإحدى عقد Apache ZooKeeper. تحتوي كل مجموعة HDInsight على ثلاث عقد ZooKeeper. يمكن استخدام Curl لتحديد عقدة ZooKeeper بسرعة. قم بتحرير أمر curl أدناه عن طريق استبدال PASSWORD وCLUSTERNAME بالقيم ذات الصلة ثم إدخال الأمر في موجه أوامر:

curl -u admin:PASSWORD -sS -G https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER

سيبدو جزء من الإخراج مشابهاً لما يلي:

    {
      "href" : "http://hn*.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net:8080/api/v1/clusters/myCluster/hosts/<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net/host_components/ZOOKEEPER_SERVER",
      "HostRoles" : {
        "cluster_name" : "myCluster",
        "component_name" : "ZOOKEEPER_SERVER",
        "host_name" : "<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net"
      }

قم بتدوين قيمة host_name لاستخدامها في وقت لاحق.

إنشاء جدول ومعالجة البيانات

يمكنك استخدام SSH للاتصال بأنظمة المجموعات المترابطة HBase ثم استخدم Apache Phoenix لإنشاء جداول HBase وإدراج البيانات وبيانات الاستعلام.

  1. استخدم الأمر ssh للاتصال بنظام مجموعة HBase الخاصة بك. تحرير الأمر أدناه عن طريق استبدال CLUSTERNAME باسم نظام مجموعتك ثم إدخال الأمر:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. غيّر الدليل إلى عميل Phoenix. أدخل الأمر التالي:

    cd /usr/hdp/current/phoenix-client/bin
    
  3. قم بتشغيل SQLLine. تحرير الأمر أدناه عن طريق استبدال ZOOKEEPER بعقدة ZooKeeper المحددة سابقاً ثم إدخال الأمر:

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. قم بإنشاء جدول HBase. أدخل الأمر التالي:

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. استخدم أمر SQLLine !tables لسرد كافة الجداول في HBase. أدخل الأمر التالي:

    !tables
    
  6. قم بإدراج قيم في الجدول. أدخل الأمر التالي:

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. الاستعلام عن الجدول. أدخل الأمر التالي:

    SELECT * FROM Company;
    
  8. حذف سجل. أدخل الأمر التالي:

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. قم بإسقاط الجدول. أدخل الأمر التالي:

    DROP TABLE Company;
    
  10. استخدم أمر SQLLine !quit للخروج من SQLLine. أدخل الأمر التالي:

    !quit
    

تنظيف الموارد

قد تحتاج إلى حذف نظام المجموعة بعد استكمال البداية السريعة. مع HDInsight، يتم تخزين بياناتك في تخزين Azure، بحيث يمكنك حذف مجموعة ما بأمان عندما لا تكون قيد الاستخدام. كما أنك تحاسب على مجموعة HDInsight، حتى عندما لا تكون قيد الاستخدام. وبما أن رسوم نظام المجموعة تزيد عدة أضعاف عن رسوم التخزين، فمن المنطقي اقتصادياً حذف نظام المجموعات عندما لا تكون قيد الاستخدام.

لحذف نظام المجموعة، راجع حذف نظام مجموعة HDInsight باستخدام متصفحك أو PowerShell أوAzure CLI .

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

في هذه البداية السريعة، تعلمت كيفية استخدام Apache Phoenix لتشغيل استعلامات HBase في Azure HDInsight. لمعرفة المزيد عن Apache Phoenix، فإن المقالة التالية تقدم نظرة أعمق.