JDK8 安装 Java Cryptography Extension(JCE)

本文指导如何在CentOS 7.6环境中解决Hadoop NameNode和DataNode连接问题,重点在于安装Java Cryptography Extension (JCE)以启用AES-256加密,解决因JDK版本不足导致的GSSInitiateFailed错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 .前言

默认情况下, CentOS和RedHat5.5或更高的版本中,对Kerberos 票证使用AES-256加密,因此必须在集群所有节点的JDK中安装Java Cryptography Extension(JCE)无限制强度加密策略文件。

如果没装的话, 会发生Hadoop中NameNode和DataNode连接不上的问题.
报错信息:


Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled



2021-03-28 17:55:47,809 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for 192.168.xx.xx:38815:null (GSS initiate failed) with true cause: (GSS initiate failed)
2021-03-28 17:55:51,526 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for 192.168.xx.xx:40625:null (GSS initiate failed) with true cause: (GSS initiate failed)
2021-03-28 17:55:52,930 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for 192.168.xx.xx:33090:null (GSS initiate failed) with true cause: (GSS initiate failed)
2021-03-28 17:55:57,173 WARN SecurityLogger.org.apache.hadoop.ipc.Server: Auth failed for 192.168.:46619:null (GSS initiate failed) with true cause: (GSS initiate failed)


注意:使用JDK 1.8.0_161或更高版本时,不需要再安装JCE Policy File。JDK 1.8.0_161默认启用无限强度加密。

二 .安装

2.1. 环境说明

组件版本
操作系统CentOS 7.6
JDK低于 JDK 1.8.0_161 [ JDK 1.8.0_16无需要安装JCE,默认启用无限强度加密 ]
Kerberoskrb5

2.2. 获取JCE

JCE8 下载地址:


官方 : http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
百度云盘: https://pan.baidu.com/s/1JufwkAkPlU3kS3dSQAhLsQ  密码: hv7c

2.3. 安装

  1. 随便找一个目录, 解压 unzip jce_policy-8.zip , 获取到UnlimitedJCEPolicyJDK8文件夹

# 解压
[root@master01 software]# unzip jce_policy-8.zip

# 查看文件
[root@master01 software]# ll UnlimitedJCEPolicyJDK8/
总用量 24
-rw-r--r-- 1 root root 5372 3月  28 19:18 local_policy.jar
-rw-r--r-- 1 root root 7921 3月  28 19:18 README.txt
-rw-r--r-- 1 root root 5373 3月  28 19:18 US_export_policy.jar
[root@master01 software]#


  1. 备份 ${JAVA_HOME}/jre/lib/security目录.
cd ${JAVA_HOME}
cp -r ${JAVA_HOME}/jre/lib/security  ${JAVA_HOME}/jre/lib/security_bak
  1. 把UnlimitedJCEPolicyJDK8目录下的所有jar包(US_export_policy.jar和local_policy.jar)拷贝至集群所有节点的${JAVA_HOME}/jre/lib/security目录下

cp UnlimitedJCEPolicyJDK8/*.jar ${JAVA_HOME}/jre/lib/security


2.3. 验证

安装完成, 重启相关服务即可(比如kerberos/hadoop相关服务).

  • 重启KDC服务

# 启用krb5kdc
systemctl enable krb5kdc 

# 重启
systemctl restart krb5kdc 

# 启动
systemctl start krb5kdc 

# 停止
systemctl stop krb5kdc 

#查看状态
systemctl status krb5kdc

#设置为开机启动
systemctl enable krb5kdc.service



  • 重启kerberos服务


# 启用kadmin
systemctl enable kadmin 

# 重启
systemctl restart kadmin 

# 启动
systemctl start kadmin 

# 停止
systemctl stop kadmin 

#查看状态
systemctl status kadmin


#设置为开机启动
systemctl enable kadmin.service

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值