Kitaplıklar API 2.0

Kitaplıklar API'si, kitaplıkları yükleyip kaldırmanıza ve kümedeki kitaplıkların durumunu almanıza olanak tanır.

Önemli

Databricks REST API’lerine erişmek için kimlik doğrulaması yapmanız gerekir.

Tüm küme durumları

Uç Nokta HTTP Yöntemi
2.0/libraries/all-cluster-statuses GET

Tüm kümelerdeki tüm kitaplıkların durumunu alın. API veya kitaplıklar kullanıcı arabirimi aracılığıyla kümelere yüklenen tüm kitaplıkların yanı sıra kitaplıklar kullanıcı arabirimi aracılığıyla tüm kümelere yüklenecek şekilde ayarlanmış kitaplıklar için bir durum kullanılabilir. Bir kitaplık tüm kümelere yüklenecek şekilde ayarlandıysa, is_library_for_all_clusterstruekitaplık bu kümeye de yüklenmiş olsa bile olacaktır.

Örnek

İstek

curl --netrc --request GET \
https://<databricks-instance>/api/2.0/libraries/all-cluster-statuses \
| jq .

değerini, örneğin adb-1234567890123456.7.azuredatabricks.netAzure Databricks çalışma alanı örneği adıyla değiştirin<databricks-instance>.

Bu örnekte bir .netrc dosyası ve jq kullanılmıştır.

Yanıt

{
  "statuses": [
    {
      "cluster_id": "11203-my-cluster",
      "library_statuses": [
        {
          "library": {
            "jar": "dbfs:/mnt/libraries/library.jar"
          },
          "status": "INSTALLING",
          "messages": [],
          "is_library_for_all_clusters": false
        }
      ]
    },
    {
      "cluster_id": "20131-my-other-cluster",
      "library_statuses": [
        {
          "library": {
            "egg": "dbfs:/mnt/libraries/library.egg"
          },
          "status": "ERROR",
          "messages": ["Could not download library"],
          "is_library_for_all_clusters": false
        }
      ]
    }
  ]
}

Yanıt yapısı

Alan Adı Tür Description
Durum ClusterLibraryStatuses dizisi Küme durumlarının listesi.

Küme durumu

Uç Nokta HTTP Yöntemi
2.0/libraries/cluster-status GET

Kümedeki kitaplıkların durumunu alma. API veya kitaplıklar kullanıcı arabirimi aracılığıyla kümeye yüklenen tüm kitaplıklar ve kitaplıklar kullanıcı arabirimi aracılığıyla tüm kümelere yüklenecek şekilde ayarlanmış kitaplıklar için bir durum kullanılabilir. Bir kitaplık tüm kümelere yüklenecek şekilde ayarlandıysa, is_library_for_all_clusterstruekitaplık kümeye de yüklenmiş olsa bile olacaktır.

Örnek

İstek

curl --netrc --request GET \
'https://<databricks-instance>/api/2.0/libraries/cluster-status?cluster_id=<cluster-id>' \
| jq .

Veya:

curl --netrc --get \
https://<databricks-instance>/api/2.0/libraries/cluster-status \
--data cluster_id=<cluster-id> \
| jq .

Değiştir:

  • <databricks-instance>örneğin, Azure Databricks çalışma alanı örneği adıylaadb-1234567890123456.7.azuredatabricks.net.
  • <cluster-id> örneğin, 1234-567890-example123kümenin Azure Databricks çalışma alanı kimliğiyle.

Bu örnekte bir .netrc dosyası ve jq kullanılmıştır.

Yanıt

{
  "cluster_id": "11203-my-cluster",
  "library_statuses": [
    {
      "library": {
        "jar": "dbfs:/mnt/libraries/library.jar"
      },
      "status": "INSTALLED",
      "messages": [],
      "is_library_for_all_clusters": false
    },
    {
      "library": {
        "pypi": {
          "package": "beautifulsoup4"
        },
      },
      "status": "INSTALLING",
      "messages": ["Successfully resolved package from PyPI"],
      "is_library_for_all_clusters": false
    },
    {
      "library": {
        "cran": {
          "package": "ada",
          "repo": "https://cran.us.r-project.org"
        },
      },
      "status": "FAILED",
      "messages": ["R package installation is not supported on this spark version.\nPlease upgrade to Runtime 3.2 or higher"],
      "is_library_for_all_clusters": false
    }
  ]
}

İstek yapısı

Alan Adı Tür Description
cluster_id STRING Durumu alınması gereken kümenin benzersiz tanımlayıcısı. Bu alan gereklidir.

Yanıt yapısı

