1.版本选型
ranger 目前大版本 主要是 0.4, 0.5 , 0.6,0.7(最新),选取0.5 中ranger-0.5.3-rc3 版本。
2.编译
目前数仓用的hive 1.2.1 ,更改 pom.xml <hive.version>1.2.1</hive.version>
mvn clean compile package assembly:assembly install -Dmaven.test.skip=true 进行编译,编译之后就会有以下这些tar包,zip包的。(我们选择已经编译好的安装包进行安装,所以直接拷贝已经编译后的安装包,并解压,解压之后的就是下面这个样子。)
3.安装
1)安装Ranger 控制台:Ranger—admin,解压ranger-0.5.3-admin.tar.gz文件,然后修改install.properties文件。
[root@hlg-5p149-wangwenting ranger-0.5.3]# tar -zxvf ranger-0.5.3-admin.tar.gz
[root@hlg-5p149-wangwenting ranger-0.5.3]# cd ranger-0.5.3-admin
[root@hlg-5p149-wangwenting ranger-0.5.3-admin]# vim install.properties
SQL_CONNECTOR_JAR=/opt/hive/lib/mysql-connector-java-5.1.35.jar # mysql 库路径
# mysql root 用户
db_root_user=root #当前机器的mysql的用户
db_root_password=1234 #当前机器的mysql的密码
db_host=hlg-5p149-wangwenting #当前机器名
# ranger 的db
db_name=ranger
db_user=root
db_password=1234
# ranger 审计db
audit_db_name=ranger_audit
audit_db_user=root
audit_db_password=1234
# ------- UNIX User CONFIG ---------------- 安装的时候会更改ranger-0.5.3-admin 所属用户
unix_user=hadoop
unix_group=hadoop
更改配置文件:
2)启动服务:
root 用户执行./setup.sh 此时会在mysql 中创建db ranger 和 ranger_audit
执行命令后会生成ranger-admin,在/usr/bin/目录下,然后启动服务.在执行setup.sh创建数据库表的时候,可能会有以下错误:
往上找错误原因类似这样的一个报错信息:
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled
在MySQL中创建函数时出现这种错误的解决方法,到mysql客户端执行下面命令:
[root@hlg-5p149-wangwenting ranger-0.5.3-admin]# mysql -uroot -p1234 >set global log_bin_trust_function_creators=TRUE; >FLUSH PRIVILEGES; >exit(); [root@hlg-5p149-wangwenting ranger-0.5.3-admin]# ./setup.sh //这里是自动创两个建数据库,在0.7.0版本的时候需要手动将字符集改成latin1.如下图所示。
访问查看服务知否ok, 通过admin/admin 看是否能够登录访问地址 http://172.24.5.149:6080
4 ranger-0.5.3-hdfs-plugin的安装
[root@hlg-5p149-wangwenting ranger-0.5.3]# unzip ranger-0.5.3-hdfs-plugin.zip
[root@hlg-5p149-wangwenting ranger-0.5.3]# cd ranger-0.5.3-hdfs-plugin
[root@hlg-5p149-wangwenting ranger-0.5.3-hdfs-plugin]# vim install.properties
更改配置文件:
# ranger web 服务地址
POLICY_MGR_URL=http://localhost:6080
# mysql jar 包
SQL_CONNECTOR_JAR=/opt/hive/lib/mysql-connector-java-5.1.35.jar # mysql 库路径
# 服务名
REPOSITORY_NAME=hadoopdev
# 统计日志db 信息
XAAUDIT.DB.IS_ENABLED=true
XAAUDIT.DB.FLAVOUR=MYSQL
XAAUDIT.DB.HOSTNAME=hlg-5p149-wangwenting
XAAUDIT.DB.DATABASE_NAME=ranger_audit
XAAUDIT.DB.USER_NAME=root
XAAUDIT.DB.PASSWORD=1234
# Custom component user
CUSTOM_USER=hadoop
# Custom component group
CUSTOM_GROUP=hadoop
启动前的准备工作:
#在/opt/ranger-0.5.3目录下创建hadoop目录
[root@hlg-5p149-wangwenting ranger-0.5.3]# mkdir hadoop
[root@hlg-5p149-wangwenting ranger-0.5.3]# cd hadoop
[root@hlg-5p149-wangwenting hadoop]# ln -s /opt/hadoop/etc/hadoop/ conf
[root@hlg-5p149-wangwenting hadoop]# ln -s /opt/hadoop/share/hadoop/hdfs/lib/ lib
并将 /opt/hadoop/ranger-0.5-3/ranger-0.5.3-hdfs-plugin/lib/ranger-hdfs-plugin-impl 中的jar 包 拷贝到/opt/hadoop/hadoop/share/hadoop/hdfs/lib/
[root@hlg-5p149-wangwenting hadoop]# cp /opt/ranger-0.5.3/ranger-0.5.3-hdfs-plugin/lib/ranger-hdfs-plugin-impl/* /opt/hadoop/share/hadoop/hdfs/lib/
用root用户安装:
[root@hlg-5p149-wangwenting ranger-0.5.3-hdfs-plugin]# ./enable-hdfs-plugin.sh
执行启动命令后需要进行重启hadoop服务。
安装结束后:
会看见多了几个配置文件。
修改了hdfs-site.xml 如下
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.inode.attributes.provider.class</name>
<value>org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer</value>
</property>
登录web ; 点击HDFS plugin 添加按钮,添加服务 ; 输入定义的服务名:hadoopdev(在配置参数时设置的,要保持一致;点击 Test Connection 执行成功验证是否成功:
5.ranger-0.5.3-hive-plugin 安装
[root@hlg-5p149-wangwenting ranger-0.5.3]# unzip ranger-0.5.3-hive-plugin.zip
[root@hlg-5p149-wangwenting ranger-0.5.3]# cd ranger-0.5.3-hive-plugin
[root@hlg-5p149-wangwenting ranger-0.5.3-hive-plugin]# vim install.properties
更改配置文件:
# ranger web 服务地址
POLICY_MGR_URL=http://localhost:6080
# mysql jar 包
SQL_CONNECTOR_JAR=/opt/hive/lib/mysql-connector-java-5.1.35.jar # mysql 库路径
# 服务名
REPOSITORY_NAME=hivedev
# 统计日志db 信息
XAAUDIT.DB.IS_ENABLED=true
XAAUDIT.DB.FLAVOUR=MYSQL
XAAUDIT.DB.HOSTNAME=hlg-5p149-wangwenting
XAAUDIT.DB.DATABASE_NAME=ranger_audit
XAAUDIT.DB.USER_NAME=root
XAAUDIT.DB.PASSWORD=1234
# Custom component user
CUSTOM_USER=hadoop
# Custom component group
CUSTOM_GROUP=hadoop
启动前的准备工作:
#在/opt/ranger-0.5.3目录下创建hadoop目录
[root@hlg-5p149-wangwenting ranger-0.5.3]# mkdir hive
[root@hlg-5p149-wangwenting ranger-0.5.3]# cd hive
[root@hlg-5p149-wangwenting hive]# ln -s /opt/hive/conf/ conf
[root@hlg-5p149-wangwenting hive]# ln -s /opt/hive/lib lib
用root用户安装:
[root@hlg-5p149-wangwenting ranger-0.5.3-hdfs-plugin]# ./enable-hive-plugin.sh
执行启动命令后需要进行重启hive服务.
安装结束后:
会看见多了几个配置文件。
修改hiveserver2-site.xml 文件
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.manager</name>
<value>org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory</value>
</property>
<property>
<name>hive.security.authenticator.manager</name>
<value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
</property>
<property>
<name>hive.conf.restricted.list</name>
<value>hive.security.authorization.enabled,hive.security.authorization.manager,hive.security.authenticator.manager</value>
</property>
配置之后去重启hive.
这里的重启指令和之前的部署文档有一点小小的区别:
[hadoop@bgs-5p173-wangwenting hive]$ nohup /opt/hive/bin/hive --service hiveserver2 -hiveconf hive.metastore.uris=' ' &
0: jdbc:hive2://172.18.1.22:10000> show tables;#这里是用hadoop用户去访问,首先肯定是因为权限问题,hadoop操作hive报错。这时候需要我们去ranger的客户端去添加一个hadoop的用户,默认是给出所有的操作权限。
[hadoop@bgs-5p173-wangwenting hive]$ /opt/hive/bin/beeline -u jdbc:hive2://hlg-5p149-wangwenting:10000 -n hadoop
将hadoop用户添加进去,这时候再去访问。
![](https://i-blog.csdnimg.cn/blog_migrate/23136afae53a4b63ecb550692824875e.png)
这个时候我们再用hadoop用户去访问
[hadoop@hlg-5p149-wangwenting hive]$ nohup /opt/hive/bin/hive --service hiveserver2 &
0: jdbc:hive2://172.24.5.149:10000> show tables;
![](https://i-blog.csdnimg.cn/blog_migrate/d0af84c645471a75277c290729600863.png)