Amazon EMR 기반 아파치 하둡

Apache Hadoop on EMR을 선택해야 하는 이유

Apache™ Hadoop®은 대규모 데이터 세트를 효율적으로 처리하는 데 사용할 수 있는 오픈 소스 소프트웨어 프로젝트입니다. 하나의 대형 컴퓨터를 사용하여 데이터를 처리 및 저장하는 대신 하둡을 사용하면 상용 하드웨어를 함께 클러스터링하여 대량의 데이터 세트를 병렬로 분석할 수 있습니다.

하둡 에코시스템에는 많은 애플리케이션과 실행 엔진이 있어 분석 워크로드의 요구에 맞는 다양한 도구를 제공합니다. Amazon EMR은 Hadoop 에코시스템에서 Hadoop과 기타 애플리케이션을 실행하는 Amazon EC2 인스턴스의 완전하게 구성된 탄력적인 클러스터를 손쉽게 생성하고 관리할 수 있게 해줍니다.

하둡 에코시스템의 애플리케이션 및 프레임워크

하둡은 일반적으로 MapReduce(실행 프레임워크), YARN(리소스 관리자) 및 HDFS(분산 스토리지)가 포함된 실제 Apache 하둡 프로젝트를 지칭합니다. Hadoop MapReduce 대신 실행 엔진으로 사용할 수 있는 차세대 프레임워크인 Apache Tez를 설치할 수 있습니다. 또한, Amazon EMR에는 하둡이 Amazon S3를 스토리지 계층으로 사용할 수 있게 해주는 커넥터인 EMRFS가 포함되어 있습니다.

하둡 에코시스템에는 지연 시간이 짧은 쿼리, 대화형 쿼리를 위한 GUI, SQL과 같은 다양한 인터페이스, 분산 NoSQL 데이터베이스 등을 지원하는 도구를 포함하여 다른 애플리케이션 및 프레임워크가 있습니다. 하둡 에코시스템에는 하둡 핵심 구성 요소에 추가 기능을 구축할 수 있도록 설계된 다양한 오픈 소스 도구가 포함되어 있으며, Amazon EMR을 사용하여 Hive, Pig, Hue, Ganglia, Oozie 및 HBase와 같은 도구를 클러스터에 손쉽게 설치 및 구성할 수 있습니다. 또한, Hadoop 외에도 인 메모리 처리를 위한 Apache Spark 또는 대화형 SQL을 위한 Presto 등 다른 프레임워크를 Amazon EMR에서 실행할 수 있습니다.

하둡: 기본 구성 요소

Amazon EMR은 Hadoop MapReduce, YARN, HDFS, Apache Tez를 비롯한 Hadoop 프로젝트의 애플리케이션을 클러스터의 노드 전체에 프로그래밍 방식으로 설치 및 구성합니다.

하둡 에코시스템의 실행 엔진인 하둡 MapReduce와 Tez는 작업을 Amazon EMR 클러스터의 노드 전체에 배포할 수 있도록 작은 크기로 나누는 프레임워크를 사용하여 워크로드를 처리합니다. 하둡 MapReduce와 Tez는 클러스터의 어떤 시스템이든 언제라도 장애가 발생할 수 있다는 점을 염두에 두고 구축되었으며, 내결함성을 제공하도록 설계되었습니다. 작업을 실행 중인 서버에 장애가 발생하는 경우, 하둡은 해당 작업이 완료될 때까지 이를 다른 시스템에서 다시 실행합니다.

Java로 MapReduce와 Tez 프로그램을 작성하고, 하둡 스트리밍을 사용하여 병렬로 사용자 정의 스크립트를 실행하며, MapReduce와 Tez에서 좀 더 상위 수준의 추상화를 위해 Hive와 Pig를 활용하거나 하둡과 상호 작용하는 다른 도구를 사용할 수 있습니다.

하둡 2부터는 Yet Another Resource Negotiator(YARN)에서 리소스 관리를 수행합니다. YARN은 클러스터 전체에서 모든 리소스를 추적하고, 이러한 리소스가 동적으로 할당되어 처리 작업의 모든 태스크를 완수할 수 있게 합니다. YARN은 하둡 MapReduce와 Tez 워크로드뿐만 아니라 Apache Spark와 같은 다른 배포 프레임워크도 관리할 수 있습니다.

