Visual Studio Code에서 SQL Server 빅 데이터 클러스터에 대한 Spark 작업 제출Submit Spark jobs on SQL Server big data cluster in Visual Studio Code

Visual Studio Code용 Spark & Hive Tools를 사용하여 Apache Spark용 PySpark 스크립트를 만들고 제출하는 방법을 알아봅니다. 먼저 Visual Studio Code에서 Spark & Hive Tools를 설치하는 방법을 설명한 다음, Spark에 작업을 제출하는 방법을 안내합니다.Learn how to use Spark & Hive Tools for Visual Studio Code to create and submit PySpark scripts for Apache Spark, first we'll describe how to install the Spark & Hive tools in Visual Studio Code and then we'll walk through how to submit jobs to Spark.

Windows, Linux 및 macOS를 포함하여 Visual Studio Code에서 지원되는 플랫폼에 Spark & Hive Tools를 설치할 수 있습니다.Spark & Hive Tools can be installed on platforms that are supported by Visual Studio Code, which include Windows, Linux, and macOS. 아래에서 다양한 플랫폼의 필수 조건을 확인할 수 있습니다.Below you'll find the prerequisites for different platforms.

사전 요구 사항Prerequisites

이 문서의 단계를 완료하려면 다음 항목이 필요합니다.The following items are required for completing the steps in this article:

Spark & Hive Tools 설치Install Spark & Hive Tools

필수 조건을 완료한 후에는 Visual Studio Code용 Spark & Hive Tools를 설치할 수 있습니다.After you have completed the prerequisites, you can install Spark & Hive Tools for Visual Studio Code. Spark & Hive Tools를 설치하려면 다음 단계를 완료합니다.Complete the following steps to install Spark & Hive Tools:

  1. Visual Studio Code를 엽니다.Open Visual Studio Code.

  2. 메뉴 모음에서 보기 > 확장 으로 이동합니다.From the menu bar, navigate to View > Extensions.

  3. 검색 상자에 Spark & Hive 를 입력합니다.In the search box, enter Spark & Hive.

  4. 검색 결과에서 Spark & Hive Tools 를 선택하고 설치 를 선택합니다.Select Spark & Hive Tools from the search results, and then select Install.

    확장 설치

  5. 필요한 경우 다시 로드합니다.Reload when needed.

작업 폴더 열기Open work folder

작업 폴더를 열고 Visual Studio Code에서 파일을 만들려면 다음 단계를 완료합니다.Complete the following steps to open a work folder, and create a file in Visual Studio Code:

  1. 메뉴 모음에서 파일 > 폴더 열기... > C:\SQLBDC\SQLBDCexample 로 이동한 다음, 폴더 선택 단추를 선택합니다.From the menu bar, navigate to File > Open Folder... > C:\SQLBDC\SQLBDCexample, then select the Select Folder button. 왼쪽 탐색기 뷰에 폴더가 표시됩니다.The folder appears in the Explorer view on the left.

  2. 탐색기 뷰에서 폴더, SQLBDCexample 을 차례로 선택하고 작업 폴더 옆에 있는 새 파일 아이콘을 선택합니다.From the Explorer view, select the folder, SQLBDCexample, and then the New File icon next to the work folder.

    새 파일

  3. .py(Spark 스크립트) 파일 확장명을 사용하여 새 파일의 이름을 지정합니다.Name the new file with the .py (Spark script) file extension. 이 예제에서는 HelloWorld.py 를 사용합니다.This example uses HelloWorld.py.

  4. 다음 코드를 복사하여 스크립트 파일에 붙여넣습니다.Copy and paste the following code into the script file:

     import sys
     from operator import add
     from pyspark.sql import SparkSession, Row
    
     spark = SparkSession\
         .builder\
         .appName("PythonWordCount")\
         .getOrCreate()
    
     data = [Row(col1='pyspark and spark', col2=1), Row(col1='pyspark', col2=2), Row(col1='spark vs hadoop', col2=2), Row(col1='spark', col2=2), Row(col1='hadoop', col2=2)]
     df = spark.createDataFrame(data)
     lines = df.rdd.map(lambda r: r[0])
    
     counters = lines.flatMap(lambda x: x.split(' ')) \
         .map(lambda x: (x, 1)) \
         .reduceByKey(add)
    
     output = counters.collect()
     sortedCollection = sorted(output, key = lambda r: r[1], reverse = True)
    
     for (word, count) in sortedCollection:
         print("%s: %i" % (word, count))
    

