zoukankan      html  css  js  c++  java
  • Using HiveServer2

    To configure Hive for use with HiveServer2, include the following configuration properties in the .../hive-site.xml configuration file.

    <property>
      <name>hive.support.concurrency</name>
      <description>Enable Hive's Table Lock Manager Service</description>
      <value>true</value>
    </property>
     
    <property>
      <name>hive.zookeeper.quorum</name>
      <description>Zookeeper quorum used by Hive's Table Lock Manager</description>
      <value><zk node1>,<zk node2>,...,<zk nodeN></value>
    </property>
     
    <property>
      <name>hive.zookeeper.client.port</name>
      <value>5181</value>
      <description>The Zookeeper client port. The MapR default clientPort is 5181.</description>
    </property>

    To implement custom authentication for HiveServer2, create a custom Authenticator class derived from the following interface:

    public interface PasswdAuthenticationProvider {
      /**
       * The Authenticate method is called by the HiveServer2 authentication layer
       * to authenticate users for their requests.
       * If a user is to be granted, return nothing/throw nothing.
       * When a user is to be disallowed, throw an appropriate {@link AuthenticationException}.
       *
       * For an example implementation, see {@link LdapAuthenticationProviderImpl}.
       *
       * @param user - The username received over the connection request
       * @param password - The password received over the connection request
       * @throws AuthenticationException - When a user is found to be
       * invalid by the implementation
       */
      void Authenticate(String user, String password) throws AuthenticationException;
    }

    e.g.

    ackage org.apache.hadoop.hive.contrib.auth;
    
    import javax.security.sasl.AuthenticationException;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.hadoop.conf.Configurable;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hive.contrib.utils.MD5Util;
    import org.apache.hive.service.auth.PasswdAuthenticationProvider;
    
    
    public class XXXXPasswdAuthenticator implements PasswdAuthenticationProvider,Configurable {
      private static final Log LOG=LogFactory.getLog(XXXXPasswdAuthenticator.class);
      private Configuration conf=null;
      
      private static final String HIVE_JDBC_PASSWD_AUTH_PREFIX="hive.jdbc_passwd.auth.%s";
      
      public XXXXPasswdAuthenticator() {
        init();
      }
      
      /**
       * 
       */
      public void init(){
        
      }
      
      @Override
      public void Authenticate(String userName, String passwd)
          throws AuthenticationException {
        LOG.info("user: "+userName+" try login.");
        
        String passwdMD5 = getConf().get(String.format(HIVE_JDBC_PASSWD_AUTH_PREFIX, userName));
        
        if(passwdMD5==null){
          String message = "user's ACL configration is not found. user:"+userName;
          LOG.info(message);
          throw new AuthenticationException(message);
        }
        
        String md5 = MD5Util.md5Hex(passwd);
        
        if(!md5.equals(passwdMD5)){
          String message = "user name and password is mismatch. user:"+userName;
          throw new AuthenticationException(message);
        }
        
        LOG.info("user "+userName+" login system successfully.");
        
      }
    
      @Override
      public Configuration getConf() {
        if(conf==null){
          this.conf=new Configuration();
        }
        
        return conf;
      }
    
      @Override
      public void setConf(Configuration arg0) {
        this.conf=arg0;
      }
    
    }

    Add the following properties to the hive-site.xml file, then restart Hiveserver2:

    <property>
      <name>hive.server2.authentication</name>
      <value>CUSTOM</value>
    </property>
    
    <property>
      <name>hive.server2.custom.authentication.class</name>
      <value>org.apache.hadoop.hive.contrib.auth.XXXXPasswdAuthenticator</value>
    </property>

    User name and password would be set in hive-site.xml

    <property>
        <name>hive.jdbc_passwd.auth.hive_user1</name>
        <value>b531c271de4552ca2dec510d318c87f9</value>
        <description/>
    </property>
    <property>
        <name>hive.jdbc_passwd.auth.hive_user2</name>
        <value>b531c271de4552ca2dec510d318c87f9</value>
        <description/>
    </property>
  • 相关阅读:
    Qt 4套件的组成适用于Qt 4.5以后的版本
    GTK+, Qt, wxWidgets compare
    为什么选择Qt
    [转]零基础学Qt 4编程实例之四:理解并正确使用名字空间
    [转]Qt 4常见的IDE及其优缺点比较推荐Qt Creator和Eclipse
    *nix系统下验证Qt 4安装正确与否的方法和步骤
    Debian install matlab2010—also ok for ubuntu series!
    我推荐的Qt资源网站、论坛、博客等来自《零基础学Qt 4编程》一书的附录
    ubuntu debian fedora Mac install pgplot steps!!
    64位WIN7 配置IIS遇到问题
  • 原文地址:https://www.cnblogs.com/silva/p/4584532.html
Copyright © 2011-2022 走看看