安装和配置Sentry

本文主要记录安装和配置Sentry的过程,关于Sentry的介绍,请参考 Apache Sentry架构介绍 。

1. 环境说明

系统环境:

  • 操作系统:CentOs 6.6
  • Hadoop版本: CDH5.4
  • 运行用户:root

这里,我参考 使用yum安装CDH Hadoop集群 一文搭建了一个测试集群,并选择cdh1节点来安装sentry服务。

2. 安装

在cdh1节点上运行下面命令查看Sentry的相关组件有哪些:

  1. $ yum list sentry*
  2. sentry.noarch 1.4.0+cdh5.4.0+155-1.cdh5.4.0.p0.47.el6 @cdh
  3. sentry-hdfs-plugin.noarch 1.4.0+cdh5.4.0+155-1.cdh5.4.0.p0.47.el6 @cdh
  4. sentry-store.noarch 1.4.0+cdh5.4.0+155-1.cdh5.4.0.p0.47.el6 @cdh

以上组件说明:

  • sentry :sentry的基本包
  • sentry-hdfs-plugin :hdfs插件
  • sentry-store :sentry store组件

这里安装以上所有组件:

  1. $ yum install sentry* -y

3. 配置

参考 sentry-site.xml.service.template ,来修改Sentry的配置文件 /etc/sentry/conf/sentry-site.xml。

配置 sentry service 相关的参数

  1. <property>
  2. <name>sentry.service.admin.group</name>
  3. <value>impala,hive,solr,hue</value>
  4. </property>
  5. <property>
  6. <name>sentry.service.allow.connect</name>
  7. <value>impala,hive,solr,hue</value>
  8. </property>
  9. <property>
  10. <name>sentry.verify.schema.version</name>
  11. <value>false</value>
  12. </property>
  13. <property>
  14. <name>sentry.service.reporting</name>
  15. <value>JMX</value>
  16. </property>
  17. <property>
  18. <name>sentry.service.server.rpc-address</name>
  19. <value>cdh1</value>
  20. </property>
  21. <property>
  22. <name>sentry.service.server.rpc-port</name>
  23. <value>8038</value>
  24. </property>
  25. <property>
  26. <name>sentry.service.web.enable</name>
  27. <value>true</value>
  28. </property>
  29.  

如果需要使用kerberos认证,则还需要配置以下参数:

  1. <property>
  2. <name>sentry.service.security.mode</name>
  3. <value>kerberos</value>
  4. </property>
  5. <property>
  6. <name>sentry.service.server.principal</name>
  7. <value></value>
  8. </property>
  9. <property>
  10. <name>sentry.service.server.keytab</name>
  11. <value></value>
  12. </property>
  13.  

配置 sentry store 相关参数

sentry store可以使用两种方式,如果使用基于SimpleDbProviderBackend的方式,则需要设置jdbc相关的参数:

  1. <property>
  2. <name>sentry.store.jdbc.url</name>
  3. <value>jdbc:postgresql://cdh1/sentry</value>
  4. </property>
  5. <property>
  6. <name>sentry.store.jdbc.driver</name>
  7. <value>org.postgresql.Driver</value>
  8. </property>
  9. <property>
  10. <name>sentry.store.jdbc.user</name>
  11. <value>sentry</value>
  12. </property>
  13. <property>
  14. <name>sentry.store.jdbc.password</name>
  15. <value>redhat</value>
  16. </property>
  17.  

Sentry store的组映射 sentry.store.group.mapping 有些两种配置方式:org.apache.sentry.provider.common.HadoopGroupMappingService 或者 org.apache.sentry.provider.file.LocalGroupMapping ,当使用后者的时候,还需要配置 sentry.store.group.mapping.resource 参数,即设置Policy file的路径。

  1. <property>
  2. <name>sentry.store.group.mapping</name>
  3. <value>org.apache.sentry.provider.common.HadoopGroupMappingService</value>
  4. </property>
  5. <property>
  6. <name>sentry.store.group.mapping.resource</name>
  7. <value> </value>
  8. <description> Policy file for group mapping. Policy file path for local group mapping, when sentry.store.group.mapping is set to LocalGroupMapping Service class.</description>
  9. </property>
  10.  