Visual Studio Code에서 클러스터로 스크립트를 제출하려면 먼저 SQL Server 빅 데이터 클러스터를 연결해야 합니다.Before you can submit scripts to your clusters from Visual Studio Code, you need to link a SQL Server big data cluster.

  1. 메뉴 모음에서 보기 > 명령 팔레트... 로 이동한 다음, Spark/Hive: 클러스터 연결 을 입력합니다.From the menu bar navigate to View > Command Palette..., and enter Spark / Hive: Link a Cluster.

    클러스터 연결 명령

  2. 연결된 클러스터 유형인 SQL Server 빅 데이터 를 선택합니다.Select linked cluster type SQL Server Big Data.

  3. SQL Server 빅 데이터 엔드포인트를 입력합니다.Enter SQL Server Big Data endpoint.

  4. SQL Server 빅 데이터 클러스터 사용자 이름을 입력합니다.Enter SQL Server Big Data Cluster user name.

  5. 사용자 관리자의 암호를 입력합니다.Enter password for user admin.

  6. 클러스터의 표시 이름을 설정합니다(선택 사항).Set the display name of the cluster (Optional).

  7. 클러스터를 나열하고, 확인을 위해 출력 뷰를 검토합니다.List clusters, review OUTPUT view for verification.

클러스터 나열List clusters

  1. 메뉴 모음에서 보기 > 명령 팔레트... 로 이동한 다음, Spark/Hive: 클러스터 나열 을 입력합니다.From the menu bar navigate to View > Command Palette..., and enter Spark / Hive: List Cluster.

  2. 출력 뷰를 검토합니다.Review the OUTPUT view. 뷰에는 연결된 클러스터가 표시됩니다.The view will show your linked cluster(s).

    기본 클러스터 구성 설정

기본 클러스터 설정Set default cluster

  1. 앞서 만든 SQLBDCexample 폴더를 닫은 경우 다시 엽니다.Re-Open the folder SQLBDCexample created earlier if closed.

  2. 앞서 만든 HelloWorld.py 파일을 선택하면 스크립트 편집기에서 열립니다.Select the file HelloWorld.py created earlier and it will open in the script editor.

  3. 아직 클러스터를 연결하지 않은 경우 지금 연결합니다.Link a cluster if you haven't yet done so.

  4. 스크립트 편집기를 마우스 오른쪽 단추로 클릭하고 Spark/Hive: 기본 클러스터 설정 을 선택합니다.Right-click the script editor, and select Spark / Hive: Set Default Cluster.

  5. 현재 스크립트 파일의 기본 클러스터로 사용할 클러스터를 선택합니다.Select a cluster as the default cluster for the current script file. 도구가 구성 파일 .VSCode\settings.json 을 자동으로 업데이트합니다.The tools automatically update the configuration file .VSCode\settings.json.

    기본 클러스터 구성 설정

대화형 PySpark 쿼리 제출Submit interactive PySpark queries

다음 단계를 수행하여 대화형 PySpark 쿼리를 제출할 수 있습니다.You can submit interactive PySpark queries by following the steps below:

  1. 앞서 만든 SQLBDCexample 폴더를 닫은 경우 다시 엽니다.Reopen the folder SQLBDCexample created earlier if closed.

  2. 앞서 만든 HelloWorld.py 파일을 선택하면 스크립트 편집기에서 열립니다.Select the file HelloWorld.py created earlier and it will open in the script editor.

  3. 아직 클러스터를 연결하지 않은 경우 지금 연결합니다.Link a cluster if you haven't yet done so.

  4. 모든 코드를 선택하고 스크립트 편집기를 마우스 오른쪽 단추로 클릭한 다음, Spark: PySpark 대화형 을 선택하여 쿼리를 제출하거나 Ctrl+Alt+I 바로 가기를 사용합니다.Choose all the code and right-click the script editor, select Spark: PySpark Interactive to submit the query, or use shortcut Ctrl + Alt + I.

    pyspark 대화형 상황에 맞는 메뉴

  5. 기본 클러스터를 지정하지 않은 경우 클러스터를 선택합니다.Select the cluster if you haven't specified a default cluster. 몇 분 후에 Python 대화형 결과가 새 탭에 나타납니다. 도구를 사용하여 상황에 맞는 메뉴를 통해 전체 스크립트 파일 대신 코드 블록을 제출할 수도 있습니다.After a few moments, the Python Interactive results appear in a new tab. The tools also allow you to submit a block of code instead of the whole script file using the context menu.

    pyspark 대화형 python 대화형 창

  6. “%% Info” 를 입력하고 Shift+Enter 를 눌러 작업 정보를 봅니다.Enter "%%info", and then press Shift + Enter to view job information. (선택 사항)(Optional)

    작업 정보 보기

    注意

    설정에서 Python 확장 사용 의 선택을 취소하면(기본 설정은 선택됨), 제출한 pyspark 상호 작용 결과에서 이전 창을 사용합니다.When Python Extension Enabled is unchecked in the settings (The default setting is checked), the submitted pyspark interaction results will use the old window.

    pyspark 대화형 python 확장 사용 안 함

