Amazon EMR에서 Jupyter 노트북을 사용하여 Apache Livy 애플리케이션을 실행할 때 발생하는 오류를 해결하고 싶습니다.
간략한 설명
Amazon EMR에서 Jupyter 노트북을 사용하여 Apache Livy 애플리케이션을 실행할 때 다음 오류 중 하나가 발생합니다.
- 오류 페이로드가 있는 xxxxxxxx의 '404': "session '0' not found"
- "The code failed because of a fatal error: Error sending http request and maximum retry encountered."
이러한 오류는 일반적으로 시간이 초과될 때까지 Jupyter 노트북 세션을 실행 중인 상태로 유지할 때 발생합니다. 이러한 오류를 해결하려면 마스터 노드의 /etc/livy/conf/livy.conf에서 livy.server.session.timeout 속성 값을 늘립니다. 그런 다음 livy-server를 다시 시작합니다.
해결 방법
실행 중인 Amazon EMR 클러스터에서 또는 새 클러스터를 시작할 때 livy.server.session.timeout을 수정할 수 있습니다.
실행 중인 클러스터의 경우
1. 마스터 노드에서 /etc/livy/conf/livy.conf를 열고 livy.server.session.timeout 값을 수정합니다. (기본값은 1h) 예:
sudo vim /etc/livy/conf/livy.conf
livy.server.session.timeout 2h
2. 마스터 노드에서 다음 명령을 실행하여 livy-server를 다시 시작합니다.
Amazon Linux 2를 기반으로 하는 다음 Amazon EMR 릴리스 버전 중 하나를 사용하고 있다고 가정해 보겠습니다.
- Amazon EMR 릴리스 버전 5.30.0 이상
- Amazon EMR 6.x 시리즈
이어서 다음 명령을 실행합니다.
sudo systemctl stop livy-server
sudo systemctl start livy-server
Amazon EMR 릴리스 버전 5.29.0 이하를 사용하는 경우 다음 명령을 실행합니다.
sudo stop livy-server
sudo start livy-server
livy-server를 다시 시작하면 클러스터를 사용할 수 없습니다. 가동 중지를 방지하려면 Amazon EMR 클러스터를 시작할 때 Livy 애플리케이션을 구성하십시오.
새 클러스터의 경우
Amazon EMR 릴리스 버전 4.6.0 이상을 사용하여 클러스터를 시작할 때 다음과 유사한 구성 객체를 추가합니다. livy.server.session.timeout을 수정하는 것 외에 원할 경우 다음과 같은 관련 속성을 수정할 수 있습니다.
- livy.server.session.timeout-check: 활성화되면 Livy는 제한 시간 임계값에 도달하는 유휴 세션을 중지합니다. 기본 설정은 true입니다.
- livy.server.yarn.app-lookup-timeout: Livy에서 YARN 애플리케이션을 손실된 것으로 간주하기 전에 YARN 애플리케이션을 찾는 지속 시간입니다. 기본 설정은 60초입니다.
[
{
"Classification": "livy-conf",
"Properties": {
"livy.server.session.timeout-check": "true",
"livy.server.session.timeout": "2h",
"livy.server.yarn.app-lookup-timeout": "120s"
}
}
]
작업 실행이 완료된 후 Jupyter 또는 Zeppelin에서 세션을 닫아야 합니다. 세션이 너무 많이 열려 있는 경우 리소스를 사용할 수 있을 때까지 새 작업을 시작할 수 없습니다.
관련 정보
Apache Livy
Amazon EMR의 Jupyter 노트북