配置客户端的参数:

配置Sentry和hive集成时的服务名称,默认值为 HS2 ,这里设置为server1:

  1. <property>
  2. <name>sentry.hive.server</name>
  3. <value>server1</value>
  4. </property>

初始化数据库

如果配置 sentry store 使用 posrgres 数据库,当然你也可以使用其他的数据库,则需要创建并初始化数据库。数据库的创建过程,请参考 Hadoop自动化安装shell脚本 ,下面列出关键脚本。

  1. yum install postgresql-server postgresql-jdbc -y
  2. ln -s /usr/share/java/postgresql-jdbc.jar /usr/lib/hive/lib/postgresql-jdbc.jar
  3. ln -s /usr/share/java/postgresql-jdbc.jar /usr/lib/sentry/lib/postgresql-jdbc.jar
  4. su -c "cd ; /usr/bin/pg_ctl start -w -m fast -D /var/lib/pgsql/data" postgres
  5. su -c "cd ; /usr/bin/psql --command \"create user sentry with password 'redhat'; \" " postgres
  6. su -c "cd ; /usr/bin/psql --command \"drop database sentry;\" " postgres
  7. su -c "cd ; /usr/bin/psql --command \"CREATE DATABASE sentry owner=sentry;\" " postgres
  8. su -c "cd ; /usr/bin/psql --command \"GRANT ALL privileges ON DATABASE sentry TO sentry;\" " postgres
  9. su -c "cd ; /usr/bin/pg_ctl restart -w -m fast -D /var/lib/pgsql/data" postgres

然后,修改 /var/lib/pgsql/data/pg_hba.conf 内容如下:

  1. # TYPE DATABASE USER CIDR-ADDRESS METHOD
  2. # "local" is for Unix domain socket connections only
  3. local all all md5
  4. # IPv4 local connections:
  5. #host all all 0.0.0.0/0 trust
  6. host all all 127.0.0.1/32 md5
  7. # IPv6 local connections:
  8. #host all all ::1/128 nd5

如果是第一次安装,则初始化 sentry 的元数据库:

  1. $ sentry --command schema-tool --conffile /etc/sentry/conf/sentry-site.xml --dbType postgres --initSchema
  2. Sentry store connection URL: jdbc:postgresql://cdh1/sentry
  3. Sentry store Connection Driver : org.postgresql.Driver
  4. Sentry store connection User: sentry
  5. Starting sentry store schema initialization to 1.4.0-cdh5-2
  6. Initialization script sentry-postgres-1.4.0-cdh5-2.sql
  7. Connecting to jdbc:postgresql://cdh1/sentry
  8. Connected to: PostgreSQL (version 8.4.18)
  9. Driver: PostgreSQL Native Driver (version PostgreSQL 9.0 JDBC4 (build 801))
  10. Transaction isolation: TRANSACTION_REPEATABLE_READ
  11. Autocommit status: true
  12. 1 row affected (0.002 seconds)
  13. No rows affected (0.004 seconds)
  14. Closing: 0: jdbc:postgresql://cdh1/sentry
  15. Initialization script completed
  16. Sentry schemaTool completed

如果是更新,则执行:

  1. $ sentry --command schema-tool --conffile /etc/sentry/conf/sentry-site.xml --dbType postgres --upgradeSchema

4. 启动

在cdh1上启动sentry-store服务:

  1. $ /etc/init.d/sentry-store start

查看日志:

  1. $ cat /var/log/sentry/sentry-store.out

查看sentry的web监控界面: http://cdh1:51000/

