Rocky Linux 9 호스트에서 Hue 를 설치하면 CM Agent 의 DB 커넥션 테스트 단계가 다음 오류로 끝나는 경우가 있다.
++ version_output=3.9
++ [[ 3.9 == \3\.\8 ]]
+ echo 'ERROR: Unable to find python 3.8 installation'
+ exit 1
검증 스크립트가 PATH 에서 python3.8 이라는 이름의 바이너리를 찾아 --version 을 물어본 뒤, 결과가 정확히 3.8 이어야 통과시키는 구조다. /data/opt/cloudera/cm-agent/bin/python3.8 은 존재하지만 실행하면 3.9 를 돌려주므로 검증에서 걸린다.
RHEL 9 · Rocky Linux 9 계열에서 Cloudera Manager 에이전트와 Hue 는 Python 3.9(3.9.14 이상)를 요구한다. 그런데 로그는 python3.8 을 명시적으로 찾고 있다. /data/opt/cloudera/cm-agent/bin/ 은 CM Agent 패키지가 설치 시 배치하는 내장 Python 환경이라 사용자가 링크를 걸거나 파일을 바꿀 대상이 아니다. 즉 이름이 python3.8 인 것 자체가 그 CM Agent 버전에 내장된 값이며, 실제 배치된 바이너리는 3.9 를 반환한다.
따라서 이것은 단순한 패키지 누락이 아니라 CM · CDP 버전과 OS 지원 매트릭스의 불일치로 보는 것이 맞다. 설치 중인 CDP Runtime(Hue 파슬 · CSD) 버전이 Rocky Linux 9 를 아직 지원하지 않아, 설치 스크립트가 RHEL 8 시절 요구사항인 Python 3.8 을 하드코딩해 검사하는 상황에 해당한다.
먼저 지원 매트릭스를 본다. Cloudera 공식 문서에서 사용 중인 CM 버전이 Rocky 9.x 를 지원 목록에 포함하는지 확인한다. 지원하지 않는 조합이면 python3.8 을 따로 설치해도 다른 지점에서 계속 문제가 난다.
그다음 문제의 바이너리가 어디서 온 것인지 확인한다.
ls -la /data/opt/cloudera/cm-agent/bin/ | grep -i python
file /data/opt/cloudera/cm-agent/bin/python3.8
readlink -f /data/opt/cloudera/cm-agent/bin/python3.8
/data/opt/cloudera/cm-agent/bin/python3.8 -c "import sys; print(sys.version)"
rpm -qf /data/opt/cloudera/cm-agent/bin/python3.8
rpm -qa | grep -i cloudera-manager-agent
cat /etc/yum.repos.d/cloudera-manager.repo
저장소 baseurl 에 redhat8 이 들어 있는데 호스트가 Rocky 9 라면 잘못된 리포지토리로 설치된 것이다. 이 경우 잘못 설치된 cm-agent 패키지를 제거하고 redhat9 경로로 교체한 뒤 재설치한다.
Rocky 9 는 기본 python3 가 3.9 이므로 대개 별도 설치가 필요 없다. PATH 상에 python3.9 라는 이름의 실행 파일이 있는지만 확인한다.
dnf install python3
python3 --version
which python3.9
없으면 소스로 빌드한다.
dnf groupinstall "Development Tools" -y
dnf install openssl-devel bzip2-devel libffi-devel zlib-devel -y
cd /opt
curl -O https://www.python.org/ftp/python/3.9.19/Python-3.9.19.tgz
tar -zxvf Python-3.9.19.tgz
cd Python-3.9.19
./configure --enable-shared --prefix=/usr/local
make
make altinstall
cp --no-clobber ./libpython3.9.so* /lib64/
chmod 755 /lib64/libpython3.9.so*
chmod -R 755 /usr/local/lib/python3.9
표준 위치가 아닌 곳에 설치했다면 링크를 걸고, Hue 서비스가 그 경로를 보게 하려면 Cloudera Manager 의 Hue Service Environment Advanced Configuration Snippet 에 PATH 를 기존 값 앞에 추가한다.
ln -s <install-prefix>/bin/python3.9 /usr/local/bin/python3.9
systemctl restart cloudera-scm-agent
make altinstall 을 써서 기존 python3 를 덮지 않는다.python3.8 을 찾는다는 사실 자체가 버전 조합이 잘못됐다는 신호다. 우회보다 지원 매트릭스 확인이 먼저다.대화에서는 지원 매트릭스 확인 결과와 CM 정확한 버전을 확보하지 못해 원인을 확정하지 못했다. CM · CDP 버전이 Rocky 9 를 정식 지원하는지 확인하고, 지원하지 않으면 지원 버전으로 올리거나 지원 OS 로 호스트를 맞추는 것이 근본 조치다.