1 文档编写目的
根据前面的安装文档,我们知道CDH的安装只能使用root或者具有sudo权限的用户进行安装,但大多数企业对于服务器的root用户的管控比较严格,大多数情况下都不能够直接使用或者需要申请比较麻烦。对于这种情况,Cloudera官方提供了一种单用户安装CDH的模式,参考Fayson前面的文章《0517-如何在CDH5中使用单用户模式》。但实际情况是这种方法非常麻烦,官方其实也不建议使用,而且从CDH6开始也已经废弃了这种安装或使用方式。
本文基于一个实际需求,即CDH相关的所有服务都使用非root用户来管理,主要是Cloudera Manager Server和Agent服务(其他Hadoop服务默认都是使用相应自己的用户比如hdfs或者hive用户),我们知道这2个服务默认会被放到操作系统的/etc/rc.d/init.d下,即会开机自启动,而且Server使用cloudera-scm用户启动而Agent使用root用户启动。实现思路是先从操作系统自启动里移除,然后设置相关脚本,文件和日志的权限来实现使用非root用户的手动启动,这样可以实现未来的非root用户来管理Server和Agent服务,而Hadoop相关服务大部分情况下都可以通过Cloudera Manager界面化来管理。以下Fayson进行实操演示。
- 测试环境
1.CDH5.16.1
2.Redhat7.4
3.采用root进行操作
2 修改cloudera-scm-agent服务
2.1 移除agent服务
1.停止Agent服务
systemctl stop cloudera-scm-agent
2.Kill supervisord进程,如果存在
[root@ip-172-31-13-38 ~]# ps -ef |grep supervisord
root 1470 1 0 12:39 ? 00:00:11 /usr/lib64/cmf/agent/build/env/bin/python /usr/lib64/cmf/agent/build/env/bin/supervisord
root 14521 13742 0 13:09 pts/0 00:00:00 grep --color=auto supervisord
[root@ip-172-31-