安装和配置Sentry(收录)的更多相关文章

  1. 安装配置sentry服务

    环境 系统环境:Centos6.7 Hadoop版本:CDH5.10 jdk版本:jdk7 注:本文并未集成kerberos组件 安装Sentry Server 选择安装hive的节点进行安装测试: ...

  2. Sentry的安装、配置、使用

    前言 上一篇文章介绍了ExceptionLess这个日志收集系统:ExceptionLess的安装.配置.使用 由于ExceptionLess官方提供的客户端只有.Net/.NetCore平台和js的 ...

  3. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

  4. Linux 系统下原版 texlive 2016 的安装与配置

    尽管大部分常见的linux系统的包管理器内都会包含texlive,然而最好还是安装TUG发布的原版texlive.这是由于:1,软件仓库内的texlive通常版本较陈旧:2,由于版权因素一些tex宏包 ...

  5. OpenStack安装与配置2

    第二部分 OpenStack安装与配置 一.引言   本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server ...

  6. github+hexo搭建自己的博客网站(六)进阶配置(搜索引擎收录,优化你的url)

    详细的可以查看hexo博客的演示:https://saucxs.github.io/ 绑定了域名: http://www.chengxinsong.cn hexo+github博客网站源码(可以clo ...

  7. python笔记1-基础概念、python安装使用配置

    Python 1.基础概念 一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学.在1989诞生,Guido(龟叔)开发.这里的python并不 ...

  8. 2.4、CDH 搭建Hadoop在安装(Cloudera Software安装和配置MySQL)

    为Cloudera Software安装和配置MySQL 要使用MySQL数据库,请按照以下过程操作.有关MySQL数据库兼容版本的信息,请参阅CDH和Cloudera Manager支持的数据库. ...

  9. 第二部分 OpenStack安装与配置

    第二部分 OpenStack安装与配置 一.引言   本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server ...

随机推荐

  1. 日期的压缩存储daybits

    问题: 存储一个日期的序列,例如保存用户一年的登录时间序列,20140201,20130102这样两个日期,如果用INT那么需要八个字节,用STRING就更多了. 解决: 通过bit来存储一天,具体的 ...

  2. OC 枚举

    void test() { // 定义一种枚举类型 enum Season {spring, summer, autumn, winter}; // 定义一个枚举变量s enum Season s = ...

  3. JQuery datatables 标题和内容居中显示

    1.如题,使用到了强大的表格插件datatables,要使标题和内容都居中显示,只需要在jsp引入css,写上如下内容即可: /*qiulinhe:2016年11月7日13:48:26*/ /* da ...

  4. Apache轻量级性能測试工具--ab

    Apache轻量级性能測试工具--ab ab早已不是什么新奇玩意,平时工作中会须要一些性能測试.简单的性能測试全然能够由AB来替代,而不须要动用LR这样重量级的工具. 此文简介一下ab的工具使用与结果 ...

  5. LG3690 【【模板】Link Cut Tree (动态树)】

    题目 终于去写\(LCT\)了 这个大爷讲的挺好的 板子 #include<algorithm> #include<iostream> #include<cstring& ...

  6. JDK下载

    1.进入Java官网,方式不限,如百度“Java 官网”,www.oracle.com,找到Java SE -> download.链接如下: http://www.oracle.com/tec ...

  7. 【luogu P2065 [TJOI2011]卡片】 假题解

    题目链接:https://www.luogu.org/problemnew/show/P2065 辣鸡匈牙利,没有优化贼鸡儿慢 // luogu-judger-enable-o2 #include & ...

  8. Angularjs实例4

    <!DOCTYPE html><html lang="zh-cn" ng-app=""><head><meta htt ...

  9. ng-repeat 指令(带有对象)

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  10. iOS 让视图UIView单独显示某一侧的边框线

    iOS 让视图UIView 单独显示某一侧的边框线   有时候需要让view显示某一侧的边框线,这时设置layer的border是达不到效果的.在网上查阅资料发现有一个投机取巧的办法,原理是给view ...