AWS EMR
AWS EMR은 대규모 데이터 처리, 분석 및 머신러닝을 위해 설계된 관리형 클라우드 서비스임.
AWS EMR은 특히 빅데이터 환경에서 많이 사용되며, Hadoop과 Apache Spark 같은 오픈 소스 프레임워크를 사용하여 데이터를 처리함.
AWS EMR 핵심 기능
1. 스케일링
EMR은 수요에 따라 자동으로 클러스터 크기를 조정할 수 있어 사용자는 데이터 처리량에 맞게 자원을 유연하게 확장하거나 축소할 수 있음.
2. 다양한 프레임워크 지원
EMR은 Apache Hadoop, Spark, HBase, Presto 등 다양한 빅데이터 프레임워크를 지원함.
이는 다양한 유형의 데이터 처리 작업을 가능하게 함.
3. 비용 효율성
사용자는 실제 사용한 컴퓨팅 리소스에 대해서만 비용을 지불함.
또한, 스팟 인스턴스를 사용하여 비용을 추가로 절감할 수 있음.
4. 보안
EMR은 AWS의 보안 모델을 통해 데이터를 보호하고, IAM을 통해 접근 제어를 관리할 수 있음.
5. 통합과 연동성
EMR은 AWS의 다른 서비스와 긴밀하게 통합되어 있어 S3, DynamoDB, RDS 등과 같은 저장 옵션과 연동하여 사용할 수 있음.
AWS EMR 사용 사례
1. 데이터 변환과 처리
로그 데이터나 이벤트 데이터 같은 대량의 비정형 데이터를 변환하고 분석하기 위해 사용됨.
2. 머신 러닝
대규모 데이터 세트에 대한 머신 러닝 모델 학습 및 추론에 사용됨.
3. 실시간 데이터 처리
Spark Streaming 이나 Apache Flink와 같은 도구를 사용하여 실시간 데이터 스트리밍과 처리를 할 수 있음.
AWS EMR 장점
1. 유연성
사용자는 필요에 따라 컴퓨팅 리소스를 선택하고 조정할 수 있음.
2. 손쉬운 관리
클러스터 관리, 설정 및 운영이 간소화되어 있어 사용자는 인프라보다 데이터 처리에 더 많은 시간을 할애할 수 있음.
3. 확장성
매우 큰 데이터 세트에 대해 확장 가능하며 효율적인 데이터 처리가 가능함.
AWS EMR 정리
AWS EMR은 빅데이터를 다루는 기업이나 연구 기관에 특히 유용함.
클라우드에서의 데이터 처리와 분석 작업을 간편하게 만들어줌.
이 서비스를 사용함으로써 복잡한 데이터 파이프라인을 효과적으로 관리하고, 더 빠른 인사이트를 얻을 수 있음.
AWS EMR + Spark + Yarn
AWS EMR에서 Apache Spark를 사용할 때 Yarn은 중요한 역할을 함.
Yarn은 Hadoop 2.x 버전에서 도입된 리소스 관리 플랫폼임.
클러스터의 리소스를 관리하고 분산 애플리케이션의 작업을 조정하는 역할을 함.
Spark와 Yarn의 조합은 EMR에서 빅데이터 처리를 위한 강력한 환경을 제공함.
Yarn의 역할
1. 리소스 관리
클러스터의 모든 노드에서 사용 가능한 리소스(메모리, CPU 등)를 관리하고, 이 리소스들을 필요로 하는 애플리케이션에 할당함.
2. 작업 스케줄링
여러 애플리케이션에서 요청하는 리소스를 조정하고, 충돌 없이 효율적으로 리소스를 할당하기 위해 작업을 스케줄링함.
3. 애플리케이션 실행
클러스터에 배포된 애플리케이션의 실행을 관리하고 모니터링함.
Spark + Yarn 통합
AWS EMR에서 Spark를 Yarn 모드로 실행하면, Spark 작업은 Yarn 클러스터의 리소스 관리 체계를 활용할 수 있음.
Spark + Yarn 통합 이점
1. 리소스 최적화
Yarn은 클러스터 전체의 리소스를 효율적으로 관리하고 최적화하여, 여러 Spark 작업이 동시에 실행될 때 리소스 충돌을 방지함.
2. 유연한 리소스 할당
사용자는 Spark 작업에 필요한 리소스를 동적으로 할당하고 조정할 수 있음.
이는 클러스터의 리소스 사용률을 최대화하고 비용을 절감하는 데 도움이 됨.
3. 확장성
Yarn은 수천 노드에 걸친 대규모 클러스터에서도 뛰어난 확장성을 제공함.
이를 통해 매우 큰 데이터 세트를 처리할 수 있음.
4. 다중 테넌시
Yarn은 하나의 클러스터에서 여러 Spark 애플리케이션을 동시에 실행할 수 있게 하여, 리소스를 효율적으로 공유하고 관리할 수 있음.
EMR + Spark + Yarn 설정 및 실행
EMR에서 Spark와 Yarn을 함께 사용할 때, 사용자는 Spark의 "spark-submit" 명령어를 사용하여 애플리케이션을 Yarn 클러스터 모드로 제출할 수 있음.
이 때, 다음과 같은 설정을 지정할 수 있음.
1. "--master yarn"
Spark 작업을 Yarn 에서 실행하도록 설정함.
2. "--deploy-mode cluster"
애플리케이션을 클러스터 모드로 실행하여, 드라이버 프로그램도 클러스터 내에서 실행됨.
EMR + Spark + Yarn 정리
이러한 설정을 통해, EMR에서 호스팅되는 Spark 애플리케이션이 Yarn을 사용하여 클러스터 리소스를 효율적으로 활용하면서, 대규모 데이터 처리 작업을 수행할 수 있음.
Apache Spark
Apache Spark는 대규모 데이터 처리를 위한 오픈소스 분산 컴퓨팅 시스템임.
Hadoop MapReduce를 대체할 수 있는 강력한 프레임워크임.
특히, 머신러닝, 데이터 분석, 실시간 데이터 처리 등의 작업에 적합함.
Apache Spark 특징 및 이점
1. 속도
Spark는 인메모리 데이터 처리를 지원함으로써 Hadoop MapReduce 보다 훨씬 빠른 성능을 제공함.
인메모리 처리는 데이터를 디스크에 쓰고 읽는 것이 아니라 RAM에 저장하고 처리하기 때문에 데이터 액세스 시간이 크게 줄어듬.
이러한 특징은 특히 반복적인 데이터 처리 작업에서 빅데이터 분석 속도를 크게 향상시킴.
2. 다양한 데이터 처리 모델 지원
Spark는 배치 처리뿐만 아니라 실시간 스트리밍, 대화형 쿼리, 머신 러닝, 그래프 데이터 처리를 지원함.
이는 Spark를 하나의 통합된 엔진을 사용해 다양한 종류의 데이터 처리 요구를 충족할 수 있게 함.
2-1. Spark SQL
SQL과 비슷한 구문을 사용하여 데이터를 쿼리할 수 있음.
2-2. Spark Streaming
실시간 데이터 스트림 처리를 위한 기능임.
2-3. MLlib
머신 러닝 알고리즘의 라이브러리임.
스케일링 가능한 머신러닝/데이터 마이닝 알고리즘을 제공함.
2-4. GraphX
그래프와 그래프 병렬 연산을 위한 라이브러리임.
3. 용이한 사용성
Spark는 Scala, Java, Python, R과 같은 여러 프로그래밍 언어를 지원함.
이는 다양한 백그라운드를 가진 개발자들이 Spark를 사용할 수 있게 하며, 데이터 과학자들이 Python, R을 사용하여 머신 러닝 모델을 쉽게 구현할 수 있도록 함.
4. 확장성
Spark는 몇 개의 노드로 구성됨 소규모 클러스터에서부터 수천 개의 노드를 포함하는 대규모 클러스터까지 확장 가능함.
이는 클라우드 환경에서의 사용이 이상적이며, AWS EMR과 같은 클라우드 서비스와 통합되어 클라우드의 유연성과 확장성을 최대한 활용할 수 있음.
5. 강력한 커뮤니티와 생태계
Spark는 강력한 개발자 및 사용자 커뮤니티를 보유하고 있으며, 지속적으로 개선되고 있는 많은 오픈 소스 프로젝트 중 하나임.
많은 기업과 기관이 Spark를 채택하고 있으며, 이는 사용자와 개발자에게 지원과 리소스를 제공하는 데 도움이 됨.
6. 결함 허용성
Spark는 데이터 복사본을 여러 노드에 저장하여 자동으로 데이터를 복구할 수 있는 내장된 결함 허용 메커니즘을 가지고 있음.
작업 실행 중 일부 노드가 실패해도 작업이 중단되지 않고, 실패한 노드의 데이터를 다른 노드에서 복구하여 계속 처리할 수 있음.
'Cloud > AWS' 카테고리의 다른 글
[AWS] DMS, 이관 방식 종류 (0) | 2024.06.01 |
---|---|
[AWS] VPC, VPC 피어링, 서브넷 (0) | 2024.05.25 |
[AWS] Aurora, KMS, Secrets Manager, 자동 자격증명 교체 (0) | 2024.05.04 |
[AWS] EC2 Auto Scaling, CloudWatch 지표 스트림, Kinesis Data Firehose (0) | 2024.05.04 |
[AWS] Lambda 지연시간, Lambda SnapStart, DynamoDB, DynamoDB 모드 종류 (0) | 2024.05.04 |