javax.security.auth.login.LoginException: Checksum failed
  之前碰到过类似的问题,都是因为服务器端的keytab问题;多半是因为重新生成了keytab后,客户端需要重新声场keytab;但是这次不是,即使我重新生成了客户端的keytab仍然无法好用。
  难道这个异常不是因为客户端的秘钥和服务器端秘钥不相符造成的吗?
  确实是,但是这次比之前的情况要负责的多。所有的这一切都是因为在客户端使用了一个指令:ktadd,无论是在kadmin的shell下还是在kutil的工具中使用,ktadd我之前的理解是把秘钥导出来而已;但是其实不是,他其实是重新生成了秘钥(和之前是否一致不确定),生成的keytab中至少version是不一致(想到这一点是因为sha1sum指令下两次生成的keytab的散列值是不一样的)。这个生成会影响到KDC的结果;因为client和server都是依赖于keytab文件,所以这个时候就出现了客户端和服务器端文件不一致;
  我之前碰到这种情况通常都是将通过cloudera manager来重新生成秘钥,推测应该也是使用ktadd来重新生成秘钥;这继续导致了问题:client的keytab过期了;于是客户端再次向服务器端发出请求,服务器端发现有问题,告知checksum error;这就进入了一种恶性循环。客户端再次重新生成keytab,服务器端自身验证又失败。
   直到我认识到了看到的checksum failed 并不是client的验证失败,而是服务器自己定时周期验证失败之后,问题的症结才找到:ktadd将会导致秘钥文件发生变化;而作为keytab模式的常见的解决方案就是在某一端生成了秘钥文件之后,拷贝到各个集群中;一定要保证keytab文件的一致性。
   如此,问题解决。
 