Amazon EMR 클러스터에서 EMR 파일 시스템(EMRFS)을 실행함으로써 Amazon S3를 하둡용 데이터 계층으로 활용할 수 있습니다. Amazon S3는 확장성이 뛰어나고 저렴하며, 내구성을 제공하도록 설계되었으므로 빅 데이터 처리를 위한 데이터 스토어로 매우 적합합니다. Amazon S3에 데이터를 저장하면, 스토리지 계층으로부터 컴퓨팅 계층을 결합 해제할 수 있습니다. 따라서 클러스터상 스토리지를 최대화하기 위해 클러스터에 추가 노드를 설정하는 대신에 워크로드에 필요한 CPU와 메모리 양에 맞춰 Amazon EMR 클러스터의 크기를 조정할 수 있습니다. 또한 Amazon EMR 클러스터가 유휴 상태가 되면 비용 절감을 위해 이를 종료할 수 있으며, 이 경우에도 데이터는 Amazon S3에 유지됩니다.

EMRFS는 성능 기준에 맞게 Amazon S3에 병렬로 직접 읽고 쓸 수 있도록 하둡에 최적화되어 있으며, Amazon S3 서버 측 및 클라이언트 측 암호화로 암호화된 객체를 처리할 수 있습니다. EMRFS에서는 Amazon S3를 데이터 레이크로 사용할 수 있으며, Amazon EMR의 하둡은 탄력적 쿼리 계층으로 사용할 수 있습니다.

하둡에는 분산 스토리지 시스템, 즉 클러스터의 로컬 디스크에 큰 블록으로 데이터를 저장하는 하둡 분산 파일 시스템(HDFS)이 포함되어 있습니다. HDFS는 구성 가능한 복제 인자(기본 설정이 3회)를 가지고 있어 가용성과 내구성을 높여줍니다. HDFS는 노드에 장애가 발생하고 새로운 노드가 추가됨에 따라, 복제를 모니터링하고 노드 전체에서 데이터의 균형을 유지합니다.

HDFS는 Amazon EMR 클러스터에 하둡과 함께 자동으로 설치되며, HDFS를 Amazon S3와 함께 사용하여 입력 및 출력 데이터를 저장할 수 있습니다. Amazon EMR 보안 구성을 사용하여 HDFS를 손쉽게 암호화할 수 있습니다. 또한, Amazon EMR은 입력 데이터가 Amazon S3에 저장되더라도, 하둡 MapReduce 작업 중에 생성된 중간 데이터를 위해 HDFS와 로컬 디스크를 사용하도록 하둡을 구성합니다.

Amazon EMR 기반 하둡의 장점

새로운 하둡 클러스터를 신속하게 동적으로 시작하거나 기존 Amazon EMR 클러스터에 서버를 추가하여, 사용자와 데이터 과학자에게 리소스를 제공하는 데 걸리는 시간을 대폭 단축할 수 있습니다. AWS 플랫폼에서 하둡을 사용하면 실험과 개발을 위해 리소스를 할당하는 비용과 시간을 줄임으로써 조직의 민첩성을 획기적으로 높일 수 있습니다.

하둡 구성, 네트워킹, 서버 설치, 보안 구성 및 지속적인 관리상의 유지 보수는 복잡하고 어려운 작업이 될 수 있습니다. 관리형 서비스인 Amazon EMR에서 하둡 인프라 요구 사항을 처리하므로, 사용자는 핵심 비즈니스에 집중할 수 있습니다.

Hadoop 환경을 Amazon S3, Amazon Kinesis, Amazon RedshiftAmazon DynamoDB와 같은 다른 서비스와 손쉽게 통합하여 AWS 플랫폼의 많은 다양한 서비스에서 데이터 이동, 워크플로 및 분석을 지원할 수 있습니다. 또한, AWS Glue Data Catalog를 Apache Hive 및 Apache Spark의 관리형 메타데이터 리포지토리로 사용할 수 있습니다.

많은 하둡 작업이 기본적으로 변동이 심합니다. 예를 들어 ETL 작업은 시간, 일 또는 월 단위로 실행될 수 있지만, 금융 기업용 모델링 작업이나 유전자 배열 작업은 일 년에 몇 차례만 발생할 수 있습니다. Amazon EMR 기반 하둡을 사용하면 이러한 워크로드 클러스터를 손쉽게 가동하고, 결과를 저장하며, 더 이상 필요하지 않을 때는 하둡 리소스를 종료하여 불필요한 인프라 비용을 방지할 수 있습니다. EMR 6.x은 YARN NodeManager을 허용하여 EMR 클러스터 호스트 또는 Docker 컨테이너 내에 바로 컨테이너를 실행하는 하둡 3을 지원합니다. 자세한 내용을 알아보려면 설명서를 참조하십시오.

