安装和配置Sentry

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

1. 环境说明

系统环境:

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

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

2. 安装

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

$ yum list sentry*

sentry.noarch                        1.4.0+cdh5.4.0+155-1.cdh5.4.0.p0.47.el6                            @cdh
sentry-hdfs-plugin.noarch        1.4.0+cdh5.4.0+155-1.cdh5.4.0.p0.47.el6                            @cdh
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组件

这里安装以上所有组件:

$ yum install sentry* -y

3. 配置

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

配置 sentry service 相关的参数

    <property>
        <name>sentry.service.admin.group</name>
        <value>impala,hive,solr,hue</value>
    </property>
    <property>
        <name>sentry.service.allow.connect</name>
        <value>impala,hive,solr,hue</value>
    </property>
    <property>
        <name>sentry.verify.schema.version</name>
        <value>false</value>
    </property>
    <property>
        <name>sentry.service.reporting</name>
        <value>JMX</value>
    </property>
    <property>
        <name>sentry.service.server.rpc-address</name>
        <value>cdh1</value>
    </property>
    <property>
        <name>sentry.service.server.rpc-port</name>
        <value>8038</value>
    </property>
    <property>
        <name>sentry.service.web.enable</name>
        <value>true</value>
    </property>

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

    <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>

配置 sentry store 相关参数

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

    <property>
        <name>sentry.store.jdbc.url</name>
        <value>jdbc:postgresql://cdh1:5432/sentry</value>
    </property>
    <property>
        <name>sentry.store.jdbc.driver</name>
        <value>org.postgresql.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>

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的路径。

    <property>
        <name>sentry.store.group.mapping</name>
        <value>org.apache.sentry.provider.common.HadoopGroupMappingService</value>
    </property>
    <property>
        <name>sentry.store.group.mapping.resource</name>
        <value> </value>
        <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>
  </property>

配置客户端的参数:

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

    <property>
        <name>sentry.hive.server</name>
        <value>server1</value>
    </property>

初始化数据库

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

yum install postgresql-server postgresql-jdbc -y

ln -s /usr/share/java/postgresql-jdbc.jar /usr/lib/hive/lib/postgresql-jdbc.jar
ln -s /usr/share/java/postgresql-jdbc.jar /usr/lib/sentry/lib/postgresql-jdbc.jar

su -c "cd ; /usr/bin/pg_ctl start -w -m fast -D /var/lib/pgsql/data" postgres
su -c "cd ; /usr/bin/psql --command \"create user sentry with password 'sentry'; \" " postgres
su -c "cd ; /usr/bin/psql --command \"drop database sentry;\" " postgres
su -c "cd ; /usr/bin/psql --command \"CREATE DATABASE sentry owner=sentry;\" " postgres
su -c "cd ; /usr/bin/psql --command \"GRANT ALL privileges ON DATABASE sentry TO sentry;\" " postgres
su -c "cd ; /usr/bin/pg_ctl restart -w -m fast -D /var/lib/pgsql/data" postgres

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

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
#host    all         all         0.0.0.0/0             trust
host    all         all         127.0.0.1/32          md5

# IPv6 local connections:
#host    all         all         ::1/128               nd5

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

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

如果是更新,则执行:

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

4. 启动

在cdh1上启动sentry-store服务:

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

查看日志:

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

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

时间: 2024-08-30 15:29:54

安装和配置Sentry的相关文章

vcenter5.5无AD下的安装与配置

公司现在的虚拟化使用的基本上都是vsphere,目前大约有7台物理机,为了更好的管理虚拟机打算上vcenter. 下面就把vcenter的安装与配置记录下,在此vcenter版本为5.5,而且没有使用单独的数据库和AD域控制. vcenter安装相关的软件包如下: 上图中VMware-viclient-all-5.5.0-1281650为客户端安装文件,VMware-VIMSetup-all-5.5.0-1312299.iso为vcenter安装文件,VMware-VMvisor-Install

第1章 开发环境安装和配置(一):概述

原文 第1章 开发环境安装和配置(一):概述 目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上[网上找的介绍,不必在意]. 用C#开发手机应用程序,建议首选VS2015,这是因为VS2015内置的是C# 6.0,很多原来实现起来比较繁琐的操作,在VS2015下也都变得非常简单了. 1.跨平台移动应用开发 VS2015的移动跨平台采用Xamarin架构,这让原本就熟悉Visual Studio的开发者不用再熟悉其他的开发工具就能直接开发

Android Studio(一):介绍、安装、配置

Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Android Studio编码 Android Studio(四):Android Studio集成Genymotion Android Studio(五):修改Android Studio项目包名 Android Studio(六):Android Studio添加注释模板 Android Studio

zabbix3.0安装与配置

这个月又快过完了,最近也比较忙,没时间写文章,今天挤点时间把zabbix3.0安装与配置的文章写下来. 其实zabbix3.0的安装很简单,但是由于个人比较懒,所以一直不喜欢使用源码方式进行安装,而且管理的服务器多了,源码安装也感觉不方便,所以现在大部分安装软件我都会首先选择yum或者apt-get方式进行. 本篇文章,我也不多介绍zabbix3.0安装的详细步骤了,只列出centos.ubuntu下zabbix3.0的相关安装命令以及zabbix的基本配置. zabbix3.0对OS的要求:m

Postfix邮件服务器搭建之roundcube webmail安装与配置

前几篇文章,我们介绍了有关postfix的相关安装与配置,这篇文章我们再来介绍下,在web下管理postfix的软件roundcube webmail. 注意:本篇文章所需的基础环境都是根据<烂泥:Postfix邮件服务器搭建之准备工作>这篇文章准备的. 一.下载roundcube webmail软件包 要安装roundcube webmail,我们先要下载roundcube webmail,如下: wgethttp://jaist.dl.sourceforge.net/project/rou

Postfix邮件服务器搭建之软件安装与配置

Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postfix.dovecot.postfixadmin.roundcubemail,只有这几个软件相互配合才能搭建一套完整的邮件服务器. PS:本次实验在centos6.5 64bit上进行. 一.软件功能介绍 cyrus-sasl.postfix.dovecot.postfixadmin.roundcubemail,这五款软件,分别有各自的功能.下面就分别一一介绍各自的功能. 1.1 cyrus-sasl功能介绍

git教程(二)--安装和配置git

转载:http://blog.csdn.net/gatieme/article/details/50586476 前言 GIT跟SVN一样有自己的集中式版本库或服务器.但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库.可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支等.对一些人来说,这好像没多大用处,但当你突然遇到没有网络的

背景建模技术(八):bgslibrary_vs2010_mfc中boost的安装与配置

一.boost的下载与安装 在玩BGS Library时,有一个MFC的项目,在编译的过程中出现如下图的错误提示: 即: 1>e:\bgslibrary-master\vs2010mfc\src\stdafx.h(50): fatal error C1083: Cannot open include file: 'boost/lexical_cast.hpp': No such file or directory 根本原因在于没有安装和配置boost,下面对bgslibrary_vs2010_m

Node.js 学习笔记之简介、安装及配置

 本文是Node.js学习笔记系列文章的第一篇,主要给大家讲解的是在Windows和Linux上安装Node.js的方法.软件安装版本以0.12.0为例.希望大家能够喜欢.     简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