Trino CLI

هام

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

يوفر Trino CLI ل HDInsight على AKS shell تفاعليا يستند إلى المحطة الطرفية لتشغيل الاستعلامات.

التثبيت على Windows

بالنسبة إلى Windows، يتم تثبيت Trino CLI ل HDInsight على AKS عبر MSI، والذي يمنحك حق الوصول إلى CLI من خلال موجه أوامر Windows (CMD) أو PowerShell. عند التثبيت ل نظام Windows الفرعي لـ Linux‬ (WSL)، راجع التثبيت على Linux.

المتطلبات

  • Java 8 أو 11.

  • أضف java.exe إلى PATH أو حدد متغير بيئة JAVA_HOME يشير إلى دليل تثبيت JRE، مثل الموجود %JAVA_HOME%\bin\java.exe .

التثبيت أو التحديث

يتم استخدام حزمة MSI لتثبيت أو تحديث Trino CLI ل HDInsight على AKS على Windows.

قم بتنزيل وتثبيت أحدث إصدار من Trino CLI. عندما يسأل المثبت ما إذا كان يمكنه إجراء تغييرات على الكمبيوتر، انقر فوق المربع "نعم". بعد اكتمال التثبيت، ستحتاج إلى إغلاق وإعادة فتح أي نوافذ نشطة من موجه أوامر Windows أو PowerShell لاستخدام Trino CLI.

تنزيل Trino CLI: https://aka.ms/InstallTrinoCLIWindows

تشغيل Trino CLI

يمكنك الآن تشغيل Trino CLI باستخدام "trino-cli" في موجه الأوامر، والاتصال بالمجموعة:

trino-cli --server <cluster_endpoint>

إشعار

إذا قمت بتشغيل على نظام التشغيل بدون رأس (لا يوجد مستعرض ويب)، فسيطالب Trino CLI باستخدام رمز الجهاز للمصادقة. يمكنك أيضا تحديد معلمة --auth AzureDeviceCode سطر الأوامر لفرض استخدام التعليمات البرمجية للجهاز. في هذه الحالة، تحتاج إلى فتح مستعرض على جهاز/نظام تشغيل آخر، وإدخال التعليمات البرمجية المعروضة والمصادقة، ثم العودة إلى CLI.

استكشاف الأخطاء وإصلاحها

فيما يلي بعض المشاكل الشائعة التي تظهر عند تثبيت Trino CLI على Windows.

حظر الوكيل الاتصال

إذا لم تتمكن من تنزيل مثبت MSI لأن الوكيل الخاص بك يمنع الاتصال، فتأكد من تكوين الوكيل الخاص بك بشكل صحيح. بالنسبة إلى Windows 10، تتم إدارة هذه الإعدادات في جزء الإعدادات > Network وInternet > Proxy. اتصل بمسؤول النظام للحصول على الإعدادات المطلوبة، أو للحالات التي قد يكون فيها جهازك مدارا للتكوين أو يتطلب إعدادا متقدما.

للحصول على MSI، يحتاج الوكيل الخاص بك إلى السماح باتصالات HTTPS بالعناوين التالية:

  • https://aka.ms/
  • https://hdionaksresources.blob.core.windows.net/

إزالة تثبيت

يمكنك إلغاء تثبيت Trino CLI من قائمة "التطبيقات والميزات" في Windows. لإلغاء التثبيت:

النظام الأساسي الإرشادات
Windows 10 بدء تشغيل > تطبيق الإعدادات >
Windows 8 وWindows 7 بدء > لوحة التحكم > البرامج > إلغاء تثبيت برنامج

بمجرد الوصول إلى هذه الشاشة، اكتب Trino في شريط بحث البرنامج. برنامج إلغاء التثبيت هو قائمة باسم "إصدار> HDInsight Trino CLI<." حدد هذا التطبيق، ثم انقر فوق الزر إلغاء التثبيت.

التثبيت على Linux

يوفر Trino CLI shell تفاعليا يستند إلى المحطة الطرفية لتشغيل الاستعلامات. يمكنك تثبيت Trino CLI يدويا على Linux عن طريق تحديد خيار تثبيت البرنامج النصي.

المتطلبات

  • Java 8 أو 11.

  • أضف java إلى PATH أو حدد متغير بيئة JAVA_HOME يشير إلى دليل تثبيت JRE، مثل $JAVA_HOME/bin/java موجود.

التثبيت أو التحديث

يتطلب كل من تثبيت وتحديث CLI إعادة تشغيل البرنامج النصي التثبيت. قم بتثبيت CLI عن طريق تشغيل curl.

curl -L https://aka.ms/InstallTrinoCli | bash

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

تشغيل Trino CLI

يمكنك الآن تشغيل Trino CLI باستخدام الأمر "trino-cli" من shell، والاتصال بالمجموعة:

trino-cli --server <cluster_endpoint>

إشعار

إذا قمت بتشغيل على نظام التشغيل بدون رأس (لا يوجد مستعرض ويب) سيطالب Trino CLI باستخدام رمز الجهاز للمصادقة. يمكنك أيضا تحديد معلمة --auth AzureDeviceCode سطر الأوامر لفرض استخدام التعليمات البرمجية للجهاز. في هذه الحالة تحتاج إلى فتح مستعرض على جهاز/نظام تشغيل آخر، وإدخال التعليمات البرمجية المعروضة والمصادقة، ثم العودة إلى CLI.

استكشاف الأخطاء وإصلاحها

فيما يلي بعض المشاكل الشائعة التي تظهر أثناء التثبيت اليدوي.

خطأ curl "Object Moved"