Amazon EMR 기반 Hadoop을 사용하면 원하는 AWS 리전에 있는 원하는 수의 가용 영역에서 클러스터를 시작할 수 있는 유연성을 갖게 됩니다. 몇 분 만에 다른 영역에서 클러스터를 시작할 수 있으므로 한 리전 또는 영역의 잠재적 문제나 위협도 손쉽게 피해 갈 수 있습니다.

하둡 환경을 배포하기 전에 용량을 계획하면 비싼 유휴 리소스 또는 리소스 제한이 발생하는 경우가 많습니다. Amazon EMR에서는 몇 분 만에 필요한 용량의 클러스터를 생성하고 Auto Scaling을 사용하여 노드를 동적으로 확장 및 축소할 수 있습니다.

하둡과 빅 데이터는 어떤 관계가 있나요?

Hadoop은 대량으로 확장 가능하기 때문에 빅 데이터 워크로드를 처리하는 데 주로 사용됩니다. 하둡 클러스터의 처리 성능을 향상하려면, 요구에 맞춰 필요한 CPU 및 메모리 리소스가 있는 서버를 추가하십시오.

하둡은 컴퓨팅 분석 워크로드를 병렬로 처리하면서 동시에 높은 수준의 내구성과 가용성을 제공합니다. 처리의 가용성, 내구성 및 확장성이 조합된 하둡은 빅 데이터 워크로드에 아주 적합합니다. Amazon EMR을 사용하여 몇 분 내에 Hadoop을 실행하는 Amazon EC2 인스턴스 클러스터를 생성 및 구성하고 데이터에서 가치를 창출할 수 있습니다.

사용 사례

Apache와 Hadoop은 Apache Software Foundation의 상표입니다.

하둡은 사용자를 분류하고 사용자의 선호도를 이해하기 위해 클릭스트림 데이터를 분석하는 데 사용될 수 있습니다. 광고사는 클릭스트림과 광고 노출 로그를 분석하여 더 효율적인 광고를 제공할 수 있습니다.

Razorfish가 클릭스트림 분석에 Amazon EMR 기반 Hadoop을 어떻게 사용하는지 알아보기

하둡은 웹 및 모바일 애플리케이션에서 생성된 로그를 처리하는 데 사용될 수 있습니다. 하둡은 고객이 페타바이트 규모의 비정형 또는 반정형 데이터를 애플리케이션이나 사용자에 대한 유용한 정보로 전환할 수 있도록 지원합니다.

Yelp가 Amazon EMR 기반 Hadoop을 사용하여 주요 웹 사이트 기능을 구현하는 방법에 대해 알아보기

 

Hive와 같은 하둡 에코시스템 애플리케이션은 사용자가 SQL 인터페이스를 통해 하둡 MapReduce를 활용할 수 있도록 함으로써, 대규모의 내결함성 분산 데이터 웨어하우징에서 분석을 지원합니다. 하둡을 사용하여 데이터를 저장하고 사용자가 데이터 크기와 관계없이 쿼리를 전송할 수 있도록 하십시오.

Netflix가 Amazon EMR 기반 Hadoop을 사용하여 페타바이트 규모의 데이터 웨어하우스를 실행하는 방법 시청하기

하둡은 막대한 양의 유전자 데이터와 기타 대규모 과학 데이터 집합을 빠르고 효율적으로 처리하는 데 사용될 수 있습니다. AWS는 커뮤니티에서 무료로 사용할 수 있도록 1000 게놈 프로젝트 데이터를 공개하고 있습니다.

AWS에서의 유전체학에 대해 자세히 알아보기

 

뛰어난 확장성과 저렴한 비용을 지원하는 하둡은 다운스트림 시스템에서 좀 더 쉽게 사용할 수 있도록 빅 데이터 세트를 수집, 정렬, 조인 및 집계하는 작업과 같은 일반 ETL 워크로드에 이상적입니다.

Euclid가 ETL 및 데이터 집계에 어떻게 Amazon EMR 기반 Hadoop을 사용하는지 알아보기