728x90
[AWS]EMR 시리즈
1. EMR 세팅하기(현재글)
2. EMR 접속하기(링크)
EMR 클러스터를 실제로 구축하면서, 세부적인 기능과 활용하는 방법에 대해서 정리해보려 한다.
우선 알아야할 사항은 emr은 delete 개념이 없다. 그리고 re-start 개념도 없다.
즉 terminate를 누르면 그 클러스터는 영원히 종료가 된다. 그리고 종료된 cluster를 삭제하거나 재시작할 수 없는 것이다.
따라서 test용 emr은 가장 저렴한 버전으로 셋팅했다.
이 후에도 계속 가공 테스트나 연결 테스트를 하기 위한 플랫폼으로 활용하려 한다.
EMR 생성하기
aws console로 구축하되 세부적인 설정을위해 advanced option으로 설정하기
- version은 가장 최신꺼는 불안정할거 같아서 5.x.x 버전으로 선택함.
- metastore
- emr에서 데이터처리 작업을 하고 나면 파일시스템에 저장된다. 특히 나의 경우 S3를 파일시스템으로 쓸것이고, 그러면 파일 경로로 데이터가 저장된다. 이렇게 저장된 데이터를 하나의 데이터 스키마형태로 보고 관리할 수 있도록 hive metadata라는 기능을 제공하는데 이를 위해서 별도 데이터베이스인 mysql을 쓰거나 glue datacatalog 기능을 쓸 수 있다.
- glue datacatalog의 경우 백만개까지는 무료이고, 초반에 UI도 잘 제공하지만 이후에 어차피 mysql로 설정해야 하는 거 지금 리소스를 쓰는게 나을까?
- hive metastore를 뭐로 쓸지에 대해 고민해보기
- edit software settings는 뭐지?
- emrfs를 파일시스템 저장으로 쓰기 위한 설정인가 했지만 그도 아닌거 같다.
- 일단 기본값 설정으로 두고
- steps기반으로 어떠한 액션을 제출해서 클러스터를 실행하게 되면 기본적으로 lambda를 바탕으로 실행된다. 그래서 추가적인 비용이 발생해서, 이에 대해서는 CLI로 접속해서 그때그때 실행해주는 방향 등이 있는데 나는 orchestration tool을 써서 job submmit을 해줄 것이다.
- 나는 airflow를 쓸 예정이며, 자세한 방법은 class 101이 airflow를 통해 spark job을 emr에 submit하는 방법에 대한 블로그 글을 참고했다.
- instance fleet은 인스턴스내의 core에 따라 unit단위로 쪼개서 spot과 on demand로 좀 더 세부적으로 구성할 수 있으며 따라서 인스턴스 플릿으로 인스턴스 그룹 구성하기.
- vpc를 설정해주고 private subnet에 emr을 설정해주기
- 실제 개발용으로는 테스트를 위해서 public subnet에도 emr을 설정/생성해 주었다.
- 각 노드의 인스턴스 타입은 테스트 용이니까 가장 저렴하게 설정해주고 1개씩만 함. task노드의 경우는 spot으로 지정.
- 스팟 인스턴스 설정은 aws에서 제공하는 링크 참고해서 세팅했다.
- auto-termination은 껐다.
- EC2 보안그룹을 설정해준다.
- 없는 경우 기본적으로 생성해주기 때문에 별도로 만들어주진 않았다.
EMR 세부 기능
요약 | 이 탭을 사용하여 클러스터 구성의 기본 사항 (마스터 노드에 대한 SSH 연결에 사용되는 URL, 클러스터 생성 시 이 설치한 오픈 소스 애플리케이션, Amazon S3에 로그가 저장되는 위치 및 클러스터를 생성하는 데 사용되는 Amazon EMR 버전 등) 을 봅니다. |
애플리케이션 사용자 인터페이스 | 이 탭을 사용하여 클러스터 외부의 영구 YARN 타임라인 서버 및 Tez UI 애플리케이션 세부 정보를 볼 수 있습니다. Spark 작업의 경우 작업, 단계 및 실행기에 대한 사용 가능한 정보를 드릴 다운할 수 있습니다. 자세한 정보는 애플리케이션 이력 보기을 참조하십시오. 클러스터가 실행되는 동안 클러스터 내 애플리케이션 사용자 인터페이스를 사용할 수 있습니다. |
모니터링(Monitoring) | 이 탭을 사용하여 지정한 기간 동안 클러스터 작업의 주요 지표를 설명하는 그래프를 봅니다. 클러스터 수준 데이터, 노드 수준 데이터, I/O 및 데이터 스토리지에 대한 정보를 볼 수 있습니다. |
Hardware(하드웨어) | 이 탭을 사용하여 EC2 인스턴스 ID, DNS 이름 및 IP 주소 등 클러스터의 노드에 대한 정보를 봅니다. |
이벤트 | 이 탭을 사용하여 클러스터의 이벤트 로그를 봅니다. 자세한 정보는 모니터링 CloudWatch 행사을 참조하십시오. |
단계 | 이 탭을 사용하여 제출한 단계의 상태 및 로그 파일에 액세스합니다. 단계에 대한 자세한 정보는 다음을 사용하여 단계 작업AWS CLI콘솔 단원을 참조하십시오. |
구성 | 이 탭을 사용하여 클러스터에 적용된 사용자 지정 구성 객체를 봅니다. 구성 분류에 대한 자세한 내용은 단원을 참조하십시오.애플리케이션 구성의Amazon EMR 릴리즈 가이드. |
Bootstrap actions(부트스트랩 작업) | 이 탭을 사용하여 클러스터를 시작할 때 실행되는 모든 부트스트랩 작업의 상태를 봅니다. 부트스트랩 작업은 사용자 지정 소프트웨어 설치 및 고급 구성에 사용됩니다. 자세한 정보는 추가 소프트웨어 설치를 위한 부트스트랩 작업 생성을 참조하십시오 |
Reference
https://docs.aws.amazon.com/ko_kr/emr/latest/ReleaseGuide/emr-configure-apps.html
https://tomharrisonjr.com/hadoop-to-amazon-emr-migration-15b57ab3079b
https://pearlluck.tistory.com/634
https://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/emr-manage-view.html
https://emr-etl.workshop.aws/ko/hive_workshop/01-hive-cli.html
https://dev.classmethod.jp/articles/mistakes-that-you-make-often-when-you-create-alb/
728x90
'DevOps' 카테고리의 다른 글
[AWS]EMR 접속해서 실습환경 구축하기 (0) | 2022.05.27 |
---|---|
[AWS] EKS 세팅 실습하기 (0) | 2022.05.27 |
AWS VS GCP (0) | 2022.03.24 |
VM(가상머신) VS Container(컨테이너) (0) | 2022.03.01 |
CI/CD란? (0) | 2022.03.01 |