准备工作
1.找到ambari-server所在的服务器(这里是hadoop-02)
2.进入/usr/java/share/java/目录下查看数据库驱动包是否存在,并确认是什么类型的数据库
这里确认ambari使用的是mysql数据库,驱动包路径:/usr/share/java/mysql-connector-java.jar
3. 根据前两步执行命令
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
正式安装
1. 进入ambari管理界面,点击add service
2. 选择 ranger 模块进行安装
3. 准备工作若成功完成,则可以勾选复选框进行下一步
4. 选择需要安装到哪一台服务器,注意Ranger Usersync和Ranger Admin必须安装到同一台服务器
5. Ranger Tagsync安装到 Hadoop-05
6. 配置
- DB FLAVOR 选择MySQL,依据ambari使用的数据库来定
- Ranger DB host 选择安装MySQL的主机名
- Ranger DB username 设置ranger用户名,默认rangeradmin,此处默认
- Ranger DB password 设置ranger密码,填写两次,两次密码需一致
- DBA username 填入数据库连接用户名
- DBA password 填入数据库连接密码,填写两次
- JDBC connect string 数据库连接,前面的信息填写好后会自动生成
7. 配置数据库连接信息,测试成功
8. 未安装solr,关闭此选项,需要安装时参考https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.5.0/bk_security/content/ranger_audit_settings.html
9. 其它都使用推荐配置,直接点击OK
10. 确认安装信息,正确就点击Deploy开始安装
11. 等待安装完成就可以了
遇到的问题
根据提示信息分析,错误原因是由于密码设置的不符合规范
重新设置密码再尝试启动(密码需要包含字母大小写、数字和特殊字符,至少8位)
查看MySQL对于密码的要求:
重新启动又报错,新的错误,授权失败:
查看root用户发现没有授权权限(在mysql库user表中查看),将 Grant_priv 修改位 Y, 再试一次,希望成功!
修改完后启动失败!!!
手托下巴稍加思索......(100 years later)
使出最后一招 : 在命令行执行 FLUSH PRIVILEGES;
终于启动成功!
二次安装遇到的问题
问题1. resource_management.core.exceptions.ExecutionFailed: Execution of 'ambari-python-wrap /usr/bin/hdp-select set ranger-admin 2.6.3.0-235' returned 1. symlink target /usr/hdp/current/ranger-admin for ranger-admin already exists and it is not a symlink.
解决方案:删除对应文件夹再重装即可
问题2. resource_management.core.exceptions.ExecutionFailed: Execution of '/usr/java/jdk1.8.0_161/bin/java -cp '/usr/hdp/current/ranger-tagsync/lib/*' org.apache.ranger.credentialapi.buildks create tagadmin.user.password -value '[PROTECTED]' -provider jceks://file/usr/hdp/current/ranger-tagsync/conf/rangertagsync.jceks' returned 1. Error: Could not find or load main class org.apache.ranger.credentialapi.buildks
解决方案:
发现/usr/hdp/current/ranger-tagsync目录不存在,手动创建软链接:
ln -s /usr/hdp/2.6.3.0-235/ranger-tagsync ranger-tagsync
经过以上步骤问题未解决,删除组件重新安装。
重装成功,启动报错:Access denied for user 'rangeradmin'@'Hbase-01' (using password: YES)
数据库未授权
步骤:
GRANT ALL PRIVILEGES ON *.* TO 'rangeradmin'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'rangeradmin'@'localhost' IDENTIFIED BY '***' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'rangeradmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
未解决问题,再仔细查看错误,错误信息明确指出是针对Hbase-01没有权限,上述步骤未授权Hbase-01,再针对Hbase-01授权即可。
来源:https://blog.csdn.net/MH_Tan/article/details/99677395