zoukankan      html  css  js  c++  java
  • hive、impala集成ldap

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

    ----------------------------我也是有底线的-----------------------------
  • 相关阅读:
    PAT 1012 数字分类 (20)
    HDU 3903 Trigonometric Function(数学定理)
    HUST 1600 Lucky Numbers
    HUST 1599
    FZU 2092 收集水晶(记忆化搜索)
    Java实现 蓝桥杯 算法训练 字符串长度(IO无敌)
    Java实现 蓝桥杯 算法训练 字符串长度(IO无敌)
    Java实现 蓝桥杯 算法训练 Remember the A La Mode(暴力)
    Java实现 蓝桥杯 算法训练 Remember the A La Mode(暴力)
    Java实现 蓝桥杯 算法训练 Remember the A La Mode(暴力)
  • 原文地址:https://www.cnblogs.com/bugsbunny/p/6862906.html
Copyright © 2011-2022 走看看