PySpark 일괄 작업 제출Submit PySpark batch job

  1. 앞서 만든 SQLBDCexample 폴더를 닫은 경우 다시 엽니다.Reopen the folder SQLBDCexample created earlier if closed.

  2. 앞서 만든 HelloWorld.py 파일을 선택하면 스크립트 편집기에서 열립니다.Select the file HelloWorld.py created earlier and it will open in the script editor.

  3. 아직 클러스터를 연결하지 않은 경우 지금 연결합니다.Link a cluster if you haven't yet done so.

  4. 스크립트 편집기를 마우스 오른쪽 단추로 클릭하고 Spark: PySpark 일괄 처리 를 선택하거나 Ctrl+Alt+H 바로 가기를 사용합니다.Right-click the script editor, and then select Spark: PySpark Batch, or use shortcut Ctrl + Alt + H.

  5. 기본 클러스터를 지정하지 않은 경우 클러스터를 선택합니다.Select the cluster if you haven't specified a default cluster. Python 작업을 제출하면 Visual Studio Code의 출력 창에 제출 로그가 표시됩니다.After you submit a Python job, submission logs appear in the OUTPUT window in Visual Studio Code. Spark UI URLYarn UI URL 도 표시됩니다.The Spark UI URL and Yarn UI URL are shown as well. 웹 브라우저에서 URL을 열어 작업 상태를 추적할 수 있습니다.You can open the URL in a web browser to track the job status.

    Python 작업 결과 제출

Apache Livy 구성Apache Livy configuration

Apache Livy 구성이 지원되며, 작업 영역 폴더에 있는 .VSCode\settings.json 에서 설정할 수 있습니다.Apache Livy configuration is supported, it can be set at the .VSCode\settings.json in the work space folder. 현재, Livy 구성은 Python 스크립트만 지원합니다.Currently, Livy configuration only supports Python script. 자세한 내용은 Livy 추가 정보를 참조하세요.More details, see Livy README.

Livy 구성을 트리거하는 방법How to trigger Livy configuration

방법 1Method 1

  1. 메뉴 모음에서 파일 > 기본 설정 > 설정 으로 이동합니다.From the menu bar, navigate to File > Preferences > Settings.
  2. 검색 설정 텍스트 상자에 HDInsight 작업 제출: Livy 구성 을 입력합니다.In the Search settings text box enter HDInsight Job Sumission: Livy Conf.
  3. 관련 검색 결과에 대해 settings.json에서 편집 을 선택합니다.Select Edit in settings.json for the relevant search result.

방법 2Method 2

파일을 제출하고, .vscode 폴더가 작업 폴더에 자동으로 추가되는 것을 확인합니다.Submit a file, notice the .vscode folder is added automatically to the work folder. .vscode\settings.json을 클릭하면 Livy 구성을 찾을 수 있습니다.You can find the Livy configuration by clicking .vscode\settings.json.

  • 프로젝트 설정:The project settings:

    Livy 구성

注意

driverMomoryexecutorMomry 설정의 값을 단위와 함께 지정합니다(예:1g 또는 1024m).For settings driverMomory and executorMomry, set the value with unit, for example 1g or 1024m.

지원되는 Livy 구성Supported Livy configurations

POST/일괄 처리POST /batches

