Apache Ranger 安全认证配置
Apache Ranger 安全认证配置
1、Ranger 集成 HDFS 的安全认证机制与配置
安装 hdfs 插件
从源码安装 ranger 的服务器上拷贝 hdfs 的插件到你需要安装的地方
1、解压安装
# tar zxvf ranger-2.1.0-hdfs-plugin.tar.gz -C /usr/app/ranger/
2、修改插件配置文件,如下
修改 install.properties 文件
主要修改以下几个参数:
POLICY_MGR_URL= http://10.130.90.12:6080 #policy 地址,也就是 ranger-admin 地址
REPOSITORY_NAME=hadoopdev #服务名字,在 ranger-admin 前台创建的时候,需要与这个参数值一样。
XAAUDIT.SOLR.ENABLE=true #开启审计日志
XAAUDIT.SOLR.URL=http://10.130.90.12:6083/solr/ranger_audits #solr 地址
CUSTOM_USER=hduser #定义插件用户,这个值是启动集群的用户
CUSTOM_GROUP=hduser
3、修改 hdfs 配置文件
# vim hdfs-site.xml
添加如下配置:
4、启动插件
# sudo ./enable-hdfs-plugin.sh.
5、启动 ranger-admin 进入 webUI
点击 hdfs 上的加号,进行配置
点击测试,成功之后点击 audit 进入插件管理就可以看见 hdfs 插件
2、Ranger 集成 HIVE 的安全认证机制与配置
注意:Ranger-hive 插件使用 hive 的 metastore 和 hiveserver2 服务,所以 hive 必须先开启这两项服务。开启方式如下:
nohup hive --service metastore &
Nohup hive --service hiveserver2 &
安装 ranger-hive 插件
1、解压安装
# tar zxvf ranger-2.0.0-SNAPSHOT-hive-plugin.tar.gz -C /usr/app/ranger
2、修改 install.properties
POLICY_MGR_URL=http://10.130.90.12:6080
REPOSITORY_NAME=hivedev
COMPONENT_INSTALL_DIR_NAME=/data1/hadoop/hive #hive 安装目录
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR.URL=http://10.130.90.12:6083/solr/ranger_audits
CUSTOM_USER=hduser
CUSTOM_GROUP=hduser
3. 建立软连接
mkdir /usr/app/ranger/hive
ln -s /haive 安装根目录/conf /usr/app/ranger/hive /conf
ln -s /haive 安装根目录/lib /usr/app/ranger/hive /lib
cp /ranger-hive 插件目录/lib/ranger-hive-plugin-impl/*.jar /haive 安装根目录/lib
4、启动插件
./enable-hive-plugin.sh
5、进入 admin 的 webUI 配置 hive
点击测试
注意:测试时有可能报以下错误
Ranger 测试 hive 连接错误提示:
org.apache.ranger.plugin.client.HadoopException: Unable to connect to Hive Thrift Server instance..
Unable to connect to Hive Thrift Server instance..
Could not open client transport for any of the Server URI's in ZooKeeper: Could not establish connection to jdbc:hive2://c2bde55:10000/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{use:database=default}).
Could not establish connection to jdbc:hive2://c2bde55:10000/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{use:database=default}).
Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null, configuration:{use:database=default}).
解决办法:
使用 hdp2.6.1 出现,原因是 hive 相关 jar 包不匹配问题
1)备份目录:
# cd /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/
# cp -r hive hive.bak
2)清空,重新拷贝 hive jar 包和它的依赖包
rm -rf /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive/*
cp -r /usr/hdp/2.6.1.0-129/hive/lib/hive-common*.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
cp -r /usr/hdp/2.6.1.0-129/hive/lib/hive-jdbc*.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
cp -r /usr/hdp/2.6.1.0-129/hive/lib/hive-exec*.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
cp -r /usr/hdp/2.6.1.0-129/hive/lib/hive-metastore*.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
cp -r /usr/hdp/2.6.1.0-129/hive/lib/hive-service*.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
cp -r /usr/hdp/2.6.1.0-129/hive/lib/libfb303*.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
cp -r /usr/hdp/2.6.1.0-129/hive/lib/libthrift*.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
chmod -R a+x /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
cp ../hive.bak/ranger-hive-plugin-0.7.0.2.6.1.0-129.jar /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive/
3)改变拥有者
chown -R ranger:ranger /usr/hdp/2.6.1.0-129/ranger-admin/ews/webapp/WEB-INF/classes/ranger-plugins/hive
4)重启 ranger 服务,然后测试连接。
3、Ranger 集成 Atlas 的安全认证机制与配置
(1) 解压 ranger-Atlas 插件,略
(2) 修改配置文件,将 install.properties 文件中相应的地方修改如下:
POLICY MGR_ URL=http://Yours IP:6080
SQL_ CONNECTOR_ JAR=/usr/ share/java/mysql-connector-java-5.1.38-bin.jar
REPOSITORY NAME=At lasdev
XAAUDIT.SOLR.ENABLE=true
XAAUDIT.SOLR. URL=http://Yours IP:6083/so1r/ranger_ audits
组件对应的用户,这里设置为空。一般 Hadoop 的内置用户是 hdfs 或者 hadoop。
CUSTOM_ _USER=hdfs
CUSTOM_ _GROUP=hadoop
(3)软连接 Atlas 下的 conf 和 lib
在集群的主节点上,使用 root 用户,在任意目录下操作如下命令:
mkdir /usr/local/Atlas
ln -s /var/local /hadoop/Atlas-0.7/conf/ /usr/local/Atlas/conf
ln -s /var/ 1ocal/hadoop/Atlas-0.7/server/webapp/Atlas/WEB- INF/lib /usr/ local/Atlas/libext
cd /usr/1ocal/ ranger-Atlas-plugin/
./enable-Atlas-plugin.sh.
#建立软连接后,启用 Atlas 插件 #文件夹 Atlas 需要新建
#若遇到缺少 jar 包,将 guava-17.0.jar 导入/usr/1ocal/ranger-plugin/install/lib 即可
(4)启动 Atlas
如果前面启动过 Atlas,需要重新启动。然后在集群的主节点上,使用 root 用户,在任意目录下操作如下命令:
cd /var/local/hadoop/Atlas-0.7 $ ./bin/Atlas_ start.py
#正常情况下,若显示 Apache Atlas Server started!!!,则表示 Atlas 服务器已经启动。
(5)在 Ranger Web UI 中添加 Atlas 服务
打开浏览器,这里使用的是 Chrome (没有测试过其他浏览器,用户可以自行测试)。在浏览器中地址栏中输入:
http://Yours IP:6080
#在 Service Manage 中新建 一个 Atlas 服务,修改其中配置项,标记有*号的部分为必填的选项
Service Name = Atlasdev
Username=hdfs
Password=123456
Atlas. rest . address=http://atlas 的 IP:21000
保存后,可以在 Audit -→Plugins 中看到 Atlas 插件安装成功。
版权声明: 本文为 InfoQ 作者【大数据技术指南】的原创文章。
原文链接:【http://xie.infoq.cn/article/9ae409d2095fe8d53ca28ae23】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论