java远程连接hadoop,kerbers认证失败 报no supported default etypes for default_tkt_enctypes

@PostConstruct
    public void init() throws Exception {
        if (conn == null) {
//            System.setProperty("hadoop.home.dir", "G:/keyberos/hbase");
            System.setProperty("java.security.krb5.conf",krbConf);
            conf = HBaseConfiguration.create();
            conf.set("hbase.zookeeper.property.clientPort", zkPort);
            conf.set("hbase.zookeeper.quorum", zkHost);
            conf.set("hbase.master", master);
//            conf.addResource(hbaseSite);
            conf.set("hadoop.security.authentication", "kerberos");
            conf.set("hbase.security.authentication", "kerberos");
            conf.set("hbase.cluster.distributed", "true");
            conf.set("hbase.rpc.protection", "authentication");
            conf.set("hbase.master.kerberos.principal", principal); // this is needed even if you connect over rpc/zookeeper
            conf.set("hbase.regionserver.kerberos.principal", principal); //what principal the master/region. servers use.

            String principal = System.getProperty("kerberosPrincipal", kerberosPrincipal);
            String keytabLocation = System.getProperty("kerberosKeytab",keyberos);

            UserGroupInformation.setConfiguration(conf);
            UserGroupInformation.loginUserFromKeytab(principal, keytabLocation);

            conn = ConnectionFactory.createConnection(conf);
        }
    }

在 UserGroupInformation.loginUserFromKeytab(principal, keytabLocation) 处报错:

java.io.IOException: Login failure for [email protected] from keytab F:/hbase/hbase.keytab: javax.security.auth.login.LoginException: no supported default etypes for default_tkt_enctypes

参数分别为 [email protected],F:/hbase/hbase.keytab 。

java.security.krb5.conf设置为F:/hbase/krb5.conf :
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = XXXX.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 default_tgs_enctypes = aes256-cts-hmac-sha1-96
 default_tkt_enctypes = aes256-cts-hmac-sha1-96
 permitted_enctypes = aes256-cts-hmac-sha1-96
 clockskew = 120
 udp_preference_limit = 1

[realms]
XXXX.COM = {
  kdc = bdp01
  admin_server = bdp01
 }

[domain_realm]
 .xxxx.com = XXXX.COM
xxxx.com = XXXX.COM

处理:下载jdk8对应的JCE文件添加到jdk/jre/lib/security下

初步推测是,jdk需要相应的加密解密方式来处理hbase.keytab 文件。

参考https://blog.csdn.net/wulantian/article/details/42173095

原文地址:https://www.cnblogs.com/mryangbo/p/11898648.html

时间: 2024-10-18 01:23:50

java远程连接hadoop,kerbers认证失败 报no supported default etypes for default_tkt_enctypes的相关文章

Eclipse远程连接hadoop时 报 Permission denied:

用Eclipse远程连接hadoop时报org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=READ_EXECUTE, inode="system":hadoop:supergroup:rwx-wx-wx错误,解决方法: 在hdfs-site.xml 中取消权限校验,即加入以下配置: <property>    <name>dfs.per

Navicat 远程连接SQL Server 2014 Express 报08001错误

场景:Navicat 远程连接SQL Server 2014 Express 报08001错误,经查验防火墙端口1434,1433已经打开 过程:1. 一开始觉得是连接名称问题,使用IP地址或者主机名进行连接,然后更换为IP地址\命名实例方式,使用后者较好 2. 更换连接字符串后仍然报错08001,尝试关闭防火墙,连接成功,说明问题出现在端口上 3. 使用netstat –ano命令查看,发现此命令太鸡肋,上网查找工具,发现CurrPorts工具,甚好,发一个截图.该软件可以清晰的看到各种连接信

JAVA类项目如何开启远程DEBUG模式?TOMCAT,JETTY等容器启动也可以DEBUG,以及JAVA远程连接JMXREMOTE

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 上面这一行是用来启动远程DEBUG的,端口为8000,suspend表示容器在启动的时候是否debug,可以看到tomcat或jetty启动的内部过程  -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -D

Linux学习总结(三)之 putty,xshell远程连接及密钥认证篇

一:putty 下载 1:认准两个地方 a. Download putty b. chiark greenend 2:下载32位的zip包,这是一个工具包合集,不单是一个终端工具 二:putty设置 1.hostname: 访问服务器的ip,右边port根据实际情况而定,默认222 saved sessions :给你此次会话起个名字,可任意,下次名字自动保存在对话框,选择,load就可以选择你整个会话配置3.在windos 下lines of scrolballback 把后面数字调大比如20

Java远程连接redis, 报错 Connection refused: connect

在今天的学习Redis中报错 Connection refused: connect 我总结了有三种情况: 1.远程服务器中的Redis没有开启. 2.远程连接地址出错,或者是端口出错. 3.远程服务器的端口没有在防火墙中开放,不能访问.

windows下在eclipse上远程连接hadoop集群调试mapreduce错误记录

第一次跑mapreduce,记录遇到的几个问题,hadoop集群是CDH版本的,但我windows本地的jar包是直接用hadoop2.6.0的版本,并没有特意找CDH版本的 1.Exception in thread "main" java.lang.NullPointerException atjava.lang.ProcessBuilder.start 下载Hadoop2以上版本时,在Hadoop2的bin目录下没有winutils.exe和hadoop.dll,网上找到对应版本

解决MySQL远程连接服务器上的MySQL报1130的错问题

用Navicat for mysql连接数据库测试下连接 如果出现1130错误 错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用户权限问题. 服务端的mysql没有开启访问权限 解决办法是: 进入MySql控制台,弹出Enter password:输入您的数据库密码 mysql -u root -p 输入MySQL的密码 执行下命令 GRANT

轻松,阿里云云服务器上安装mysql5.6,解决远程连接失败问题

最近刚接触linux操作系统,买了个阿里云服务器,centos7系统,装mysql数据库网上查看了别人的博客,方法都不太一样,自己也试了几个,结果都没有成功. 后来搜索发现阿里云安装mysql跟有专门的方法,我把云服务器磁盘初始化之后,重新安装,然后试了真的安装成功了,希望这篇博文能帮助以后在阿里云上安装mysql的朋友,不用再走我走过的弯路.以下是我测试安装成功的步骤,命令也可以直接复制粘贴.我看到链接地址:https://jingyan.baidu.com/article/454316ab6

大数据调错系列之:自己总结的myeclipse连接hadoop会出现的问题

在我们学习或者工作中开始hadoop程序的时候,往往会遇到一个问题,我们写好的程序需要打成包放在集群中运行,这无形中在浪费我们的时间,因为程序可以需要不断的调试,然后把最终程序放在集群中即可.为了解决这个问题,现在我们配置远程连接hadoop,远程调试的方法. 一段程序如下:获取更多大数据视频资料请加QQ群:947967114 当我们在运行的时候会有如下众多的错误: 1.基础环境配置:首先需要注意自己使用的hadoop的版本: 这说明是2.6.0的所以需要下载一个连接包:hadoop-eclip