요청 본문Request body

namename descriptiondescription typetype
파일file 실행할 애플리케이션이 포함된 파일File containing the application to execute path(필수)path (required)
proxyUserproxyUser 작업을 실행할 때 가장할 사용자User to impersonate when running the job 문자열string
classNameclassName 애플리케이션 Java/Spark 주 클래스Application Java/Spark main class 문자열string
argsargs 애플리케이션의 명령줄 인수Command line arguments for the application 문자열 목록list of strings
jarsjars 이 세션에서 사용할 jarjars to be used in this session 문자열 목록List of string
pyFilespyFiles 이 세션에서 사용할 Python 파일Python files to be used in this session 문자열 목록List of string
filesfiles 이 세션에서 사용할 파일files to be used in this session 문자열 목록List of string
driverMemorydriverMemory 드라이버 프로세스에 사용할 메모리 크기Amount of memory to use for the driver process 문자열string
driverCoresdriverCores 드라이버 프로세스에 사용할 코어 수Number of cores to use for the driver process intint
executorMemoryexecutorMemory 실행기 프로세스당 사용할 메모리 크기Amount of memory to use per executor process 문자열string
executorCoresexecutorCores 각 실행기에 사용할 코어 수Number of cores to use for each executor intint
numExecutorsnumExecutors 이 세션에서 시작할 실행기 수Number of executors to launch for this session intint
archivesarchives 이 세션에서 사용할 보관 파일Archives to be used in this session 문자열 목록List of string
queuequeue 제출된 대상 YARN 큐의 이름The name of the YARN queue to which submitted 문자열string
namename 이 세션의 이름The name of this session 문자열string
confconf Spark 구성 속성Spark configuration properties 키=값 맵Map of key=val

응답 본문Response Body

만든 일괄 처리 개체입니다.The created batch object.

namename descriptiondescription typetype
idid 세션 IDThe session id intint
appIdappId 이 세션의 애플리케이션 IDThe application id of this session StringString
appInfoappInfo 자세한 애플리케이션 정보The detailed application info 키=값 맵Map of key=val
loglog 로그 줄The log lines 문자열 목록list of strings
statestate 일괄 처리 상태The batch state 문자열string

注意

할당된 Livy 구성은 스크립트를 제출할 때 출력 창에 표시됩니다.The assigned Livy config will display in output pane when submit script.

추가 기능Additional features

Visual Studio Code용 Spark & Hive는 다음과 같은 기능을 지원합니다.Spark & Hive for Visual Studio Code supports the following features:

  • IntelliSense 자동 완성.IntelliSense autocomplete. 키워드, 메서드, 변수 등에 대한 제안이 팝업됩니다.Suggestions pop up for keyword, methods, variables, and so on. 아이콘마다 다른 형식의 개체를 나타냅니다.Different icons represent different types of objects.

    Visual Studio Code용 Spark & Hive Tools IntelliSense 개체 형식

  • IntelliSense 오류 표식.IntelliSense error marker. 언어 서비스는 Hive 스크립트의 편집 오류에 밑줄을 긋습니다.The language service underlines the editing errors for the Hive script.

  • 구문 강조 표시.Syntax highlights. 언어 서비스는 변수, 키워드, 데이터 형식, 함수 등을 구분하기 위해 각기 다른 색을 사용합니다.The language service uses different colors to differentiate variables, keywords, data type, functions, and so on.

    Visual Studio Code용 Spark & Hive Tools 구문 강조 표시

  1. 메뉴 모음에서 보기 > 명령 팔레트... 로 이동한 다음, Spark/Hive: 클러스터 연결 해제 를 입력합니다.From the menu bar navigate to View > Command Palette..., and then enter Spark / Hive: Unlink a Cluster.

  2. 연결을 해제할 클러스터를 선택합니다.Select cluster to unlink.

  3. 확인을 위해 출력 뷰를 검토합니다.Review OUTPUT view for verification.

다음 단계Next steps

SQL Server 빅 데이터 클러스터 및 관련 시나리오에 대한 자세한 내용은 SQL Server 빅 데이터 클러스터SQL Server Big Data Clusters를 참조하세요.For more information on SQL Server big data cluster and related scenarios, See SQL Server 빅 데이터 클러스터SQL Server Big Data Clusters.