업그레이드 후 hdfs · ozone 같은 명령이 동작하지 않는다. /opt/cloudera/parcels/CDH 심볼릭 링크는 새 버전을 가리키는데 /etc/alternatives/ 밑의 링크들이 전부 옛 파셀 디렉터리를 향해 있다. 파셀은 배포됐지만 alternatives 갱신이 끝나지 않은 상태로, 근본적으로는 Cloudera Manager 의 파셀 Activate 가 제대로 완료되지 않은 것이다.
which hdfs
ls -la $(which hdfs)
ls -la /opt/cloudera/parcels/CDH
ls /opt/cloudera/parcels/
Cloudera Manager → Hosts → Parcels 에서 상태를 본다. Activated 로 보이는데도 링크가 옛것이면 Deactivate 후 다시 Activate 하는 것이 정석이다.
새 파셀에 바이너리가 실제로 있는지 확인한 뒤 옛 경로를 가리키는 링크만 일괄 교체한다.
OLD="CDH-7.1.9-1.cdh7.1.9.p1010.57518810"
NEW="CDH-7.3.1-1.cdh7.3.1.p600.73534044"
for link in /etc/alternatives/*; do
target=$(readlink "$link")
case "$target" in
*"$OLD"*)
new_target="${target/$OLD/$NEW}"
if [ -e "$new_target" ]; then
ln -sfn "$new_target" "$link"
echo "Updated: $(basename "$link")"
else
echo "SKIP: $(basename "$link") -> $new_target"
fi
;;
esac
done
SKIP 으로 남는 것은 새 버전에 없는 바이너리이므로 그대로 두는 것이 맞다.
hdfs version
ozone version
hadoop version