콘솔에서 Amazon Redshift Serverless 시작하기
이 섹션에서는 EMR Studio 생성을 포함하여 EMR Serverless 작업을 설명합니다. 또한 작업 실행을 제출하고 로그를 보는 방법도 설명합니다.
1단계: EMR Serverless 애플리케이션 생성
다음과 같이 EMR Serverless를 사용하여 새 애플리케이션을 생성합니다.
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/emr에서 Amazon EMR 콘솔을 엽니다.
-
왼쪽 탐색 창에서 EMR Serverless를 선택하여 EMR Serverless 랜딩 페이지로 이동합니다.
-
EMR Serverless애플리케이션을 생성하거나 관리하려면 EMR Studio UI가 필요합니다.
-
애플리케이션을 생성하려는 AWS 리전에 이미 EMR Studio가 있는 경우 애플리케이션 관리를 선택하여 EMR Studio로 이동하거나 사용할 Studio를 선택합니다.
-
애플리케이션을 생성하려는 AWS 리전에 EMR Studio가 없는 경우 시작하기를 선택한 다음, Studio 생성 및 시작dmf 선택합니다. EMR Serverless는 애플리케이션을 생성하고 관리할 수 있도록 EMR Studio를 생성합니다.
-
새 탭에서 열리는 Studio 생성 UI에 애플리케이션의 이름, 유형 및 릴리스 버전을 입력합니다. 배치 작업만 실행하려면 배치 작업에만 기본 설정 사용을 선택합니다. 대화형 워크로드의 경우 대화형 워크로드에 대한 기본 설정 사용을 선택합니다. 이 옵션을 사용하여 대화형 지원 애플리케이션에서 배치 작업을 실행할 수도 있습니다. 필요한 경우 나중에 이러한 설정을 변경할 수 있습니다.
자세한 내용은 Studio 생성을 참조하세요.
-
애플리케이션 생성을 선택하여 첫 번째 애플리케이션을 생성합니다.
작업 실행 또는 대화형 워크로드를 제출하려면 다음 섹션(2단계: 작업 실행 또는 대화형 워크로드 제출)으로 계속 진행합니다.
2단계: 작업 실행 또는 대화형 워크로드 제출
- Spark job run
-
이 자습서에서는 PySpark 스크립트를 사용하여 여러 텍스트 파일에서 고유한 단어가 발생하는 횟수를 계산합니다. 퍼블릭 읽기 전용 S3 버킷은 스크립트 및 데이터세트를 모두 저장합니다.
Spark 작업을 실행하는 방법
-
다음 명령을 사용하여 샘플 스크립트 wordcount.py
를 새 버킷에 업로드합니다.
aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket
/scripts/
-
1단계: EMR Serverless 애플리케이션 생성을 완료하면 EMR Studio의 애플리케이션 세부 정보 페이지로 이동합니다. 여기서 작업 제출 옵션을 선택합니다.
-
작업 제출 페이지에서 다음을 완료합니다.
-
이름 필드에 작업 실행을 직접 호출하려는 이름을 입력합니다.
-
런타임 역할 필드에 작업 런타임 역할 생성에서 생성한 역할의 이름을 입력합니다.
-
스크립트 위치 필드에 s3://amzn-s3-demo-bucket
/scripts/wordcount.py
를 S3 URI로 입력합니다.
-
스크립트 인수 필드에 ["s3://amzn-s3-demo-bucket
/emr-serverless-spark/output"]
을 입력합니다.
-
Spark 속성 섹션에서 텍스트로 편집을 선택하고 다음 구성을 입력합니다.
--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1
-
작업 실행을 시작하려면 작업 제출을 선택합니다.
-
작업 실행 탭에서 실행 중 상태의 새 작업 실행이 표시됩니다.
- Hive job run
-
자습서의 이 부분에서는 테이블을 생성하고, 몇 개의 레코드를 삽입하며, 개수 집계 쿼리를 실행합니다. Hive 작업을 실행하려면 먼저 단일 작업의 일부로 실행할 모든 Hive 쿼리가 포함된 파일을 생성하고 S3에 파일을 업로드한 다음, Hive 작업을 시작할 때 이 S3 경로를 지정합니다.
Hive 작업을 실행하는 방법
-
Hive 작업에서 실행하려는 모든 쿼리가 포함된 hive-query.ql
파일을 생성합니다.
create database if not exists emrserverless;
use emrserverless;
create table if not exists test_table(id int);
drop table if exists Values__Tmp__Table__1;
insert into test_table values (1),(2),(2),(3),(3),(3);
select id, count(id) from test_table group by id order by id desc;
-
다음 명령을 사용하여 S3 버킷에 hive-query.ql
을 업로드합니다.
aws s3 cp hive-query.ql s3://amzn-s3-demo-bucket
/emr-serverless-hive/query/hive-query.ql
-
1단계: EMR Serverless 애플리케이션 생성을 완료하면 EMR Studio의 애플리케이션 세부 정보 페이지로 이동합니다. 여기서 작업 제출 옵션을 선택합니다.
-
작업 제출 페이지에서 다음을 완료합니다.
-
이름 필드에 작업 실행을 직접 호출하려는 이름을 입력합니다.
-
런타임 역할 필드에 작업 런타임 역할 생성에서 생성한 역할의 이름을 입력합니다.
-
스크립트 위치 필드에 s3://amzn-s3-demo-bucket
/emr-serverless-hive/query/hive-query.ql
를 S3 URI로 입력합니다.
-
Hive 속성 섹션에서 텍스트로 편집을 선택하고 다음 구성을 입력합니다.
--hiveconf hive.log.explain.output=false
-
작업 구성 섹션에서 JSON으로 편집을 선택하고 다음 JSON을 입력합니다.
{
"applicationConfiguration":
[{
"classification": "hive-site",
"properties": {
"hive.exec.scratchdir": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/hive/scratch",
"hive.metastore.warehouse.dir": "s3://amzn-s3-demo-bucket
/emr-serverless-hive/hive/warehouse",
"hive.driver.cores": "2",
"hive.driver.memory": "4g",
"hive.tez.container.size": "4096",
"hive.tez.cpu.vcores": "1"
}
}]
}
-
작업 실행을 시작하려면 작업 제출을 선택합니다.
-
작업 실행 탭에서 실행 중 상태의 새 작업 실행이 표시됩니다.
- Interactive workload
-
Amazon EMR 6.14.0 이상에서 EMR Studio에서 호스팅되는 노트북을 사용하여 EMR Serverless에서 Spark에 대한 대화형 워크로드를 실행할 수 있습니다. 권한 및 사전 조건을 포함한 자세한 내용은 EMR Studio를 통해 EMR Serverless에서 대화형 워크로드 실행 섹션을 참조하세요.
애플리케이션을 생성하고 필요한 권한을 설정한 후 다음 단계를 사용하여 EMR Studio에서 대화형 노트북을 실행합니다.
-
EMR Studio의 워크스페이스 탭으로 이동합니다. 그래도 Amazon S3 스토리지 위치 및 EMR Studio 서비스 역할을 구성해야 하는 경우 화면 상단의 배너에서 Studio 구성 버튼을 선택합니다.
-
노트북에 액세스하려면 워크스페이스를 선택하거나 새 워크스페이스를 생성합니다. 빠른 시작을 사용하여 새 탭에서 워크스페이스를 엽니다.
-
새로 열린 탭으로 이동합니다. 왼쪽 탐색 창에서 컴퓨팅 아이콘을 선택합니다. 컴퓨팅 유형으로 EMR Serverless를 선택합니다.
-
이전 섹션에서 생성한 대화형 지원 애플리케이션을 선택합니다.
-
런타임 역할 필드에 EMR Serverless 애플리케이션이 작업 실행을 위해 수임할 수 있는 IAM 역할의 이름을 입력합니다. 런타임 역할에 대한 자세한 내용은 Amazon EMR Serverless 사용 설명서에서 작업 런타임 역할을 참조하세요.
-
연결을 선택합니다. 최대 1분이 걸릴 수 있습니다. 페이지가 연결되면 새로 고쳐집니다.
-
커널을 선택하고 노트북을 시작합니다. EMR Serverless에서 예제 노트북을 찾아 워크스페이스에 복사할 수도 있습니다. 예제 노트북에 액세스하려면 왼쪽 탐색의 {...}
메뉴로 이동하여 노트북 파일 이름에 serverless
가 있는 노트북을 탐색합니다.
-
노트북에서 드라이버 로그 링크와 작업을 모니터링하는 지표를 제공하는 실시간 인터페이스인 Apache Spark UI에 대한 링크에 액세스할 수 있습니다. 자세한 내용은 Amazon EMR Serverless 사용 설명서의 EMR Serverless 애플리케이션 및 작업 모니터링을 참조하세요.
애플리케이션을 Studio Workspace에 연결하면 아직 실행되지 않은 경우 애플리케이션 시작이 자동으로 트리거됩니다. 애플리케이션을 사전에 시작하고 워크스페이스에 연결하기 전에 준비 상태를 유지할 수도 있습니다.
3단계: 애플리케이션 UI 및 로그 보기
애플리케이션 UI를 보려면 먼저 작업 실행을 식별합니다. Spark UI 또는 Hive Tez UI에 대한 옵션은 작업 유형에 따라 해당 작업 실행의 첫 번째 옵션 행에서 사용할 수 있습니다. 적절한 옵션을 선택합니다.
Spark UI를 선택한 경우 실행기 탭을 선택하여 드라이버 및 실행기 로그를 봅니다. Hive Tez UI를 선택한 경우 모든 태스크 탭을 선택하여 로그를 확인합니다.
작업 실행 상태가 성공으로 표시되면 S3 버킷에서 작업의 출력을 볼 수 있습니다.
4단계: 정리
15분 동안 활동이 없으면 생성한 애플리케이션은 자동으로 중지되지만 그래도 다시 사용하지 않을 리소스는 해제하는 것이 좋습니다.
애플리케이션을 삭제하려면 애플리케이션 나열 페이지로 이동합니다. 생성한 애플리케이션을 선택하고 작업 → 중지를 선택하여 애플리케이션을 중지합니다. 애플리케이션이 STOPPED
상태이면 동일한 애플리케이션을 선택하고 작업 → 삭제를 선택합니다.
Spark 및 Hive 작업 실행에 대한 추가 예제는 EMR Serverless 작업을 실행하는 경우 Spark 구성 사용 및 EMR Serverless 작업을 실행하는 경우 Hive 구성 사용 섹션을 참조하세요.