温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


Fayson的github:

​https://github.com/fayson/cdhproject​


提示:代码块部分可以左右滑动查看噢


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。


如何在Hue中使用Sentry为Solr赋权_solr


2.然后对Solr服务进行以下配置


如何在Hue中使用Sentry为Solr赋权_用户登录_02

如何在Hue中使用Sentry为Solr赋权_数据_03


保存配置并按照要求重启服务。


3.确保Hue已经集成Sentry与Solr服务。


如何在Hue中使用Sentry为Solr赋权_数据_04

如何在Hue中使用Sentry为Solr赋权_数据_05


保存配置并按照要求重启服务。


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目录。


如何在Hue中使用Sentry为Solr赋权_solr_06


2.注意:因为我们开启了Sentry,在创建collection的时候我们需要使用solr用户。否则是没有权限创建collection的。这里跟在Hive/Impala中使用Sentry时,使用hive作为管理员用户是相似的。我们在Hue中创建一个solr的group,以及solr用户,然后用solr用户登录Hue,创建过程略。


如何在Hue中使用Sentry为Solr赋权_数据_07

如何在Hue中使用Sentry为Solr赋权_solr_08


3.使用solr用户登录hue后,选择“indexes”。


如何在Hue中使用Sentry为Solr赋权_数据_09


点击“create index”


如何在Hue中使用Sentry为Solr赋权_用户登录_10


点击选择第一步我们上传的csv文件


如何在Hue中使用Sentry为Solr赋权_用户登录_11


点击“upload a file”


如何在Hue中使用Sentry为Solr赋权_数据_12


点击“Next”


如何在Hue中使用Sentry为Solr赋权_solr_13


注意还要输入collection的名字,这里我们输入“collection1”,选择主键以及其他字段,这里我们选择field_1也即第一个字段为主键。


如何在Hue中使用Sentry为Solr赋权_数据_14


点击“Submit”


如何在Hue中使用Sentry为Solr赋权_solr_15


这里创建collection以及导入数据成功


如何在Hue中使用Sentry为Solr赋权_用户登录_16


4.使用solr用户登录Kerberos,查询collection1确认数据都已经导入成功。


[root@cdh02 _fayson]# kinit -kt /root/solr.keytab solr/cdh02.fayson.com
[root@cdh02 _fayson]# curl --negotiate -u : "http://cdh04.fayson.com:8983/solr/collection1/query?q=*%3A*&wt=json&indent=true"

(可左右滑动)


如何在Hue中使用Sentry为Solr赋权_用户登录_17


5.Hue中对Solr的collection赋权测试




1.使用solr用户登录Hue中,创建admin角色,并对solr用户组分配所有权限。

选择security模块


如何在Hue中使用Sentry为Solr赋权_数据_18


点击“Solr Collections”


如何在Hue中使用Sentry为Solr赋权_用户登录_19


点击“Roles”


如何在Hue中使用Sentry为Solr赋权_solr_20


创建solr_admin角色,并赋予所有权限。


如何在Hue中使用Sentry为Solr赋权_数据_21

如何在Hue中使用Sentry为Solr赋权_用户登录_22


2.使用fayson用户登录Hue进行创建collection测试。


如何在Hue中使用Sentry为Solr赋权_用户登录_23


报错,显示没有权限


3.在Windows客户端使用fayson用户登录Kerberos,访问Solr Web UI


如何在Hue中使用Sentry为Solr赋权_solr_24

如何在Hue中使用Sentry为Solr赋权_solr_25


显示一直在loading,无法加载


4.使用solr用户登录Hue,给fayson赋予collection的update权限。


如何在Hue中使用Sentry为Solr赋权_数据_26

如何在Hue中使用Sentry为Solr赋权_solr_27


5.使用fayson用户登录Hue再次创建collection。


如何在Hue中使用Sentry为Solr赋权_solr_28

如何在Hue中使用Sentry为Solr赋权_数据_29

如何在Hue中使用Sentry为Solr赋权_数据_30

如何在Hue中使用Sentry为Solr赋权_solr_31

如何在Hue中使用Sentry为Solr赋权_数据_32


创建成功,说明Sentry给fayson用户组分配collection的update权限后,fayson用户可以创建collection


6.使用fayson用户分别查看collection1和collection2的数据。


如何在Hue中使用Sentry为Solr赋权_数据_33


查看collection2的数据时报错没有权限,因为我们没有给fayson用户组分配collection的query权限。


如何在Hue中使用Sentry为Solr赋权_用户登录_34


查看collection1时成功,说明用户组即使没分配collection的query权限,但是依旧可以查看由自己创建的collection。


7.再次使用fayson用户登录Windows下的Kerberos客户端,然后访问Solr的Web UI


如何在Hue中使用Sentry为Solr赋权_用户登录_35


依旧显示一直在loading,即如果该用户只有collection的update权限,Solr的Web UI无法查看。


8.通过Solr用户登录Hue,将fayson用户组的权限改为所有collection都有query权限。


如何在Hue中使用Sentry为Solr赋权_solr_36


9.再次使用fayson用户登录Hue查看collection2的数据。


如何在Hue中使用Sentry为Solr赋权_用户登录_37

如何在Hue中使用Sentry为Solr赋权_数据_38


可以查询collection2的数据,说明授权query权限生效


10.再次使用fayson用户登录Windows的Kerberos客户端,然后打开Solr的Web UI


如何在Hue中使用Sentry为Solr赋权_数据_39

如何在Hue中使用Sentry为Solr赋权_solr_40


发现可以登录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_sentry.html#concept_m2p_knc_3w​

​https://www.cloudera.com/documentation/enterprise/latest/topics/cm_sg_sentry_service.html#search_privilege_model​

​https://www.cloudera.com/documentation/enterprise/latest/topics/search_solrctl_examples.html​

​https://www.cloudera.com/documentation/enterprise/latest/topics/search_configuration.html#concept_l3y_txb_mt​



提示:代码块部分可以左右滑动查看噢


为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。



推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

如何在Hue中使用Sentry为Solr赋权_solr_41

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操