Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
- Unity Catalog is ingeschakeld. Zie Een werkruimte inschakelen voor Unity Catalog.
- U moet een Unity Catalog-volume hebben in Databricks waar u de buildartefacten wilt opslaan en machtigingen voor het uploaden van het JAR-bestand naar een opgegeven volumepad. Zie Unity Catalog-volumes maken en beheren.
- Serverloze berekening is ingeschakeld. Zorg ervoor dat u de beperkingen van de serverloze rekenfuncties controleert.
- Uw werkruimte bevindt zich in een ondersteunde regio.
Daarnaast moet voor uw lokale ontwikkelomgeving het volgende zijn geïnstalleerd:
- Java Development Kit (JDK) 17
- IntelliJ IDEA
- sbt
- Databricks CLI versie 0.218.0 of hoger. Voer de opdracht
databricks -vuit om de geïnstalleerde versie van de Databricks CLI te controleren. Zie Installeren of updaten van de Databricks CLIom te leren hoe je de Databricks CLI installeert. - Databricks CLI-verificatie wordt geconfigureerd met een
DEFAULTprofiel. Zie Configureren van toegang tot uw werkruimte om verificatie in te stellen.
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.
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-scalaVoer
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.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
Importeer de huidige map in uw IntelliJ waar
build.sbtzich bevindt.Kies Java 17 in IntelliJ. Ga naarSDK's>>.
open
src/main/scala/com/examples/Main.scala.Navigeer naar de configuratie voor Main om VM-opties toe te voegen:
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.
Voer vanuit de hoofdmap de Databricks CLI-opdracht
bundle validateuit. Dit controleert onder andere of het volume dat is opgegeven in het configuratiebestand in de werkruimte bestaat.databricks bundle validateAls 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.
Voer de Opdracht Databricks CLI
bundle deployuit:databricks bundle deploy -t devControleren of het lokaal gebouwde JAR-bestand is geïmplementeerd:
- Klik in de zijbalk van uw Azure Databricks-werkruimte op Catalog Explorer.
- 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/.
Controleren of de taak is aangemaakt:
- Klik in de zijbalk van uw Azure Databricks-werkruimte op Jobs & Pipelines.
- Selecteer desgewenst de filters Werk en Van mij.
- Klik op [dev
<your-username>]my_scala_project. - 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.
Voer vanuit de hoofdmap de Opdracht Databricks CLI
bundle runuit, waarbij u de naam van de taak in het definitiebestandmy_scala_project.job.ymlopgeeft:databricks bundle run -t dev my_scala_projectKopieer de waarde van
Run URLdie in uw terminal verschijnt en plak deze in uw webbrowser om uw Azure Databricks-werkruimte te openen.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.