详细说明如下:
  之前我一直以为是因为我提交了beeline -u "jdbc:hive2://10.1.108.65:10000/default;principal=hive/slave1@BD.COM;auth=kerberos"才导致的后台checksum;但是其实不是,本质原因是因为ktadd其实是一个重新生成keytab过程,而且是修改了KDC的密码的过程;
  import kerber可以指定修改的密码;但是注意修改之后,需要在“gengerate missing keytab”中生成一次;貌似修改会导致keytab的丢失。
  开启了kerberos之后,再来安装impala就需要手动在KDC中添加impala用户,然后再cloudera中“generate missing credentials”

  研究Kerberos的hive链接字符串问题;终于研究明白了;原来之前的ktadd并不是导出keytab,而是改变了认证了信息;每次ktadd都会导致这个用户的验证信息(加密信息)发生变化;所以我在客户端调用ktadd,导致hive服务端验证失败,除非它在重新生成才能够正常运行;但是它已重新生成,本质也是ktadd一下,这样client的keytab也就过期了;于是就形成了一个死循环。昨晚解决的方式就是手动的设置一下hive/slave1@BD.COM的密码,然后在cloudera中重新import一下主体信息(也是输入密码方式);然后重启hive服务,搞定了。
  后续还要研究一下到底怎么来玩;其实还是应该生成的keytab在这个集群中复制一份;比如我在65的cloudera中生成了keytab(启动kerberos的时候,其实都会为各个主体创建keytab文件,只要在cm的目录下面搜索*.keytab即可,然后把这份keytab拷贝到各个集群下属的服务器,之后采用kinit -kt进行登录即可。
Keytab里面装了不少东西,版本号,实体名称,实体key(long-term key,根据密码计算出来的);根据实测,每次ktadd出来的东西都不一样,后来想想也是,至少版本号是不一致的。

 
Peer indicated failure: Unsupported mechanism type GSSAPI
这是因为hive所在集群已经关闭了kerberos,但是连接字符串还是采用kerberos方式就会爆此错误;
与之对应的是“Unsupported mechanism type PLAIN”,代表服务器已经开启了kerberos,但是链接字符串还是采用普通连接方式,所以报错。
 

Kerberos的hive链接问题的更多相关文章

  1. presto集成kerberos以及访问集成了kerberos的hive集群

    1.创建主体 注: 192.168.0.230 为单节点集群 192.168.4.50为kdc服务器 192.168.0.9为客户端 1.1.Kdc服务器创建主体 # kadmin.local -q ...

  2. Spark SQL Thrift Server 配置 Kerberos身份认证和权限管理

    转载请注明出处:http://www.cnblogs.com/xiaodf/ 之前的博客介绍了通过Kerberos + Sentry的方式实现了hive server2的身份认证和权限管理功能,本文主 ...

  3. Hive架构及搭建方式

    目录 前言 hive的基础知识 基本架构 metastore 内嵌服务和数据库 内嵌服务 服务和数据库单独部署 hcatalog 客户端 客户端的本地模式 beeline beeline的自动模式 j ...

  4. Spark+Hadoop+Hive集群上数据操作记录

    [rc@vq18ptkh01 ~]$ hadoop fs -ls / drwxr-xr-x+ - jc_rc supergroup 0 2016-11-03 11:46 /dt [rc@vq18ptk ...

  5. hive 常见面试题

    (笔者自己做记录) 1.Hive内外部表的区别删除表是否影响外部数据2.Hive如何做到权限管理hive下可以修改配置后创建用户管理,但是仅仅是为了防止误操而已,如果要真的为了安全操作建议使用 Ker ...

  6. Hive错误记录

    创建表报错 Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apach ...

  7. Superset配置hive数据源

    1.在uri中配置 hive://localhost:10000/default 2.查询 3.如果你的hive集群是带有kerberos认证的,hive数据源需要这样配置 hive://xxx:xx ...

  8. kafka+hbase+hive实现实时接入数据至hive

    整体架构: 项目目标,实现配置mysql,便可以自动化入湖至Hive,入湖至Hive方便后期数据分析. 首先在Mysql中配置好kafka的topic.Server以及入户表等信息,java程序初始化 ...

  9. [BD] Hive

    简介 基于HDFS的数据仓库工具 基于HDFS上的数据分析引擎 2.x 前:SQL -----> Hive  ----> MapReduce 2.x 后:推荐执行引擎为 Spark 支持S ...

随机推荐

  1. spring data jpa是什么?

    JPA是一个Java编程语言接口规范,Hibernate ORM是JPA规范的一个实现.   Spring Data JPA能干什么 在开始之前,先举个简单的例子. 一张表user有三个字段,id.n ...

  2. Qt浅谈之二十六图片滑动效果

    一.简介 博客中发现有作者写的仿360的代码,觉得其中图片滑动的效果很有意思,特提取其中的代码.并加上类似mac的画面移动的动画效果. 二.详解 1.代码一:界面滑动(QWidget) (1)slid ...

  3. 结合canvas做雨滴特效

    雨滴特效 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  4. Oracle常用知识小总结

    永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! Oracle常用知识小总结 1. 创建自增主键 对于习惯了SQL SERVER的图形化界面操作的SQLer,很长一段时间不用oracle ...

  5. Windows命令行乱码问题解决

    命令 chcp功能: 显示或设置活动代码页编号 CHCP [nnn] nnn 指定代码页编号. 不加参数键入 CHCP 显示活动代码页编号. nnn指定一已有的系统字符集,该字符集在CONFIG.SY ...

  6. Luogu-4248 [AHOI2013]差异

    \(\sum_{i<j}len(i)+len(j)\)比较简单,稍微想想就出来了,问题在于怎么求任意两个后缀的\(lcp\)长度之和 因为求\(lcp\)实际上就是一个对\(h\)数组求区间最小 ...

  7. 【bzoj4401】块的计数(水dfs)

    题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4401 假设把树划分为x个节点作一块,那么显然只有当x|n的时候才可能存在划分方案,并且这 ...

  8. https阿里云证书购买与apache环境配置

    1.在阿里云云盾安全->CA证书购买 2.下载证书解压文件,一般有四个文件 3.在/etc/apache2  下创建一个文件夹cert 放入以上四个文件(路径可自己任意选择) 4.$sudo a ...

  9. 代码题 — 剑指offer题目、新增题目

     1.剪绳子 给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]*k[1]*...*k[m] ...

  10. 机器学习(四)—逻辑回归LR

    逻辑回归常见问题:https://www.cnblogs.com/ModifyRong/p/7739955.html 推导在笔记上,现在摘取部分要点如下: (0) LR回归是在线性回归模型的基础上,使 ...