However, All services are using JDK 1.8 except that CM management services still use JDK1.7 after changes as per the instruction above. It's found that there is a bug with the script /usr/lib64/cmf/service/common/cloudera-config.sh which detects JAVA_HOME for CM management services.
The script, unlike /usr/lib/bigtop-utils/bigtop-detect-javahome script, doesn't detect and source /etc/default/bigtop-utils settings file when user overrides JAVA_HOME. And the script prefers JDK 1.7 over JDK 1.8.
The bug should be resolved by changing the script /usr/lib64/cmf/service/common/cloudera-config.sh to behave similar to /usr/lib/bigtop-utils/bigtop-detect-javahome which checks for setting file /etc/default/bigtop-utils, and use user settings which JAVA_HOME is manually configured.
It would be good also to include instruction/link to restart all CM services and CDH services once changing JDK version.