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,需要添加该参数。

hive、impala集成ldap的更多相关文章

  1. Impala集成C3P0的连接方式

    1. 概述 Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据.已有的Hive系统虽然也提供了SQL语义,但由于 ...

  2. 【Hadoop离线基础总结】Hue与Impala集成

    Hue与Impala集成 1.修改hue.ini配置文件 [impala] server_host=node03 server_port=21050 impala_conf_dir=/etc/impa ...

  3. spark与hive的集成

    一:介绍 1.在spark编译时支持hive 2.默认的db 当Spark在编译的时候给定了hive的支持参数,但是没有配置和hive的集成,此时默认使用hive自带的元数据管理:Derby数据库. ...

  4. Oracle/Hive/Impala SQL比较1

    5 Function      指数据库内置的function,不讨论UDF.另外,操作符都不比较了,区别不大.   5.1 数学函数 功能 Oracle Hive Impala ABS 绝对值,有 ...

  5. ldap配置系列二:jenkins集成ldap

    ldap配置系列二:jenkins集成ldap jenkins简介 jenkins是一个独立的.开放源码的自动化服务器,它可以用于自动化与构建.测试.交付或部署软件相关的各种任务. jenkins官方 ...

  6. ldap配置系列三:grafana集成ldap

    ldap配置系列三:grafana集成ldap grafana的简介 grafana是一个类似kibana的东西,是对来自各种数据源的数据进行实时展示的平台,拥有这牛逼的外观.给一个官方的demo体验 ...

  7. 035 spark与hive的集成

    一:介绍 1.在spark编译时支持hive 2.默认的db 当Spark在编译的时候给定了hive的支持参数,但是没有配置和hive的集成,此时默认使用hive自带的元数据管理:Derby数据库. ...

  8. hive impala C++ Java垃圾回收 Garbage Collection GC

    hive impala impala  推荐每个节点内存  2^7~2^8GB Impala与Hive的比较 - 文章 - 伯乐在线 http://blog.jobbole.com/43233/ &l ...

  9. hbase与Hive的集成

    1 HBase与Hive的对比 1.Hive (1) 数据仓库 Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询. (2) 用于数据分析. ...

随机推荐

  1. 解决子元素用css float浮动后父级元素高度自适应高度

    1.在最后一个子元素后面清除浮动 2.父元素加over-flow:hidden;(副作用:子元素定位不能超出父元素的范围) 3.父元素也一样浮动(最笨的方法): 4.子元素使用inline-block ...

  2. java 8 Hashmap深入解析 —— put get 方法源码

    每个java程序员都知道,HashMap是java中最重要的集合类之一,也是找工作面试中非常常见的考点,因为HashMap的实现本身确实蕴含了很多精妙的代码设计. 对于普通的程序员,可能仅仅能说出Ha ...

  3. JavaScript高级程序设计---学习笔记(二)

    面向对象程序设计1.属性类型.定义多属性.读取属性特性对象的属性在创建时都带有一些特征值,JavaScript通过这些特征值来定义它们的行为.这些特性是为了实现JavaScript引擎用的,因此不能直 ...

  4. 性能测试分享:jmeter性能监控(一)

    性能测试分享:jmeter性能监控(一) poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908 ...

  5. PT20150801隆重开班

    PT20150801隆重开班 伴随着秋天的的脚步,带着对梦想的憧憬,POPTEST1508期学员步入正式学习阶段:POPTEST的课程内容吸收了互联网公司先进技术的特点,同时坚持深入浅出的教育特点,完 ...

  6. 老李推荐:第2章1节《MonkeyRunner源码剖析》了解你的测试对象: NotePad应用简介

    老李推荐:第2章1节<MonkeyRunner源码剖析>了解你的测试对象: NotePad应用简介   本书脚本相关的示例常会用到Android SDK自带的NotePad这个应用,所以这 ...

  7. vuejs学习笔记(2)--属性,事件绑定,ajax

    属性 v-for 类似于angular中的 ng-repeat ,用于重复生成html片段: <ul id="box"> <li v-for="(v, ...

  8. 性能优化之AJAX

    明天就放假啦~哈哈.四月份好像还没有输出呢,吓得我赶紧写点东西... Ajax是高性能JavaScript的基础. Ajax,从最基本的层面来说,是一种与服务器通信而无需重载页面的方法.数据可以从服务 ...

  9. Use “error_messages” in Rails 3.2? (raises “undefined method” error)

    I am getting the following error in my Rails 3.2 functional tests: ActionView::Template::Error: unde ...

  10. 浩哥解析MyBatis源码(八)——Type类型模块之TypeAliasRegistry(类型别名注册器)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6705769.html 1.回顾 前面几篇讲了数据源模块,这和之前的事务模块都是enviro ...