jdbc连接hive简单代码(带kerberos认证)像吃饭一样简单

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.thrift.TException;

import java.sql.*;

public class Test {

    public static void main(String[] args) throws Exception {
        // 解决windows中执行可能出现读不到krb5配置文件的问题
//        System.setProperty("java.security.krb5.conf", "krb5.conf");
        // 解决Linux中执行可能出现读不到krb5配置文件的问题
        System.setProperty("java.security.krb5.conf", "/etc/krb5.conf");
        //详细报错信息
        System.setProperty("sun.security.krb5.debug", "true");
        // 解决windows中执行可能出现找不到HADOOP_HOME或hadoop.home.dir问题
//        System.setProperty("hadoop.home.dir", "C:\\Program Files\\winutils-master\\hadoop-2.8.3");
        // Kerberos认证
        Configuration configuration = new Configuration();
        configuration.set("hadoop.security.authentication", "Kerberos");
        c
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Hive2.1.1中启用Kerberos认证,需要进行以下步骤: 1. 配置Kerberos客户端 - 安装Kerberos客户端并配置krb5.conf文件。 - 为Hive服务和Metastore服务创建Kerberos principal(principal是Kerberos中的用户或服务)。 2. 配置Hadoop - 在core-site.xml中添加以下属性: ``` <property> <name>hadoop.security.authentication</name> <value>kerberos</value> </property> ``` - 在hdfs-site.xml中添加以下属性(如果HDFS启用了Kerberos认证): ``` <property> <name>dfs.namenode.kerberos.principal</name> <value>hdfs/_HOST@EXAMPLE.COM</value> </property> <property> <name>dfs.datanode.kerberos.principal</name> <value>hdfs/_HOST@EXAMPLE.COM</value> </property> ``` - 在yarn-site.xml中添加以下属性(如果YARN启用了Kerberos认证): ``` <property> <name>yarn.resourcemanager.principal</name> <value>yarn/_HOST@EXAMPLE.COM</value> </property> <property> <name>yarn.nodemanager.principal</name> <value>yarn/_HOST@EXAMPLE.COM</value> </property> ``` 3. 配置Hive Metastore - 在hive-site.xml中添加以下属性: ``` <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hivepassword</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>hive.metastore.sasl.enabled</name> <value>true</value> </property> <property> <name>hive.metastore.kerberos.keytab.file</name> <value>/path/to/metastore.keytab</value> </property> <property> <name>hive.metastore.kerberos.principal</name> <value>metastore/_HOST@EXAMPLE.COM</value> </property> ``` 其中,hive.metastore.kerberos.keytab.file和hive.metastore.kerberos.principal分别指定Metastore服务的Kerberos keytab文件和principal。 4. 配置HiveServer2 - 在hive-site.xml中添加以下属性: ``` <property> <name>hive.server2.authentication</name> <value>kerberos</value> </property> <property> <name>hive.server2.authentication.kerberos.keytab</name> <value>/path/to/hive.keytab</value> </property> <property> <name>hive.server2.authentication.kerberos.principal</name> <value>hive/_HOST@EXAMPLE.COM</value> </property> ``` 其中,hive.server2.authentication.kerberos.keytab和hive.server2.authentication.kerberos.principal分别指定HiveServer2服务的Kerberos keytab文件和principal。 完成以上步骤后,启动Hive Metastore和HiveServer2服务,并使用Kerberos principal登录。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值