Mesos 와 YARN 의 차이점과 함께 작동하는 방법.
이것은 두 클러스터에 대한 이야기이다. 첫 번째는 Hadoop 및 프로세스와 완전히 분리된 Apache Hadoop 클러스터입니다. 다른 클러스터는 Hadoop 클러스터에 속하지 않는 모든 리소스에 대한 설명입니다. 이렇게 두 클러스터를 구분하는 이유는 Hadoop 이 Apache Yarn (다른 자원 협상자) 을 통해 자신의 자원을 관리하기 때문입니다. Hadoop 의 경우 대기열에 큰 데이터 작업이 없을 때 이러한 리소스를 충분히 활용하지 못하는 경우가 많습니다. 대용량 데이터 작업이 실행되면 이러한 리소스는 곧 한계에 사용되어 더 많은 리소스를 요청합니다. 이것은 첫 번째 클러스터에는 상당히 어렵다.
Hadoop 은 데이터 장벽을 제거하려고 하지만, 일부 장벽을 제거하는 동시에, 다른 유형의 장벽이 같은 곳에서 다시 생겨났다. 또 다른 기술 솔루션인 Apache Mesos 도 이러한 장애물을 제거할 계획입니다. 그러나 Mesos 는 일반적으로 두 번째 클러스터를 관리하는 데 사용되며 Hadoop 작업을 제외한 모든 리소스를 포함합니다.
앞서 소개한 Mesos 와 YARN 의 차이는 이야기의 시작일 뿐이다. 그들이 호환되지 않는 것처럼, 그들은 늘 서로 경쟁한다. 하지만 제 이야기는 그들이 함께 일하는 것에 관한 것입니다.
메토스와 원사 소개
Mesos 와 YARN 의 주요 차이점은 우선 순위 설계와 작업 스케줄링 방법입니다. Mesos 는 2007 년 UC 버클리 분교에서 태어나 트위터, Airbnb 등에 의해 지속적으로 강화되었다. 처음에는 전체 데이터 센터의 확장 가능한 글로벌 리소스 관리자로 설계되었습니다. YARN 은 Hadoop 의 규모를 관리해야 한다. YARN 이 나타나기 전에 Hadoop MapReduce V 1 아키텍처에는 리소스 관리 (기능) 가 통합되어 MapReduce 확장을 용이하게 하기 위해 제거됩니다 (YARN 으로 전송). MapReduce 의 작업 추적기는 수천 대 이상의 시스템에서 MapReduce 작업을 효과적으로 예약할 수 없습니다. YARN 은 차세대 Hadoop 수명 주기 동안 만들어졌으며 주로 자원 확장을 중심으로 합니다.
Mesos 일정
Mesos 는 사용 가능한 리소스를 결정하고 할당 요청을 응용 프로그램 스케줄러 (응용 프로그램 스케줄러 및 실행기를 프레임워크라고 함) 에 반환합니다. 이러한 할당 요청은 프레임워크에서 수락하거나 거부합니다. 이 모델은 "2 단계" 스케줄러이고 스케줄링 알고리즘이 플러그 가능하기 때문에 비단량체 모델로 간주됩니다. Mesos 를 사용하면 모든 스케줄링 알고리즘을 구현할 수 있으며, 각 알고리즘은 자체 정책에 따라 할당 요청을 수락하거나 거부할 수 있으며, 수천 개의 스케줄러를 동일한 클러스터에서 멀티 테넌트로 실행할 수 있습니다.
Mesos 의 2 단계 스케줄링 모델을 사용하면 각 프레임워크 (자체) 에서 실행 중인 작업을 예약하는 데 사용할 알고리즘을 결정할 수 있습니다. Mesos 는 중재자 역할을 하며, 여러 스케줄러에서 자원을 예약하고, 충돌을 해결하고, 비즈니스 정책에 따라 자원을 공평하게 할당하도록 합니다. 지정 요청이 도착하면 프레임워크는 제공된 자원을 소비하는 임무를 수행합니다. 또는 프레임워크는 요청을 거부하고 다음 지정 요청을 기다리도록 선택할 수 있습니다. 이 모드는 노트북 또는 스마트폰에서 여러 어플리케이션을 동시에 실행하는 방법과 매우 유사합니다. 메모리가 더 필요할 때 새 스레드 또는 요청이 생성되고 운영 체제에서 모든 요청을 중재하고 관리합니다. 운영 체제와 분산 시스템의 다년간의 실천과 발전은 이 모델의 장점이 좋은 확장성에 있다는 것을 증명한다. 구글과 트위터에 의해 입증되었습니다.
사선 스케줄링
자, 원사에서 무슨 일이 일어나는지 봅시다. 작업 요청이 YARN 리소스 관리자에 도달하면 YARN 은 사용 가능한 모든 리소스를 평가한 다음 작업을 예약합니다. 원사는 작업의 전체 작동 위치를 직접 결정합니다. MapReduce 아키텍처가 진화하는 과정에서 실의 모양을 다시 강조하는 것이 중요하다. Hadoop 작업 리소스 크기 확장 요구 사항에 따라 YARN 은 MR 작업 추적기에서 리소스 관리 모델을 분리하고 리소스 관리자 구성 요소에서 구현합니다.
Hadoop 작업을 예약하기 위해 YARN 이 최적화되었습니다 (Hadoop 작업은 일정 기간 동안 지속되는 배치 작업이었습니다). 즉, YARN 은 장시간 실행되는 서비스나 단기 상호 작용/빠른 응답 요청 (예: 짧고 빠른 Spark 작업) 을 충족하도록 설계되지 않았습니다. 다른 유형의 작업 작업을 예약할 수 있지만 이상적인 모델은 아닙니다. MapReduce 의 자원 요구 사항, 실행 모델 및 아키텍처 요구 사항은 웹 서버, SOA 어플리케이션 또는 Spark 및 Storm 과 같은 실시간 작업과 같이 장기적으로 실행되는 서비스와는 다릅니다. 또한 YARN 은 무상태형 스크립트 작업의 간단한 재시작을 위해 설계되었습니다. 분산 파일 시스템이나 데이터베이스와 같은 상태 서비스를 처리할 수 없습니다. 그러나 YARN 의 전체 스케줄러는 이론적으로 새로운 알고리즘을 일정 코드에 통합하여 다양한 유형의 워크로드를 처리할 수 있습니다. 이는 점점 더 복잡해지는 스케줄링 알고리즘을 지원하는 경량 모델이 아닙니다.
원사 대 메스?
YARN 과 Mesos 를 비교할 때 전체 스케줄링 능력과 왜 둘 중에서 선택해야 하는지 이해하는 것이 중요합니다. 어떤 사람들은 YARN 과 Mesos 가 비슷하다고 생각할지 모르지만, 사실은 그렇지 않다. 차이점은 사용자가 사용하기 시작할 때의 수요 모델이 다르다는 것입니다. 각 모형마다 확실한 오차는 없지만 각 방법마다 장기적인 결과가 다릅니다. 나는 이것이 그들을 사용하는 방법을 선택하는 열쇠라고 생각한다. Ben Hindman 과 버클리 AMP 연구소는 구글 팀에서 Omega 를 디자인하면서 Mesos 를 디자인했습니다. Mesos 시스템은 구글이 Omega 시스템을 설계한 경험을 바탕으로 더 나은 비단체 (2 단계) 스케줄러를 구축했습니다.
데이터 센터를 전체적으로 관리하는 방법을 평가할 때, Mesos 를 사용하여 데이터 센터의 모든 자원을 관리하는 한편, YARN 보안을 사용하여 Hadoop 작업을 관리하지만 전체 데이터 센터를 관리할 수 있는 능력은 없습니다. 데이터 센터 운영자는 두 시나리오를 모두 처리하기 위해 클러스터를 여러 영역 (Hadoop 클러스터 및 비 Hadoop 클러스터) 으로 나누는 경향이 있습니다.
동일한 데이터 센터에서 Mesos 와 YARN 을 사용하여 리소스 관리자의 이점을 누리려면 현재 두 개의 정적 파티션을 만들어야 합니다. 즉, 지정된 자원이 Hadoop 의 YARN 에 의해 관리되는 경우 Mesos 가 작동하지 않습니다. 이것은 확실히 효과가 있지만, 너무 단순할 수도 있다. 하지만 본질적으로, 우리는 이런 상황을 피하고 싶다.
Myriad 프로젝트 소개
기업과 데이터 센터가 YARN 과 Mesos 간의 조정으로부터 혜택을 받을 수 있을까 하는 의문이 들지 않을 수 없습니다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 데이터 센터, 데이터 센터) 대답은' 예' 입니다. 몇몇 유명한 회사인 이베이, MapR, Mesosphere*** 는 Myriad 라는 프로젝트를 공동으로 진행했습니다.
이 오픈 소스 소프트웨어 프로젝트는 Mesos 프레임워크이자 YARN 스케줄러로서 Mesos 가 YARN 의 자원 요청을 관리할 수 있도록 합니다. 작업이 YARN 에 도달하면 Myriad scheduler 를 통해 전달되어 Mesos 에서 제공하는 리소스와 요청을 일치시킵니다. 이에 따라 Mesos 는 이를 Mesos 작업자 노드에도 전달합니다. 그런 다음 Mesos 노드는 이 요청을 YARN 노드를 실행 중인 관리자의 수많은 실행자와 연관시킵니다. Myriad 는 Mesos 자원에서 원사 노드 관리자를 시작합니다. 시작 후 Mesos 자원은 YARN explorer 에 사용 가능한 리소스를 알려줍니다. 이때 원사는 이러한 자원을 자유롭게 사용할 수 있습니다. Myriad 는 Mesos 의 사용 가능한 자원 풀과 YARN 의 작업 (Mesos 의 자원 필요) 사이에 원활한 다리를 제공합니다.
Myriad 는 YARN 과 Mesos 의 장점을 결합합니다. Myriad project, Mesos, YARN 을 사용하여 실시간 비즈니스를 수행할 수 있습니다. 데이터 분석은 운영 서비스와 동일한 하드웨어에서 수행할 수 있습니다. 더 이상 정적 파티셔닝으로 인한 리소스 제한 (및 활용도 저하) 에 직면할 필요가 없습니다. 리소스는 비즈니스 요구 사항에 따라 유연하게 확장 할 수 있습니다.
마지막 생각
사람들이 이 프로젝트의 출처를 이해할 수 있도록 Mesos 와 YARN 이 자신의 특정 장면에서 일하는 데 능숙하고 개선의 여지가 있다고 생각합니다. 두 리소스 관리자 모두 보안 영역에서 개선될 수 있습니다. 보안 지원은 기업의 채택 여부에 매우 중요합니다.
Mesos 에는 종합적인 보안 아키텍처가 필요합니다. 개인은 Kerberos 로 보안 지원을 제공할 수 있다고 생각하지만, 개인적인 경험에 따르면 쉽지 않을 것이다. Mesos 의 다른 방면의 보급도 복잡하며, 주로 자원의 선점과 취소로 요약된다. 한 비즈니스의 모든 자원이 이미 할당되어 있다고 가정하면, 비즈니스가 의존하는 가장 중요한 자원 항목 중 하나를 확장해야 할 때, 확장 작업이 단 몇 십 분 만에 완료되더라도, 당신은 여전히 자원 부족으로 인해 완성할 수 없을 것입니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언) 자원의 선점과 취소는 이 문제를 해결할 수 있다. 현재 Mesos 는 이 문제에 대한 많은 해결책을 가지고 있지만, Mesos 위원회가 동적 예약 및 최적 (취소 가능) 자원 약정을 사용하여 이 문제를 해결하기를 기대합니다.
Myriad 는 데이터 센터 또는 클라우드의 모든 리소스를 간단한 리소스 풀로 사용할 수 있는 새로운 기술입니다. Hadoop 이 고립된 데이터 섬 사이의 장애를 제거한 것처럼, Myriad 는 고립된 클러스터 사이의 장애를 없앴습니다. Myriad 를 통해 개발자는 비즈니스가 의존하는 데이터와 어플리케이션에 집중할 수 있으며 운영 및 유지 관리 팀은 컴퓨팅 리소스를 보다 유연하게 관리할 수 있습니다. 이를 통해 우리는 인프라에 끊임없이 얽매이지 않고 데이터에 집중할 수 있는 또 다른 창문을 열었습니다. Myriad 를 통해 스토리지 네트워크의 한계와 컴퓨팅 및 스토리지 간의 조정은 완전한 유연성, 민첩성 및 확장성을 달성하기 위해 극복해야 할 마지막 문제가 되었습니다.