apache sentry安装
来源:互联网 发布:java的数据结构有哪些 编辑:程序博客网 时间:2024/05/01 05:39
环境
Ubuntu STL 16.0.4Hadoop 2.7.4Hive 2.1.1sentry 1.7.0maven 3.5.0//注:伪分布式环境
安装maven
1.apache maven官网下载maven,用于编译sentry源码。
2.修改~/.bashrc文件,添加maven路径。
export MAVEN_HOME=/etc/usr/local/maven export PATH=$PATH:MAVEN_HOME/bin
3.使.bashrc生效source ~/.bashrc
。
4.执行mvn -v
可查看maven是否安装成功。
编译sentry源码
- 在apache sentry官网下载sentry源码(很有意思,官网上没有直接运行的binary文件,只有源码,所以需要maven编译)。
- 在README.md文件里可知,在apache-sentry-1.7.0-src文件夹里执行
mvn install -DskiTests
即可进行编译。 - 当终端出现下图情况时即编译成功:
- 编译结果在apache-sentry-1.7.0-src/sentry-dist/target/apache-stnery-1.7.0下。
编译结果上传至百度网盘,密码: e5hp。
配置sentry环境
将mysql-connector的jar包拷入sentry/lib下
sudo mv mysql-connector-java-5.0.8-bin.jar /usr/local/sentry/lib
修改sentry-site.xml文件
注意:在sentry/conf下有sentry-site.xml.service.template和sentry-site.xml.hive-client.template两种类型的文件,其中service文件是用于在sentry/conf下配置sentry环境的,hive-client文件是需要拷贝到hive/conf下配置hive和sentry关联的。
参考sentry-site.xml.service.template修改sentry-site.xml,
sudo cp sentry-site.xml.service.template sentry-site.xml
;
<!-- 修改内容 --><property> <name>sentry.store.jdbc.url</name> <value>jdbc:mysql://localhost:3306/sentry</value> </property> <property> <name>sentry.store.jdbc.driver</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>sentry.store.jdbc.user</name> <value>sentry</value> </property> <property> <name>sentry.store.jdbc.password</name> <value>sentry</value> </property> <!-- 关闭security.mode --><property> <name>sentry.service.security.mode</name> <value>kerberos</value></property><property> <name>sentry.service.server.principal</name> <value></value></property><property> <name>sentry.service.server.keytab</name> <value></value></property><!-- 添加内容 --><property> <name>sentry.service.server.rpc-address</name> <value>localhost</value> </property> <property> <name>sentry.service.server.rpc-port</name> <value>8038</value> </property>
注释:
sentry默认数据库不是mysql,所以默认驱动也不是mysql 的,所以前四个是将数据库相关信息修改为mysql的。
因为对sentry还不是很了解,所以先把其他多余的服务关闭,配置好环境再说。T_T
后面添加内容用于监听localhost:8038端口,原本sentry-site.xml.service.template里面没有,是自己添加的。经测试不添加也可以,应该是默认端口号就是8038。
为sentry配置数据库和路径
1.配置数据库
CREATE DATABASE sentry;CREATE USER sentry IDENTIFIED BY 'sentry';GRANT all ON sentry.* TO sentry@'%' IDENTIFIED BY 'sentry';flush privileges;
2.配置sentry路径
export SENTRY_HOME=/usr/local/sentryexport PATH=$PATH:$SENTRY_HOME/bin
执行 sentry -v
,如果出现如下所示即配置成功:
运行sentry服务
如果是第一次运行sentry服务需要提前初始化元数据库,命令如下:
sentry --command schema-tool --conffile /usr/local/sentry/conf/sentry-site.xml --dbType mysql --initSchema
运行sentry命令:
sentry --command service --conffile /usr/local/sentry/conf/sentry-site.xml
如果报错:
could not create SeverSocket on address localhost/127.0.0.1:8038
则可能metastore已经启动,如果想要重新启动sentry需要先关闭之。
执行命令jps
,kill -9 pid即可。
出现如下界面说明已经运行起来了:
serving on localhost/127.0.0.1:8038
hive集成sentry
1.将sentry-site.xml.hive-client.template拷贝到hive/conf下:
sudo mv /usr/local/sentry/conf/sentry-site.xml.hive-client.template /usr/local/hive/conf/sentry-site.xml
2.修改hive-site.xml
<!-- Hive Metastore集成Sentry --><property> <name>hive.metastore.pre.event.listeners</name> <value>org.apache.sentry.binding.metastore.MetastoreAuthzBinding</value></property><property> <name>hive.metastore.event.listeners</name> <value>org.apache.sentry.binding.metastore.SentryMetastorePostEventListener</value> </property><!-- Hive-server2集成Sentry --><property> <name>hive.server2.enable.impersonation</name> <value>true</value></property><property> <name>hive.security.authorization.task.factory</name> <value>org.apache.sentry.binding.hive.SentryHiveAuthorizationTaskFactoryImpl</value></property><property> <name>hive.server2.session.hook</name> <value>org.apache.sentry.binding.hive.HiveAuthzBindingSessionHook</value></property><property> <name>hive.sentry.conf.url</name> <value>file:///usr/local/hive/conf/sentry-site.xml</value></property>
3.修改sentry-site.xml
注意!这里改的是hive/conf/sentry-site.xml而不是sentry/conf下的!!!!
<property> <name>sentry.service.client.server.rpc-port</name> <value>8038</value> </property> <property> <name>sentry.service.client.server.rpc-address</name> <value>localhost</value> </property> <property> <name>sentry.service.client.server.rpc-connection-timeout</name> <value>200000</value> </property> <!--以下是客户端配置--> <property> <name>sentry.provider</name> <value>org.apache.sentry.provider.file.HadoopGroupResourceAuthorizationProvider</value> </property> <property> <name>sentry.hive.provider.backend</name> <value>org.apache.sentry.provider.db.SimpleDBProviderBackend</value> </property> <property> <name>sentry.metastore.service.users</name> <value>hive</value><!--queries made by hive user (beeline) skip meta store check--> </property> <property> <name>sentry.hive.server</name> <value>localhost</value> </property> <property> <name>sentry.hive.testing.mode</name> <value>true</value> </property>
注释:
Sentry 的使用有两种方式,一是基于文件的存储方式(SimpleFileProviderBackend),一是基于数据库的存储方式(SimpleDbProviderBackend),如果使用基于文件的存储则只需要安装sentry,否则还需要安装 sentry-store。
3.hive添加对sentry的依赖
创建软链接:
sudo cp /usr/lcoal/sentry/lib/sentry-binding-hive-1.7.0.jar /usr/lcoal/sentry/lib/sentry-binding-hive.jarsudo ln -s /usr/lcoal/sentry/lib/sentry-binding-hive.jar /usr/lcoal/hive/lib/sentry-binding-hive.jar
4.重新初始化元数据库
重新配置hive-site.xml之后立马运行hive,执行操作时汇报如下错误:
这时需要重新初始化元数据库。
需要先把愿元数据库中的hive_metadata删掉,然后在执行初始化操作。
mysql -u hive -p hiveshow databases;drop database hive_metadata;quit;schematool -dbType mysql -initSchema
初始化成功
注意:
在hive更改完sentry相关配置之后进入hive页面执行查询数据库命令(show databases;
)时,会出现错误。
这时把sentry/lib下sentry*.jar和solr*.jar拷贝到hive/lib/下,然后就能在hive下执行查询操作了
hive集成sentry测试
Sentry权限控制通过Beeline(Hiveserver2 SQL 命令行接口)输入Grant 和 Revoke语句来配置。语法跟现在的一些主流的关系数据库很相似。
需要注意的是:当sentry服务启用后,我们必须使用beeline接口来执行hive查询,Hive Cli并不支持sentry。
参考内容
安装和配置Sentry
Apache Sentry安装及简单使用
测试Hive集成Sentry
Impala和Hive集成Sentry
- apache sentry安装
- Apache Sentry手动安装、使用手册
- <转>Apache Sentry安装及简单使用
- Apache Sentry 初识
- Apache Sentry架构介绍
- apache hive + sentry测试
- 纯净centOs 安装sentry
- docker安装部署sentry
- Sentry手动安装、使用手册
- sentry
- Laravel 5.* 安装 Sentry 用户权限管理依赖包
- Centos7 hadoop集群 mysql、hive、sentry安装验证
- Hadoop安全访问控制开源组件:Apache Sentry 1.4版本发布
- 关于Sentry
- Sentry Robots
- sentry配置
- sentry配置
- Sentry 介绍
- 训练总结 10.19
- 接口优于抽象类。
- sublime text3插件管理器加载
- window 7 下-apache安装
- Linunx系统日志及相关操作
- apache sentry安装
- Using NuttX OS as a library on Atmel Studio 7
- RSA
- Frida官方手册
- 数位DP
- 设计模式之命令模式
- 循环2级运用,模拟发牌与九九乘法表
- 基于spring-data-redis的分布式锁
- 三菱PLC编程线缆制作