Condividi tramite


Distribuire jar Scala nei cluster del catalogo Unity

Questo articolo descrive come compilare e distribuire processi Scala come file JAR in un cluster abilitato per Il catalogo Unity in modalità di accesso standard. Fornisce informazioni dettagliate per assicurarsi che:

  • La versione di Java Development Kit (JDK) corrisponde alla versione JDK nel cluster Databricks.
  • La tua versione di Scala corrisponde alla versione di Scala nel tuo cluster Databricks.
  • Databricks Connect viene aggiunto come dipendenza e corrisponde alla versione in esecuzione nel cluster Databricks.
  • Il progetto locale che si sta compilando viene incluso nel pacchetto come singolo file JAR e include tutte le dipendenze. In alternativa, è possibile installare le dipendenze come librerie cluster.
  • Tutte le dipendenze da OSS Spark, ad esempio spark-core o hadoop-core vengono rimosse.
  • Tutti i file JAR usati vengono aggiunti all'elenco consenti.

Annotazioni

I cluster del catalogo Unity in modalità di accesso standard implementano la nuova architettura spark Connect, che separa i componenti client e server. Questa separazione consente di condividere in modo efficiente i cluster applicando al tempo stesso la governance del catalogo Unity con misure quali filtri di riga e maschere di colonna. Tuttavia, i cluster del catalogo Unity in modalità di accesso standard presentano alcune limitazioni, ad esempio la mancanza di supporto per le API, ad esempio contesto Spark e RDD. Le limtazioni sono elencate nelle limitazioni della modalità di accesso alle risorse di calcolo per il catalogo unity.

Passaggio 1: Verificare che le versioni di Scala e JDK corrispondano

Prima di compilare i file JAR, assicurarsi che la versione di Java Development Kit (JDK) e Scala usata per compilare il codice corrisponda alle versioni in esecuzione nella versione di Databricks Runtime nel cluster. Per informazioni sulle versioni compatibili, vedere la matrice di supporto della versione.

Passaggio 2: Aggiungere Databricks Connect come dipendenza

Databricks Connect deve essere usato per compilare jar scala anziché OSS Spark. La versione di Spark in esecuzione in Databricks Runtime è più recente di quella attualmente disponibile in OSS Spark e include miglioramenti delle prestazioni e della stabilità.

Nel file di compilazione del progetto Scala, ad esempio build.sbt per sbt o pom.xml per Maven, aggiungere il riferimento seguente a Databricks Connect. Rimuovere anche qualsiasi dipendenza da OSS Spark.

Intenditore

<dependency>
  <groupId>com.databricks</groupId>
  <artifactId>databricks-connect</artifactId>
  <version>16.2.0</version>
</dependency>

Sbt

libraryDependencies += "com.databricks" % "databricks-connect" % "16.2.+"

Passaggio 3: Creare un pacchetto come singolo file JAR e distribuire

Databricks consiglia di creare un pacchetto dell'applicazione e di tutte le dipendenze in un singolo file JAR, noto anche come über JAR o fat JAR. Per sbt, usare sbt-assemblye per Maven, usare maven-shade-plugin. Per informazioni dettagliate, vedere la documentazione ufficiale di Maven Shade Plugin e sbt-assembly .

In alternativa, è possibile installare le dipendenze come librerie con ambito cluster. Per altre informazioni, vedere Librerie con ambito di calcolo .

Annotazioni

Per i file JAR di Scala installati come librerie nei cluster standard del catalogo Unity, le classi nelle librerie JAR devono trovarsi in un pacchetto denominato, ad esempio com.databricks.MyClass, o si verificheranno errori durante l'importazione della libreria.

Distribuire il file JAR usando un'attività JAR. Consulta attività JAR per i compiti.

Passaggio 4: Verificare che il file JAR sia inserito nella lista di autorizzazioni

Per motivi di sicurezza, la modalità di accesso standard richiede a un amministratore di aggiungere coordinate e percorsi Maven per le librerie JAR a un elenco elementi consentiti. Vedere librerie lista consentita e script di inizializzazione sulle risorse di calcolo con modalità di accesso standard (in precedenza modalità di accesso condiviso).