Alan Adı Tür Description
cluster_id STRING Kümenin benzersiz tanımlayıcısı.
library_statuses LibraryFullStatus dizisi Kümedeki tüm kitaplıkların durumu.

Yüklemek

Uç Nokta HTTP Yöntemi
2.0/libraries/install POST

Kitaplıkları bir kümeye yükleyin. Yükleme zaman uyumsuzdur; istek sonrasında arka planda tamamlanır.

Önemli

Küme sonlandırılırsa bu çağrı başarısız olur.

Bir kümeye tekerlek kitaplığı yüklemek, komutu doğrudan sürücü ve yürütücülerde tekerlek dosyasında çalıştırmaya pip benzer. Kitaplık setup.py dosyasında belirtilen tüm bağımlılıklar yüklenir ve bunun için tekerlek dosyası adı kuralını karşılamak için kitaplık adı gerekir.

Yürütücülere yükleme yalnızca yeni bir görev başlatıldığında gerçekleşir. Databricks Runtime 7.1 ve altında kitaplıkların yükleme sırası belirleyici değildir. Tekerlek kitaplıkları için, tüm tekerlek dosyalarını içeren sonekli .wheelhouse.zip bir zip dosyası oluşturarak belirlenebilir bir yükleme sırası sağlayabilirsiniz.

Örnek

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/libraries/install \
--data @install-libraries.json

install-libraries.json:

{
  "cluster_id": "10201-my-cluster",
  "libraries": [
    {
      "jar": "dbfs:/mnt/libraries/library.jar"
    },
    {
      "egg": "dbfs:/mnt/libraries/library.egg"
    },
    {
      "whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
    },
    {
      "whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
    },
    {
      "maven": {
        "coordinates": "org.jsoup:jsoup:1.7.2",
        "exclusions": ["slf4j:slf4j"]
      }
    },
    {
      "pypi": {
        "package": "simplejson",
        "repo": "https://my-pypi-mirror.com"
      }
    },
    {
      "cran": {
        "package": "ada",
        "repo": "https://cran.us.r-project.org"
      }
    }
  ]
}

Değiştir:

  • <databricks-instance>örneğin, Azure Databricks çalışma alanı örneği adıylaadb-1234567890123456.7.azuredatabricks.net.
  • çözümünüz için uygun olan alanlarla içeriğini install-libraries.json .

Bu örnekte bir .netrc dosyası kullanılır.

İstek yapısı

Alan Adı Tür Description
cluster_id STRING Bu kitaplıkların yükleneceği kümenin benzersiz tanımlayıcısı. Bu alan gereklidir.
kitaplıklar Kitaplık dizisi Yüklenecek kitaplıklar.

Kaldırmak

Uç Nokta HTTP Yöntemi
2.0/libraries/uninstall POST

Bir kümede kaldırılacak kitaplıkları ayarlayın. Küme yeniden başlatılana kadar kitaplıklar kaldırılamaz. Kümede yüklü olmayan kitaplıkların kaldırılmasının hiçbir etkisi yoktur ancak bu bir hata değildir.

Örnek

curl --netrc --request POST \
https://<databricks-instance>/api/2.0/libraries/uninstall \
--data @uninstall-libraries.json

uninstall-libraries.json:

{
  "cluster_id": "10201-my-cluster",
  "libraries": [
    {
      "jar": "dbfs:/mnt/libraries/library.jar"
    },
    {
      "cran": "ada"
    }
  ]
}

Değiştir:

  • <databricks-instance>örneğin, Azure Databricks çalışma alanı örneği adıylaadb-1234567890123456.7.azuredatabricks.net.
  • çözümünüz için uygun olan alanlarla içeriğini uninstall-libraries.json .

Bu örnekte bir .netrc dosyası kullanılır.

İstek yapısı

Alan Adı Tür Description
cluster_id STRING Bu kitaplıkların kaldırıldığı küme için benzersiz tanımlayıcı. Bu alan gereklidir.
kitaplıklar Kitaplık dizisi Kaldıracak kitaplıklar.

Veri yapıları

Bu bölümdeki konular:

ClusterLibraryStatuses

Alan Adı Tür Description
cluster_id STRING Kümenin benzersiz tanımlayıcısı.
library_statuses LibraryFullStatus dizisi Kümedeki tüm kitaplıkların durumu.

Kitaplığı

Alan Adı Tür Description
jar VEYA yumurta VEYA whl VEYA pypi YA DA maven OR cran STRING VEYA STRING VEYA STRINGPythonPyPiLibrary VEYA MavenLibrary VEYA RCranLibrary Jar ise, jar dosyasının URI'sinin yüklenmesi gerekir. DBFS ve ADLS (abfss) URI'leri desteklenir. Örneğin: { "jar": "dbfs:/mnt/databricks/library.jar" } veya
{ "jar": "abfss://my-bucket/library.jar" }. ADLS kullanılıyorsa, kümenin kitaplıkta okuma erişimi olduğundan emin olun.

