文档章节

hive、impala集成ldap

PeanutLike
 PeanutLike
发布于 2017/05/16 18:32
字数 771
阅读 389
收藏 7

##1、概要 ###1.1 环境信息

  • hadoop:cdh5.10
  • os:centos6.7
  • user:root
  • hive、impala已集成sentry

###1.2 访问控制权限 这里通过使用openldap来控制hive、impala的访问权限,即通过用户名、密码来进行访问。而hive、impala内部则已集成了sentry来控制更为细粒度的权限访问。

##2、openldap ###2.1 安装

# yum install -y openldap-*

###2.2 配置

  • 拷贝ldap配置文件到ldap目录
# cp /usr/share/openldap-servers/slapd.conf.obsolete 
# /etc/openldap/slapd.conf
  • 创建ldap管理员密码
# slappasswd 
New password: 
Re-enter new password: 
{SSHA}k8d0PcF3Y1VcI/ixMiss8e5ZmIkFC8dl

输入保存管理员密码,返回的是加密后的一串密文

  • 编辑配置文件 注:这里组织的域为 zpbigdata.com
# vim /etc/openldap/slapd.conf 修改对应如下内容
database config
access to *
	by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
	by * none

# enable server status monitoring (cn=monitor)
database monitor
access to *
	by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
        by dn.exact="cn=Manager,dc=zpbigdata,dc=com" read
        by * none

#######################################################################
# database definitions
#######################################################################

database	bdb
suffix		"dc=zpbigdata,dc=com"
checkpoint	1024 15
rootdn		"cn=Manager,dc=zpbigdata,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw		{SSHA}k8d0PcF3Y1VcI/ixMiss8e5ZmIkFC8dl #加密后的管理员密码
#rootpw		{SSHA}k8d0PcF3Y1VcI/ixMiss8e5ZmIkFC8dl
  • 拷贝DB_CONFIG文件到指定目录
cp /usr/share/openldap-servers/DB_CONFIG.example  /var/lib/ldap/DB_CONFIG
  • 删除默认/etc/openldap/slapd.d下面的所有内容
rm -rf /etc/openldap/slapd.d/*
  • 赋予配置目录相应权限
# chown -R ldap:ldap /var/lib/ldap  
# chown -R ldap:ldap /etc/openldap/  
# service slapd start
  • 生成配置文件并赋值
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
# chown -R ldap:ldap /etc/openldap/slapd.d/*
# service slapd restart

2.3 migrationtools

  • 安装migrationtools
# yum install -y migrationtools
  • 修改migrate_common.ph文件
# vim /usr/share/migrationtools/migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "zpbigdata.com";

# Default base 
$DEFAULT_BASE = "dc=zpbigdata,dc=com";
  • 利用pl脚本将/etc/passwd 和/etc/group生成LDAP能读懂的文件格式
# 这里导入一个etl用户来测试
# cat /etc/passwd | grep etl > /tmp/passwd 
# cat /etcgroup | grep etl > /tmp/group

# /usr/share/migrationtools/migrate_base.pl > /tmp/base.ldif  
# /usr/share/migrationtools/migrate_passwd.pl  /tmp/passwd > /tmp/passwd.ldif  
# /usr/share/migrationtools/migrate_group.pl  /tmp/group > /tmp/group.ldif
  • 将文件导入到LDAP
# ldapadd -x -D "cn=Manager,dc=zpbigdata,dc=com" -W -f /tmp/base.ldif 
# ldapadd -x -D "cn=Manager,dc=zpbigdata,dc=com" -W -f /tmp/passwd.ldif 
# ldapadd -x -D "cn=Manager,dc=zpbigdata,dc=com" -W -f /tmp/group.ldif 

2.4 phpldapadmin

phpLDAPadmin是一个LDAP web客户端,它提供一个简单的、支持多语言多环境的LDAP管理功能。安装部署略。 输入图片说明

可以看到刚刚测试导入的用户etl。

##3、hive集成ldap ###3.1 修改配置 在/etc/hive/conf/hive-site.xml中添加

    <property>
        <name>hive.server2.authentication</name>
        <value>LDAP</value>
    </property>

    <property>
        <name>hive.server2.authentication.ldap.url</name>
        <value>ldap://ip</value>
    </property>

    <property>
        <name>hive.server2.authentication.ldap.baseDN</name>
        <value>ou=People,dc=zpbigdata,dc=com</value>
    </property>

添加完后重启hive-server2.

###3.2 验证 此时通过beeline连接,需要ldap中对应的用户名密码才能连接成功。

##4、impala集成ldap ###4.1 修改配置 修改/etc/default/impala文件,在IMPALA_SERVER_ARGS中添加:

-enable_ldap_auth=true 
-ldap_tls=false 
-ldap_passwords_in_clear_ok=true 
-ldap_uri=ldap://idap_ip
-ldap_baseDN=ou=People,dc=zpbigdata,dc=com 

添加完后重启impala。 ###3.3 验证 验证命令: impala-shell -i impalad-server -u etl -l --auth_creds_ok_in_clear
-i 集群中任意一台impalad服务器都可以 -u 登录用户 -l 使用ldap --auth_creds_ok_in_clear 由于没有使用ssl,需要添加该参数。

© 著作权归作者所有

PeanutLike
粉丝 43
博文 22
码字总数 34274
作品 0
徐汇
技术主管
私信 提问
Impala和Hive集成Sentry、Kerberos认证

关于 Kerberos 的安装和 HDFS 配置 kerberos 认证,请参考 HDFS配置kerberos认证。 关于 Kerberos 的安装和 YARN 配置 kerberos 认证,请参考 YARN配置kerberos认证。 关于 Kerberos 的安装和...

hblt-j
2018/12/13
76
0
基于Sentry实现数据访问权限控制

Sentry初识 Sentry是适用于Hadoop生态环境、基于角色的授权管理系统,可以模块化集成到HDFS、Hive、Impala。它是一个策略引擎,运行定义授权规则,以校验用户对数据模型的访问请求。 授权粒度...

hblt-j
2018/12/12
351
0
yum安装CDH5.5 hive、impala

一、安装hive 组件安排如下: 1.安装hive 在77上安装hive: 在其他节点上可以安装客户端: 2.安装mysql yum方式安装mysql: 启动数据库: 安装jdbc驱动: 设置mysql初始密码为bigdata: 进入...

PeanutLike
2016/10/13
657
1
使用Apache Sentry的Presto

概观 Apache Sentry是一个基于角色的粒度授权模块,适用于Hadoop。Sentry提供了对经过身份验证的用户和应用程序(如Presto)的数据控制和强制执行精确级别权限的功能。 Presto Enterprise与A...

hblt-j
02/13
113
0
0011-如何在Hive & Impala中使用UDF

1.文档编写目的 本文档讲述如何开发Hive自定义函数(UDF),以及如何在Impala中使用Hive的自定义函数,通过本文档,您将学习到以下知识: 1.如何使用Java开发Hive的自定义函数 2.如何在Hive中...

Hadoop实操
2018/11/17
46
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
今天
4
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
今天
4
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
7
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部