Presto에서 스팟 인스턴스 손실 처리 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Presto에서 스팟 인스턴스 손실 처리

Amazon 의 스팟 인스턴스를 EMR사용하면 저렴한 비용으로 예비 Amazon EC2 용량에서 빅 데이터 워크로드를 실행할 수 있습니다. Amazon은 더 낮은 비용의 대가로 2분 알림을 통해 스팟 인스턴스를 중단할 EC2 수 있습니다. 노드를 종료하면 Presto에서 오류를 반환하기까지 최대 10분이 걸릴 수 있습니다. 이로 인해 오류 보고서가 불필요하게 지연되고 재시도가 발생할 수 있습니다. 빠른 종료는 Presto가 종료된 노드를 처리하는 방식을 제어할 수 있는 기능입니다.

Presto 코디네이터의 역할은 주기적으로 상태를 폴링하여 모든 워커 노드를 추적하는 것입니다. 빠른 종료가 없으면 코디네이터는 각 노드의 상태에 YARN NodeManager 대해 를 참조하지 않습니다. 이로 인해 쿼리가 실패하기 전에 재시도 루프가 길어질 수 있습니다. 빠른 종료를 통해 Presto 코디네이터는 폴링이 호스트에 도달하지 못하는 NodeManager 즉시 의 노드 상태를 참조합니다. 가 노드가 비활성 상태임을 NodeManager 나타내는 경우 Presto는 추가 재시도를 포기하고 쿼리를 실패하며 NODE_DECOMMISSIONED 오류를 반환합니다.

다음 구성 파라미터 세트를 사용하면 노드 종료 시 Presto의 동작을 제어하고 사용자 지정할 수 있습니다.

노드 장애 처리를 위한 Presto 구성
설정 설명 기본값
query.remote-task.max-backoff-duration 코디네이터가 워커 노드에서 원격 작업 상태를 계속 가져오려고 시도하는 시간. 10분
query.remote-task.quick-terminate-node-failure

코디네이터가 노드에 연결할 수 없거나 해당 노드에서 실행되는 워커에 연결할 수 없는 경우 빠른 노드 장애를 활성화합니다. query.remote-task.terminate-on-connect-exception의 값에 따라 코디네이터가 노드에 도달해야 하는지 아니면 워커에 연결해야 하는지가 결정됩니다.

노드가 쿼리에 실패하고 Amazon이 사용 가능한 작업자 목록에서 노드를 EMR 제거합니다. 이 경우 노드를 사용하여 새 쿼리를 예약할 수 없습니다.

이 값을 false로 설정하면 노드를 사용할 수 없는 것으로 표시하기 전에 Presto가 노드에 도달하려고 다시 시도하는 이전 동작(query.remote-task.max-backoff-duration)으로 돌아가고 노드에서 진행 중인 쿼리에 실패합니다.

true
query.remote-task.terminate-on-connect-exception 호스트에 연결할 수 있지만 조정자가 호스트의 작업자 프로세스에 연결하지 못하는 경우 Amazon이 노드를 EMR 사용해야 하는지 여부를 지정합니다. 이 값을 true로 설정하면 호스트에 연결할 수 없는 경우 빠른 쿼리 실패가 활성화됩니다. false