إذا تلقيت خطأ من curl متعلقا بالمعلمة -L، أو رسالة خطأ تتضمن النص "Object Moved"، يحاول استخدام عنوان URL الكامل بدلا من إعادة توجيه aka.ms:

curl https://hdionaksresources.blob.core.windows.net/trino/cli/install.sh | bash

لم يتم العثور على أمر trino-cli

hash -r

يمكن أن تحدث المشكلة أيضا إذا لم تقم بإعادة تشغيل shell بعد التثبيت. تأكد من أن موقع أمر trino-cli ($HOME/bin) موجود في $PATH.

حظر الوكيل الاتصال

للحصول على البرامج النصية للتثبيت، يحتاج الوكيل الخاص بك إلى السماح باتصالات HTTPS بالعناوين التالية:

  • https://aka.ms/
  • https://hdionaksresources.blob.core.windows.net/

الغاء تثبيت

لإزالة جميع ملفات trino-cli، قم بتشغيل:

rm $HOME/bin/trino-cli
rm -r $HOME/lib/trino-cli

المصادقة

يدعم Trino CLI أساليب مختلفة لمصادقة Microsoft Entra باستخدام معلمات سطر الأوامر. يصف الجدول التالي المعلمات الهامة وأساليب المصادقة، لمزيد من المعلومات، راجع المصادقة.

وصف المعلمات المتوفر في CLI أيضا:

trino-cli --help
المعلمة‬ المعنى المطلوب ‏‏الوصف
المصادقة اسم أسلوب المصادقة لا تحديد كيفية توفير بيانات اعتماد المستخدم. إذا لم يتم تحديده، يستخدم AzureDefault.
azure-client معرف العميل نعم ل AzureClientSecret, AzureClientCertificate. معرف العميل لمدير/تطبيق الخدمة.
مستأجر azure معرف المستأجر نعم ل AzureClientSecret, AzureClientCertificate. معرف مستأجر Microsoft Entra.
azure-certificate-path مسار الملف إلى الشهادة نعم ل AzureClientCertificate. المسار إلى ملف pfx/pem مع شهادة.
azure-use-token-cache استخدام ذاكرة التخزين المؤقت للرمز المميز أم لا لا إذا تم توفيره، يتم تخزين الرمز المميز للوصول مؤقتا وإعادة استخدامه في AzureDefault, AzureInteractive, AzureDeviceCode الأوضاع.
azure-scope نطاق الرمز المميز لا سلسلة نطاق Microsoft Entra لطلب رمز مميز باستخدامه.
استخدام رمز الجهاز استخدام أسلوب التعليمات البرمجية للجهاز أم لا لا معادل لـ --auth AzureDeviceCode.
كلمة المرور سر العميل لمدير الخدمة نعم ل AzureClientSecret. البيانات السرية/كلمة المرور لمدير الخدمة عند استخدام AzureClientSecret الوضع.
الرمز المميز للوصول الرمز المميز للوصول إلى JWT لا إذا تم الحصول على رمز الوصول المميز خارجيا، يمكن توفيره باستخدام هذه المعلمة. في هذه الحالة، auth المعلمة غير مسموح بها.

الأمثلة

‏‏الوصف أمر CLI
AzureDefault trino-cli --server cluster1.pool1.region.projecthilo.net
مصادقة المستعرض التفاعلية trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive
استخدام ذاكرة التخزين المؤقت للرمز المميز trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureInteractive --azure-use-token-cache
كيان الخدمة مع بيانات سرية trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureClientSecret --azure-client 11111111-1111-1111-1111-111111111111 --azure-tenant 11111111-1111-1111-1111-111111111111 --password
كيان الخدمة والشهادة المحمية (تتم مطالبة كلمة المرور) trino-cli --server cluster1.pool1.region1.projecthilo.net --auth AzureClientCertificate --azure-client 11111111-1111-1111-1111-111111111111 --azure-certificate-path d:\tmp\cert.pfx --azure-tenant 11111111-1111-1111-1111-111111111111 --password

استكشاف الأخطاء وإصلاحها

MissingAccessToken أو InvalidAccessToken

يظهر CLI أي من الأخطاء:

Error running command: Authentication failed: {
  "code": "MissingAccessToken",
  "message": "Unable to find the token or get the required claims from it."
}
Error running command: Error starting query at https://<cluster-endpoint>/v1/statement returned an invalid response: JsonResponse{statusCode=500, statusMessage=, headers={content-type=[application/json; charset=utf-8], date=[Fri, 16 Jun 2023 18:25:23 GMT], strict-transport-security=[max-age=15724800; includeSubDomains]}, hasValue=false} [Error: {
  "code": "InvalidAccessToken",
  "message": "Unable to find the token or get the required claims from it"
}]

لحل المشكلة، جرب الخطوات التالية:

  1. قم بإنهاء Trino CLI.
  2. شغّل az logout
  3. شغّل az login -t <your-trino-cluster-tenantId>
  4. الآن يجب أن يعمل هذا الأمر:
trino-cli --server <cluster-endpoint>
  1. بدلا من ذلك، حدد معلمات المصادقة/المستأجر:
trino-cli --server <cluster-endpoint> --auth AzureInteractive --azure-tenant <trino-cluster-tenantId>

403 محظور

يظهر CLI خطأ:

Error running command: Error starting query at  https://<cluster-endpoint>/v1/statement returned an invalid response: JsonResponse{statusCode=403, statusMessage=, headers={content-length=[146], content-type=[text/html], date=[Wed, 25 May 2023 16:49:24 GMT], strict-transport-security=[max-age=15724800; includeSubDomains]}, hasValue=false} [Error: <html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>
]

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