温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
Fayson的github:
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
Fayson在之前的文章《如何使用Sentry为Solr赋权》以及《使用命令行创建collection时Sentry给Solr赋权的问题》中,对Solr与Sentry的集成授权进行过介绍,并通过命令行的方式创建collection,以及通过命令行的方式对collection的赋权进行操作并测试。我们知道在Hive/Impala中使用Sentry时,既可以通过命令行建立相关角色并赋权,也可以在Hue中进行相关操作。对于Solr的赋权其实也是一样的,CDH同时支持在Hue中与命令行操作赋权,本文Fayson主要介绍如何在Hue中使用Sentry为Solr赋权。
- 内容概述:
1.启用Solr的Sentry赋权
2.其他前置准备
3.在Hue中创建collection以及导入样例数据
4.Hue中对Solr的collection赋权测试
5.总结
- 测试环境:
1.CM5.14.3/CDH5.14.2
2.操作系统版本为Redhat7.3
3.采用root用户进行操作
- 前置条件
1.集群已启用Kerberos
2.Hue已集成Solr与Sentry
2.启用Solr的Sentry赋权
1.首先如果要启用Solr的Sentry赋权,Solr服务必须启用Kerberos认证,所以请确保你的CDH集群已经启用了Kerberos。
2.然后对Solr服务进行以下配置
保存配置并按照要求重启服务。
3.确保Hue已经集成Sentry与Solr服务。
保存配置并按照要求重启服务。
3.其他前置准备
确保你学会了在Windows客户端使用浏览器访问Kerberos的CDH的一些Hadoop服务界面。因为当对Solr服务启用了Kerberos后,Solr服务不像YARN或HDFS的界面可以选择是否对界面访问启用Kerberos认证,默认Solr Web UI即采用了Kerberos了认证。如果你不会,请参考Fayson之前的文章《如何在Kerberos下使用Solr》和《Windows Kerberos客户端配置并访问CDH》
4.在Hue中创建collection以及导入样例数据
1.这里我们首先准备一个8个字段的csv文件,一共10行,使用逗号分隔,用来导入Solr并实现全文索引。并将该文件put到一个hdfs目录。
2.注意:因为我们开启了Sentry,在创建collection的时候我们需要使用solr用户。否则是没有权限创建collection的。这里跟在Hive/Impala中使用Sentry时,使用hive作为管理员用户是相似的。我们在Hue中创建一个solr的group,以及solr用户,然后用solr用户登录Hue,创建过程略。
3.使用solr用户登录hue后,选择“indexes”。
点击“create index”
点击选择第一步我们上传的csv文件
点击“upload a file”
点击“Next”
注意还要输入collection的名字,这里我们输入“collection1”,选择主键以及其他字段,这里我们选择field_1也即第一个字段为主键。
点击“Submit”
这里创建collection以及导入数据成功
4.使用solr用户登录Kerberos,查询collection1确认数据都已经导入成功。
(可左右滑动)
5.Hue中对Solr的collection赋权测试
1.使用solr用户登录Hue中,创建admin角色,并对solr用户组分配所有权限。
选择security模块
点击“Solr Collections”
点击“Roles”
创建solr_admin角色,并赋予所有权限。
2.使用fayson用户登录Hue进行创建collection测试。
报错,显示没有权限
3.在Windows客户端使用fayson用户登录Kerberos,访问Solr Web UI
显示一直在loading,无法加载
4.使用solr用户登录Hue,给fayson赋予collection的update权限。
5.使用fayson用户登录Hue再次创建collection。
创建成功,说明Sentry给fayson用户组分配collection的update权限后,fayson用户可以创建collection
6.使用fayson用户分别查看collection1和collection2的数据。
查看collection2的数据时报错没有权限,因为我们没有给fayson用户组分配collection的query权限。
查看collection1时成功,说明用户组即使没分配collection的query权限,但是依旧可以查看由自己创建的collection。
7.再次使用fayson用户登录Windows下的Kerberos客户端,然后访问Solr的Web UI
依旧显示一直在loading,即如果该用户只有collection的update权限,Solr的Web UI无法查看。
8.通过Solr用户登录Hue,将fayson用户组的权限改为所有collection都有query权限。
9.再次使用fayson用户登录Hue查看collection2的数据。
可以查询collection2的数据,说明授权query权限生效
10.再次使用fayson用户登录Windows的Kerberos客户端,然后打开Solr的Web UI
发现可以登录Solr的Web UI,也可以查询collection中的数据。
6.总结
1.使用Hue可以界面化配置Solr的Sentry权限,从而对collection进行权限管理,主要是query和update。
2.如果对某个用户只赋予update权限,则该用户可以创建collection,但是依旧无法查询collection。
3.Solr的Sentry的权限不仅适用于Hue查询collection数据,也适用于Solr的Web UI。即Sentry的权限控制是全方位的。
4.如果要访问Solr的Web UI,必须在Windows客户端配置Kerberos并登录,使用火狐浏览器访问。具体请参考《如何在Kerberos下使用Solr》和《Windows Kerberos客户端配置并访问CDH》。
5.如果是在Solr中使用Sentry权限管理,CDH集群必须启用Kerberos,同时Solr服务也需要启用Kerberos认证。
6.一旦对solr启用Sentry授权以后,solr用户就是管理员,一切管理员操作都需要使用solr用户来操作,我们在Hue中也同时要创建solr用户与solr组,这个与我们在Hive/Impala中使用Sentry时,hive用户是管理员原理是一样的。
参考:
https://www.cloudera.com/documentation/enterprise/latest/topics/search_solrctl_examples.html
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操