安裝和配置Sentry(收錄)


安裝和配置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/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>redhat</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 'redhat'; \" " 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/ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM