Transforms 런타임 버전과 업그레이드
Spark를 사용하는 변환의 Spark, Java와 Scala 조합은 빌드에 선택한 Transforms 런타임 버전에 따라 달라집니다. 런타임은 보안 및 성능 개선을 위해 백그라운드에서 업그레이드되며 Spark 버전 전환에서는 API 호환성과 기존 동작을 유지하는 legacy 설정을 함께 사용합니다.
언어별 버전 조합
각 행의 +는 해당 조합으로 전환하는 시작 버전을 뜻합니다. 이후 행에서 다른 조합으로 전환하면 그 새로운 기준을 적용합니다.
Python
| Transforms | Spark | Java | Scala |
|---|---|---|---|
1.1048.0+ | 3.4.1 | 17 | 2.12 |
2.0.0+ | 3.5.1 | 17 | 2.12 |
3.0.0+ | 3.5.5 | 17 | 2.12 |
3.8.0+ | 3.5.5 | 21 | 2.12 |
3.300.0+ | 3.5.5 | 21 | 2.13 |
4.0.0+ | 4.0.1 | 21 | 2.13 |
Java
| Transforms | Spark | Java | Scala |
|---|---|---|---|
1.1015.0+ | 3.4.1 | 17 | 2.12 |
2.0.0+ | 3.5.1 | 17 | 2.12 |
2.139.0+ | 3.5.1 | 21 | 2.12 |
3.0.0+ | 3.5.5 | 21 | 2.12 |
4.0.0+ | 4.0.1 | 21 | 2.13 |
SQL
| Transforms | Spark | Java | Scala |
|---|---|---|---|
1.861.0+ | 3.4.1 | 17 | 2.12 |
2.0.0+ | 3.5.1 | 17 | 2.12 |
3.0.0+ | 3.5.5 | 17 | 2.12 |
3.42.0+ | 3.5.5 | 21 | 2.12 |
3.236.0+ | 3.5.5 | 21 | 2.13 |
4.0.0+ | 4.0.1 | 21 | 2.13 |
실제 빌드 버전 확인
Job tracker에서 Spark Details > Environment를 열면 빌드 구성값을 볼 수 있습니다. sparkModuleVersion이 Transforms 런타임 버전이고 sparkVersion이 실제 Spark 버전입니다.
런타임 선택과 자동 판정
빌드를 실행할 때마다 사용할 런타임 버전을 선택합니다. Adjudication은 새 버전으로 업그레이드할 수 있는지 선택적으로 시험하고 문제가 있으면 이전 버전을 유지하는 판정 과정입니다.
새 Spark 버전이 사용 가능해지면 적용 가능한 파이프라인에서 자동으로 시험하고 전환합니다. 실패하면 기존 버전으로 계속 실행합니다. 각 Spark 업그레이드는 별도 공지와 함께 이루어집니다. 한동안 특정 버전을 유지해야 하면 module pinning으로 파이프라인의 모듈 버전을 고정할 수 있습니다.
런타임 출시 후 약 한 달이 지나면 자동 업그레이드를 적용하지 못한 문제에 대해 저장소 업그레이드 안내가 표시됩니다. 저장소의 검사 오류를 바탕으로 원인을 조사합니다.
이전 버전으로 debug job 실행
업그레이드 후 파이프라인이 실패한 것으로 의심되면 실패한 작업의 Actions > Rerun as debug job에서 이전에 성공한 버전을 지정하여 비교할 수 있습니다. 런타임 전환이 문제의 원인으로 확인되면 Palantir 지원팀에 도움을 요청합니다.
다음 경우에는 debug job을 지원하지 않습니다.
- 비밀 정보가 있는 소스를 사용하는 external transform
- 인증 정보를 사용하는 Legacy external transform
이 두 경우에는 다음 오류가 예상됩니다.
OneTimeAccessKeyService:OneTimeAccessKeyNotFound
이 제한을 런타임 업그레이드 실패 자체로 오인하지 않습니다.