Yumurta ise, yumurtanın URI'sinin yüklenmesi gerekir. DBFS ve ADLS URL'leri desteklenir. Örneğin: { "egg": "dbfs:/my/egg" } veya
{ "egg": "abfss://my-bucket/egg" }.

Whl ise, tekerleğin URI'sinin veya sıkıştırılmış tekerleklerin yüklenmesi gerekir. DBFS ve ADLS URL'leri desteklenir. Örneğin: { "whl": "dbfs:/my/whl" } veya
{ "whl": "abfss://my-bucket/whl" }. ADLS kullanılıyorsa, kümenin kitaplıkta okuma erişimi olduğundan emin olun. Ayrıca tekerlek dosyası adının doğru kuralı kullanması gerekir. Sıkıştırılmış tekerlekler yüklenecekse, dosya adı soneki olmalıdır .wheelhouse.zip.

pypi ise, yüklenecek bir PyPI kitaplığı belirtimi. Alanı belirtmek repo isteğe bağlıdır ve belirtilmezse varsayılan pip dizini kullanılır. Örneğin:
{ "package": "simplejson", "repo": "https://my-repo.com" }

Maven ise, yüklenecek bir Maven kitaplığı belirtimi. Örneğin:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

Cran ise, yüklenecek bir CRAN kitaplığı belirtimi.

LibraryFullStatus

Belirli bir kümedeki kitaplığın durumu.

Alan Adı Tür Description
kitaplık Kitaplığı Kitaplığın benzersiz tanımlayıcısı.
durum LibraryInstallStatus Kümeye kitaplığı yükleme durumu.
sayısı Bir dizi STRING Bu kitaplık için şimdiye kadar gerçekleşen tüm bilgi ve uyarı iletileri.
is_library_for_all_clusters BOOL Kitaplığın kitaplık kullanıcı arabirimi aracılığıyla tüm kümelere yüklenecek şekilde ayarlanıp ayarlanmadığı.

MavenLibrary

Alan Adı Tür Description
koordinatlar STRING Gradle stili Maven koordinatları. Örneğin: org.jsoup:jsoup:1.7.2. Bu alan gereklidir.
Repo STRING Maven paketinin yükleneceği Maven deposu. Atlanırsa, hem Maven Central Deposu hem de Spark Paketleri aranır.
Dışlamalar Bir dizi STRING Dışlanması gereken bağımlılıkların listesi. Örneğin: ["slf4j:slf4j", "*:hadoop-client"].

Maven bağımlılık dışlamaları: https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html.

PythonPyPiLibrary

Alan Adı Tür Description
package STRING Yüklenecek PyPI paketinin adı. İsteğe bağlı tam sürüm belirtimi de desteklenir. Örnekler: simplejson ve simplejson==3.8.0. Bu alan gereklidir.
Repo STRING Paketin bulunabileceği depo. Belirtilmezse, varsayılan pip dizini kullanılır.

RCranLibrary

Alan Adı Tür Description
package STRING Yüklenecek CRAN paketinin adı. Bu alan gereklidir.
Repo STRING Paketin bulunabileceği depo. Belirtilmezse, varsayılan CRAN deposu kullanılır.

LibraryInstallStatus

Belirli bir kümedeki kitaplığın durumu.

Durum Açıklama
PENDING Kitaplığı yüklemek için henüz hiçbir işlem yapılmadı. Bu durum çok kısa ömürlü olmalıdır.
ÇÖZME Kitaplığı yüklemek için gereken meta veriler, sağlanan depodan alınıyor.

Jar, Egg ve Whl kitaplıkları için bu adım işlem yapılmaz.
YÜKLEME Spark'a kaynak ekleyerek veya Spark düğümleri içinde sistem komutlarını yürüterek kitaplık etkin bir şekilde yükleniyor.
YÜKLÜ Kitaplık başarıyla yüklendi.
ATLANIR Databricks Runtime 7.0 veya üzeri bir kümeye yükleme, Scala sürümü uyumsuzluğu nedeniyle atlandı.
BAŞARISIZ Yüklemedeki bir adım başarısız oldu. İletiler alanında daha fazla bilgi bulunabilir.
UNINSTALL_ON_RESTART Kitaplık kaldırılmak üzere işaretlendi. Kitaplıklar yalnızca kümeler yeniden başlatıldığında kaldırılabilir, bu nedenle bu duruma giren kitaplıklar küme yeniden başlatılana kadar kalır.