Delen via


Een Scala JAR bouwen met databricks-assetbundels

In dit artikel wordt beschreven hoe u een Scala JAR bouwt, implementeert en uitvoert met Databricks Asset Bundles. Zie Wat zijn Databricks Asset Bundles?voor meer informatie over bundels.

Voorbeeld van een configuratie waarmee een Java JAR wordt gebouwd en geüpload naar Unity Catalog. Zie Bundel waarmee een JAR-bestand wordt geüpload naar Unity Catalog.

Behoeften

Voor deze zelfstudie is vereist dat uw Databricks-werkruimte voldoet aan de volgende vereisten:

Daarnaast moet voor uw lokale ontwikkelomgeving het volgende zijn geïnstalleerd:

Stap 1: De bundel maken

Maak eerst de bundel met behulp van de opdracht bundle init en de scala-projectbundelsjabloon.

Met de scala JAR-bundelsjabloon wordt een bundel gemaakt waarmee een JAR wordt gebouwd, naar het opgegeven volume wordt geüpload en een taak wordt gedefinieerd met een Spark-taak met de JAR die wordt uitgevoerd op serverloze berekeningen. Het Scala in het sjabloonproject definieert een UDF die een eenvoudige transformatie toepast op een voorbeelddataframe en de resultaten uitvoert. De bron voor de sjabloon bevindt zich in de opslagplaats met bundelvoorbeelden.

  1. Voer de volgende opdracht uit in een terminalvenster op uw lokale ontwikkelcomputer. Er wordt gevraagd om de waarde van bepaalde vereiste velden.

    databricks bundle init default-scala
    
  2. Voer my_scala_projecteen naam in voor het project. Hiermee bepaalt u de naam van de hoofdmap voor deze bundel. Deze hoofddirectory wordt aangemaakt binnen uw huidige werkmap.

  3. Geef het doelpad van volumes op voor de Unity Catalog-volumes in Databricks, waar u de bundelmap wilt laten maken die de JAR en andere bestanden bevat, bijvoorbeeld /Volumes/my-catalog/my-schema/bundle-volumes.

    Opmerking

    Het sjabloonproject configureert serverloze berekeningen, maar als u dit wijzigt voor het gebruik van klassieke berekening, moet de beheerder mogelijk het JAR-pad voor volumes toestaan dat u opgeeft. Zie Allowlist-bibliotheken en init-scripts voor berekening met de standaardtoegangsmodus (voorheen gedeelde toegangsmodus).

Stap 2: VM-opties configureren

  1. Importeer de huidige map in uw IntelliJ waar build.sbt zich bevindt.

  2. Kies Java 17 in IntelliJ. Ga naarSDK's>>.

  3. open src/main/scala/com/examples/Main.scala.

  4. Navigeer naar de configuratie voor Main om VM-opties toe te voegen:

    Hoofd bewerken

    VM-opties toevoegen

  5. Voeg het volgende toe aan uw VM-opties:

    --add-opens=java.base/java.nio=ALL-UNNAMED
    

Aanbeveling

U kunt ook het volgende toevoegen aan uw sbt-buildbestand, of als u Visual Studio Code gebruikt:

fork := true
javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"

Voer vervolgens uw toepassing uit vanuit de terminal:

sbt run

Stap 3: De bundel verkennen

Als u de bestanden wilt bekijken die door de sjabloon zijn gegenereerd, schakelt u over naar de hoofdmap van de zojuist gemaakte bundel en opent u deze map in uw IDE. De sjabloon maakt gebruik van sbt om Scala-bestanden te compileren en te verpakken en werkt met Databricks Connect voor lokale ontwikkeling. Zie het gegenereerde project README.md voor gedetailleerde informatie.

Bestanden van bijzonder belang zijn onder andere:

  • databricks.yml: Dit bestand geeft de programmatische naam van de bundel, bevat een verwijzing naar de taakdefinitie en geeft instellingen over de doelwerkruimte op.
  • resources/my_scala_project.job.yml: In dit bestand worden de JAR-taak- en clusterinstellingen van de taak opgegeven.
  • src/: Deze map bevat de bronbestanden voor het Scala-project.
  • build.sbt: Dit bestand bevat belangrijke instellingen voor het bouwen en afhankelijke bibliotheken.
  • README.md: dit bestand bevat deze aan de slag-stappen en lokale build-instructies en -instellingen.

Stap 4: Het configuratiebestand van het projectbundel valideren

Controleer vervolgens of de bundelconfiguratie geldig is met behulp van de opdracht bundelvalidatie.

  1. Voer vanuit de hoofdmap de Databricks CLI-opdracht bundle validate uit. Dit controleert onder andere of het volume dat is opgegeven in het configuratiebestand in de werkruimte bestaat.

    databricks bundle validate
    
  2. Als er een samenvatting van de bundelconfiguratie wordt geretourneerd, is de validatie voltooid. Als er fouten worden geretourneerd, herstelt u de fouten en herhaalt u deze stap.

Als u na deze stap wijzigingen aanbrengt in uw bundel, herhaalt u deze stap om te controleren of uw bundelconfiguratie nog steeds geldig is.

Stap 5: Het lokale project implementeren in de externe werkruimte

Implementeer de bundel nu in uw externe Azure Databricks-werkruimte met behulp van de opdracht bundel implementeren. Met deze stap wordt het JAR-bestand gebouwd en geüpload naar het opgegeven volume.

  1. Voer de Opdracht Databricks CLI bundle deploy uit:

    databricks bundle deploy -t dev
    
  2. Controleren of het lokaal gebouwde JAR-bestand is geïmplementeerd:

    1. Klik in de zijbalk van uw Azure Databricks-werkruimte op Catalog Explorer.
    2. Navigeer naar het volumebestemmingspad dat u hebt opgegeven toen u de bundel initialiseerde. Het JAR-bestand moet zich in de volgende map in dat pad bevinden: /my_scala_project/dev/<user-name>/.internal/.
  3. Controleren of de taak is aangemaakt:

    1. Klik in de zijbalk van uw Azure Databricks-werkruimte op Jobs & Pipelines.
    2. Selecteer desgewenst de filters Werk en Van mij.
    3. Klik op [dev <your-username>] my_scala_project.
    4. Klik op het tabblad Taken .

    Er moet één taak zijn: main_task.

Als u na deze stap wijzigingen aanbrengt in uw bundel, herhaalt u de validatie- en implementatiestappen.

Stap 6: Het geïmplementeerde project uitvoeren

Voer ten slotte de Azure Databricks-taak uit met behulp van de opdracht bundeluitvoering.

  1. Voer vanuit de hoofdmap de Opdracht Databricks CLI bundle run uit, waarbij u de naam van de taak in het definitiebestand my_scala_project.job.ymlopgeeft:

    databricks bundle run -t dev my_scala_project
    
  2. Kopieer de waarde van Run URL die in uw terminal verschijnt en plak deze in uw webbrowser om uw Azure Databricks-werkruimte te openen.

  3. Nadat de taak is voltooid in uw Azure Databricks-werkruimte en een groene titelbalk wordt weergegeven, klikt u op de main_task taak om de resultaten te bekijken.