중요합니다
서버리스 Scala 및 Java 작업은 공개 미리 보기로 제공됩니다. JAR 작업을 사용하여 JAR을 배포할 수 있습니다. 아직 사용하도록 설정되지 않은 경우 Azure Databricks 미리 보기 관리를 참조하세요.
JAVA 보관(JAR)은 Java 또는 Scala 코드를 단일 파일로 패키지합니다. 이 페이지에서는 Spark 코드를 사용하여 JAR을 만들고 서버리스 컴퓨팅에서 Lakeflow 작업으로 배포하는 방법을 보여 줍니다.
팁 (조언)
자동화된 배포 및 연속 통합 워크플로의 경우 선언적 자동화 번들을 사용하여 미리 구성된 빌드 및 배포 설정이 있는 템플릿에서 프로젝트를 만듭니다. UNITY 카탈로그에 JAR 파일을 업로드하는 선언적 자동화 번들 및 번들을 사용하여 Scala JAR 빌드를 참조하세요. 이 페이지에서는 배포에 대한 수동 접근 방식 또는 서버리스 컴퓨팅에서 JAR이 작동하는 방법을 학습하는 방법을 설명합니다.
요구 사항
로컬 개발 환경에는 다음이 있어야 합니다.
- sbt 1.11.7 이상(Scala JAR의 경우)
- Maven 3.9.0 이상(Java JAR의 경우)
- 서버리스 환경과 일치하는 JDK, Scala 및 Databricks Connect 버전(이 예제에서는 JDK 17, Scala 2.13.16 및 Databricks Connect 17.3.2 사용)
1단계. JAR 빌드
Scala
다음 명령을 실행하여 Scala 프로젝트를 만듭니다.
sbt new scala/scala-seed.g8메시지가 표시되면 프로젝트 이름(예
my-spark-app: .)을 입력합니다.파일의
build.sbt내용을 다음으로 바꿉니다.scalaVersion := "2.13.16" libraryDependencies += "com.databricks" %% "databricks-connect" % "17.3.+" // other dependencies go here... // to run with new jvm options, a fork is required otherwise it uses same options as sbt process fork := true javaOptions += "--add-opens=java.base/java.nio=ALL-UNNAMED"파일을 편집하거나 생성한 후,
project/assembly.sbt파일에 다음 줄을 추가합니다.addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")src/main/scala/example/DatabricksExample.scala에서 기본 클래스를 만듭니다.package com.examples import org.apache.spark.sql.SparkSession object SparkJar { def main(args: Array[String]): Unit = { val spark = SparkSession.builder().getOrCreate() // Prints the arguments to the class, which // are job parameters when run as a job: println(args.mkString(", ")) // Shows using spark: println(spark.version) println(spark.range(10).limit(3).collect().mkString(" ")) } }JAR 파일을 빌드하려면 다음 명령을 실행합니다.
sbt assembly
Java
다음 명령을 실행하여 Maven 프로젝트 구조를 만듭니다.
# Create all directories at once mkdir -p my-spark-app/src/main/java/com/examples cd my-spark-app다음 내용을 사용하여
pom.xml프로젝트 루트에 파일을 만듭니다.<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.examples</groupId> <artifactId>my-spark-app</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <scala.binary.version>2.13</scala.binary.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- Databricks Connect for Spark --> <dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect_${scala.binary.version}</artifactId> <version>17.3.2</version> </dependency> </dependencies> <build> <plugins> <!-- Maven Shade Plugin - Creates fat JAR with all dependencies --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.6.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.examples.SparkJar</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>src/main/java/com/examples/SparkJar.java에서 기본 클래스를 만듭니다.package com.examples; import org.apache.spark.sql.SparkSession; import java.util.stream.Collectors; public class SparkJar { public static void main(String[] args) { SparkSession spark = SparkSession.builder().getOrCreate(); // Prints the arguments to the class, which // are job parameters when run as a job: System.out.println(String.join(", ", args)); // Shows using spark: System.out.println(spark.version()); System.out.println( spark.range(10).limit(3).collectAsList().stream() .map(Object::toString) .collect(Collectors.joining(" ")) ); } }JAR 파일을 빌드하려면 다음 명령을 실행합니다.
mvn clean package컴파일된 JAR은
target/폴더에my-spark-app-1.0-SNAPSHOT.jar으로 존재합니다.
2단계. JAR을 실행하는 작업 만들기
작업 영역에서
사이드바의 작업 및 파이프라인입니다.
만들기를 클릭한 다음 작업을 클릭합니다.
JAR 타일을 클릭하여 첫 번째 작업을 구성합니다. JAR 타일을 사용할 수 없는 경우 다른 작업 유형 추가를 클릭하고 JAR을 검색합니다.
필요에 따라 기본값인 작업의 이름을 작업 이름으로 바꿉니다
New Job <date-time>.작업 이름에 작업의 이름을 입력합니다( 예:
JAR_example).필요한 경우 형식 드롭다운 메뉴에서 JAR을 선택합니다.
Main 클래스의 경우 JAR의 패키지 및 클래스를 입력합니다. 앞에서 예제를 수행했으면
com.examples.SparkJar를 입력합니다.컴퓨팅의 경우 서버리스를 선택합니다.
서버리스 환경 구성:
- 환경을 선택한 다음
을 클릭합니다.편집하여 구성합니다.
- 환경 버전에 대해 4개 이상을 선택합니다.
- JAR 파일을 파일 선택기에 끌어다 놓아 추가하거나 Unity 카탈로그 볼륨 또는 작업 영역 위치에서 탐색하여 선택합니다.
- 환경을 선택한 다음
이 예의 경우 매개 변수에
["Hello", "World!"]를 입력합니다.작업 만들기를 클릭합니다.
3단계: 작업 실행 및 작업 실행 세부 정보 보기
를 클릭하여 워크플로를 실행합니다.
실행 세부 정보를 보려면 트리거된 실행 팝업에서 실행 보기를 클릭하거나 작업 실행 보기에서 실행에 대한 시작 시간 열의 링크를 클릭합니다.
실행이 완료되면 태스크에 전달된 인수를 포함하여 출력 창에 출력이 표시됩니다.
다음 단계
- JAR 작업의 자세한 내용은 작업용 JAR 작업을 참조하세요.
- 호환되는 JAR을 만드는 방법에 대한 자세한 내용은 Azure Databricks 호환 JAR 만들기를 참조하세요.
- 작업을 만들고 실행하는 방법에 대한 자세한 내용은 Lakeflow 작업을 참조하세요.