다음을 통해 공유


자습서: Synapse Studio에서 Apache Spark 작업 정의 만들기

이 자습서에서는 Synapse Studio를 사용하여 Apache Spark 작업 정의를 만든 다음, 서버리스 Apache Spark 풀에 제출하는 방법을 보여 줍니다.

이 자습서에서 다루는 작업은 다음과 같습니다.

  • PySpark(Python)에 대한 Apache Spark 작업 정의 만들기
  • Spark(Scala)에 대한 Apache Spark 작업 정의 만들기
  • .NET Spark(C#/F#)에 대한 Apache Spark 작업 정의 만들기
  • JSON 파일을 가져와서 작업 정의 만들기
  • Apache Spark 작업 정의 파일을 로컬로 내보내기
  • 일괄 작업으로 Apache Spark 작업 정의 제출
  • 파이프라인에 Apache Spark 작업 정의 추가

필수 조건

이 자습서를 시작하기 전에 다음 요구 사항이 충족되는지 확인합니다.

  • Azure Synapse Analytics 작업 영역. 지침은 Azure Synapse Analytics 작업 영역 만들기를 참조하세요.
  • 서버리스 Apache Spark 풀.
  • ADLS Gen2 스토리지 계정 작업하려는 ADLS Gen2 파일 시스템의 Storage Blob 데이터 기여자여야 합니다. 그렇지 않으면, 권한을 수동으로 추가해야 합니다.
  • 작업 영역 기본 스토리지를 사용하지 않으려면 Synapse Studio에서 필요한 ADLS Gen2 스토리지 계정을 연결합니다.

PySpark(Python)에 대한 Apache Spark 작업 정의 만들기

이 섹션에서는 PySpark(Python)에 대한 Apache Spark 작업 정의를 만듭니다.

  1. Synapse Studio를 엽니다.

  2. Apache Spark 작업 정의를 만들기 위한 샘플 파일로 이동하여 python.zip용 샘플 파일을 다운로드한 다음, 압축된 패키지의 압축을 풀고 wordcount.pyshakespeare.txt 파일을 추출할 수 있습니다.

    sample files

  3. 데이터 ->연결됨 ->Azure Data Lake Storage Gen2를 선택하고, ADLS Gen2 파일 시스템에 wordcount.pyshakespeare.txt를 업로드합니다.

    upload Python file

  4. 개발 허브를 선택하고 '+' 아이콘을 선택한 다음, Spark 작업 정의를 선택하여 새 Spark 작업 정의를 만듭니다.

    create new definition for python

  5. Apache Spark 작업 정의 주 창의 언어 드롭다운 목록에서 PySpark(Python)를 선택합니다.

    select python

  6. Apache Spark 작업 정의에 대한 정보를 입력합니다.

    속성 설명
    작업 정의 이름 Apache Spark 작업 정의의 이름을 입력합니다. 이 이름은 게시되기 전까지 언제든지 업데이트할 수 있습니다.
    샘플: job definition sample
    주 정의 파일 작업에 사용되는 주 파일입니다. 스토리지에서 PY 파일을 선택합니다. 파일 업로드를 선택하여 스토리지 계정에 파일을 업로드할 수 있습니다.
    샘플: abfss://…/path/to/wordcount.py
    명령줄 인수 작업에 대한 선택적 인수입니다.
    샘플: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    참고: 샘플 작업 정의에 대한 두 개의 인수는 공백으로 구분됩니다.
    참조 파일 주 정의 파일에서 참조용으로 사용되는 추가 파일입니다. 파일 업로드를 선택하여 스토리지 계정에 파일을 업로드할 수 있습니다.
    Spark 풀 선택한 Apache Spark 풀에 작업이 제출됩니다.
    Spark 버전 Apache Spark 풀에서 실행 중인 Apache Spark 버전입니다.
    실행자 작업에 대해 지정된 Apache Spark 풀에 제공할 실행기의 수입니다.
    실행기 크기 작업에 대해 지정된 Apache Spark 풀에 제공된 실행기에 사용할 코어 및 메모리의 수입니다.
    드라이버 크기 작업에 대해 지정된 Apache Spark 풀에 제공된 드라이버에 사용할 코어 및 메모리의 수입니다.
    Apache Spark 구성 아래에 속성을 추가하여 구성을 사용자 지정합니다. 속성을 추가하지 않으면 Azure Synapse는 기본값(해당하는 경우)을 사용합니다.

    Set the value of the Spark job definition for Python

  7. 게시를 선택하여 Apache Spark 작업 정의를 저장합니다.

    publish py definition

Apache Spark(Scala)에 대한 Apache Spark 작업 정의 만들기

이 섹션에서는 Apache Spark(Scala)에 대한 Apache Spark 작업 정의를 만듭니다.

  1. Azure Synapse Studio를 엽니다.

  2. Apache Spark 작업 정의를 만들기 위한 샘플 파일로 이동하여 scala.zip용 샘플 파일을 다운로드한 다음, 압축된 패키지의 압축을 풀고 wordcount.jarshakespeare.txt 파일을 추출할 수 있습니다.

    sample files scala

  3. 데이터 ->연결됨 ->Azure Data Lake Storage Gen2를 선택하고, ADLS Gen2 파일 시스템에 wordcount.jarshakespeare.txt를 업로드합니다.

    prepare scala structure

  4. 개발 허브를 선택하고 '+' 아이콘을 선택한 다음, Spark 작업 정의를 선택하여 새 Spark 작업 정의를 만듭니다. (샘플 이미지는 PySpark용 Apache Spark 작업 정의(Python) 만들기의 4단계와 동일합니다.)

  5. Apache Spark 작업 정의 주 창의 언어 드롭다운 목록에서 Spark(Scala)를 선택합니다.

    select scala

  6. Apache Spark 작업 정의에 대한 정보를 입력합니다. 샘플 정보를 복사할 수 있습니다.

    속성 설명
    작업 정의 이름 Apache Spark 작업 정의의 이름을 입력합니다. 이 이름은 게시되기 전까지 언제든지 업데이트할 수 있습니다.
    샘플: scala
    주 정의 파일 작업에 사용되는 주 파일입니다. 스토리지에서 JAR 파일을 선택합니다. 파일 업로드를 선택하여 스토리지 계정에 파일을 업로드할 수 있습니다.
    샘플: abfss://…/path/to/wordcount.jar
    주 클래스 이름 주 정의 파일에 있는 주 클래스 또는 정규화된 식별자입니다.
    샘플: WordCount
    명령줄 인수 작업에 대한 선택적 인수입니다.
    샘플: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    참고: 샘플 작업 정의에 대한 두 개의 인수는 공백으로 구분됩니다.
    참조 파일 주 정의 파일에서 참조용으로 사용되는 추가 파일입니다. 파일 업로드를 선택하여 스토리지 계정에 파일을 업로드할 수 있습니다.
    Spark 풀 선택한 Apache Spark 풀에 작업이 제출됩니다.
    Spark 버전 Apache Spark 풀에서 실행 중인 Apache Spark 버전입니다.
    실행자 작업에 대해 지정된 Apache Spark 풀에 제공할 실행기의 수입니다.
    실행기 크기 작업에 대해 지정된 Apache Spark 풀에 제공된 실행기에 사용할 코어 및 메모리의 수입니다.
    드라이버 크기 작업에 대해 지정된 Apache Spark 풀에 제공된 드라이버에 사용할 코어 및 메모리의 수입니다.
    Apache Spark 구성 아래에 속성을 추가하여 구성을 사용자 지정합니다. 속성을 추가하지 않으면 Azure Synapse는 기본값(해당하는 경우)을 사용합니다.

    Set the value of the Spark job definition for scala

  7. 게시를 선택하여 Apache Spark 작업 정의를 저장합니다.

    publish scala definition

.NET Spark(C#/F#)에 대한 Apache Spark 작업 정의 만들기

이 섹션에서는 .NET Spark(C#/F#)에 대한 Apache Spark 작업 정의를 만듭니다.

  1. Azure Synapse Studio를 엽니다.

  2. Apache Spark 작업 정의를 만들기 위한 샘플 파일로 이동하여 dotnet.zip용 샘플 파일을 다운로드한 다음, 압축된 패키지의 압축을 풀고 wordcount.zipshakespeare.txt 파일을 추출할 수 있습니다.

    sample dotnet

  3. 데이터 ->연결됨 ->Azure Data Lake Storage Gen2를 선택하고, ADLS Gen2 파일 시스템에 wordcount.zipshakespeare.txt를 업로드합니다.

    prepare dotnet structure

  4. 개발 허브를 선택하고 '+' 아이콘을 선택한 다음, Spark 작업 정의를 선택하여 새 Spark 작업 정의를 만듭니다. (샘플 이미지는 PySpark용 Apache Spark 작업 정의(Python) 만들기의 4단계와 동일합니다.)

  5. Apache Spark 작업 정의 주 창의 언어 드롭다운 목록에서 .NET Spark(C#/F#)를 선택합니다.

    select dotnet

  6. Apache Spark 작업 정의에 대한 정보를 입력합니다. 샘플 정보를 복사할 수 있습니다.

    속성 설명
    작업 정의 이름 Apache Spark 작업 정의의 이름을 입력합니다. 이 이름은 게시되기 전까지 언제든지 업데이트할 수 있습니다.
    샘플: dotnet
    주 정의 파일 작업에 사용되는 주 파일입니다. .NET for Apache Spark 애플리케이션(즉, 주 실행 파일, 사용자 정의 함수를 포함하는 DLL 및 기타 필수 파일)이 포함된 ZIP 파일을 스토리지에서 선택합니다. 파일 업로드를 선택하여 스토리지 계정에 파일을 업로드할 수 있습니다.
    샘플: abfss://…/path/to/wordcount.zip
    주 실행 파일 주 정의 ZIP 파일의 주 실행 파일입니다.
    샘플: WordCount
    명령줄 인수 작업에 대한 선택적 인수입니다.
    샘플: abfss://…/path/to/shakespeare.txtabfss://…/path/to/result
    참고: 샘플 작업 정의에 대한 두 개의 인수는 공백으로 구분됩니다.
    참조 파일 주 정의 ZIP 파일에 포함되지 않은 .NET for Apache Spark 애플리케이션을 실행하기 위해 작업자 노드에 필요한 추가 파일(즉, 종속 jar, 추가 사용자 정의 함수 DLL 및 기타 구성 파일)입니다. 파일 업로드를 선택하여 스토리지 계정에 파일을 업로드할 수 있습니다.
    Spark 풀 선택한 Apache Spark 풀에 작업이 제출됩니다.
    Spark 버전 Apache Spark 풀에서 실행 중인 Apache Spark 버전입니다.
    실행자 작업에 대해 지정된 Apache Spark 풀에 제공할 실행기의 수입니다.
    실행기 크기 작업에 대해 지정된 Apache Spark 풀에 제공된 실행기에 사용할 코어 및 메모리의 수입니다.
    드라이버 크기 작업에 대해 지정된 Apache Spark 풀에 제공된 드라이버에 사용할 코어 및 메모리의 수입니다.
    Apache Spark 구성 아래에 속성을 추가하여 구성을 사용자 지정합니다. 속성을 추가하지 않으면 Azure Synapse는 기본값(해당하는 경우)을 사용합니다.

    Set the value of the Spark job definition for dotnet

  7. 게시를 선택하여 Apache Spark 작업 정의를 저장합니다.

    publish dotnet definition

참고 항목

Apache Spark 구성의 경우 Apache Spark 구성 Apache Spark 작업 정의가 특별한 작업을 수행하지 않는 경우 작업을 실행할 때 기본 구성이 사용됩니다.

JSON 파일을 가져와서 Apache Spark 작업 정의 만들기

Apache Spark 작업 정의 탐색기의 작업(...) 메뉴에서 기존 로컬 JSON 파일을 Azure Synapse 작업 영역으로 가져와 새 Apache Spark 작업 정의를 만들 수 있습니다.

create import definition

Spark 작업 정의는 Livy API와 완전히 호환됩니다. 다른 Livy 속성 (Livy Docs - REST API(apache.org)에 대한 추가 매개 변수를 로컬 JSON 파일에 추가할 수 있습니다. 아래와 같이 config 속성에서 Spark 구성 관련 매개 변수를 지정할 수도 있습니다. 그런 다음, JSON 파일을 다시 가져와 일괄 작업에 대한 새 Apache Spark 작업 정의를 만들 수 있습니다. Spark 정의 가져오기에 대한 예제 JSON:

   {
  "targetBigDataPool": {
    "referenceName": "socdemolarge",
    "type": "BigDataPoolReference"
  },
  "requiredSparkVersion": "2.3",
  "language": "scala",
  "jobProperties": {
    "name": "robinSparkDefinitiontest",
    "file": "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/wordcount.jar",
    "className": "WordCount",
    "args": [
      "adl://socdemo-c14.azuredatalakestore.net/users/robinyao/shakespeare.txt"
    ],
    "jars": [],
    "files": [],
    "conf": {
      "spark.dynamicAllocation.enabled": "false",
      "spark.dynamicAllocation.minExecutors": "2",
      "spark.dynamicAllocation.maxExecutors": "2"
    },
    "numExecutors": 2,
    "executorCores": 8,
    "executorMemory": "24g",
    "driverCores": 8,
    "driverMemory": "24g"
  }
}

other livy properties

기존 Apache Spark 작업 정의 파일 내보내기

파일 탐색기의 작업(...) 메뉴에서 기존 Apache Spark 작업 정의 파일을 로컬로 내보낼 수 있습니다. 추가 Livy 속성에 대한 JSON 파일을 추가로 업데이트하고, 필요한 경우 다시 가져와 새 작업 정의를 만들 수 있습니다.

create export definition

create export definition 2

일괄 작업으로 Apache Spark 작업 정의 제출

Apache Spark 작업 정의를 만든 후에 Apache Spark 풀에 제출할 수 있습니다. 작업하려는 ADLS Gen2 파일 시스템의 Storage Blob 데이터 기여자여야 합니다. 그렇지 않으면, 권한을 수동으로 추가해야 합니다.

시나리오 1: Apache Spark 작업 정의 제출

  1. Apache Spark 작업 정의 창을 선택하여 엽니다.

    Open spark job definition to submit

  2. 제출 단추를 선택하여 선택한 Apache Spark 풀에 프로젝트를 제출합니다. Spark 모니터링 URL 탭을 선택하여 Apache Spark 애플리케이션의 LogQuery를 볼 수 있습니다.

    Select submit button to submit spark job definition

    The Spark Submission dialog box

시나리오 2: Apache Spark 작업 실행 진행률 보기

  1. 모니터를 선택한 다음, Apache Spark 애플리케이션 옵션을 선택합니다. 제출된 Apache Spark 애플리케이션을 찾을 수 있습니다.

    View Spark application

  2. 그런 다음, Apache Spark 애플리케이션을 선택하면 SparkJobDefinition 작업 창이 표시됩니다. 여기에서 작업 실행 진행률을 볼 수 있습니다.

    View spark application LogQuery

시나리오 3: 출력 파일 확인

  1. 데이터 ->연결됨 ->Azure Data Lake Storage Gen2(hozhaobdbj)를 선택하고 이전에 만든 결과 폴더를 열어 result 폴더로 이동하여 출력이 생성되었는지 확인할 수 있습니다.

    View output file

파이프라인에 Apache Spark 작업 정의 추가

이 섹션에서는 파이프라인에 Apache Spark 작업 정의를 추가합니다.

  1. 기존의 Apache Spark 작업 정의를 엽니다.

  2. Apache Spark 작업 정의의 오른쪽 위에 있는 아이콘을 선택하거나, 기존 파이프라인을 선택하거나, 새 파이프라인을 선택합니다. 자세한 내용은 파이프라인 페이지를 참조하세요.

    add to pipeline1

    add to pipeline2

다음 단계

이제 Azure Synapse Studio를 사용하여 Power BI 데이터 세트를 만들고 Power BI 데이터를 관리할 수 있습니다. 자세한 내용은 Synapse 작업 영역에 Power BI 작업 영역 연결 문서로 이동합니다.