博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache Hadoop配置Kerberos指南
阅读量:5445 次
发布时间:2019-06-15

本文共 3026 字,大约阅读时间需要 10 分钟。

  通常,一个Hadoop集群的安全使用kerberos来进行保障。在启用Kerberos后,需要用户进行身份验证。用户通过验证后可以使用GRANT/REVOKE语句来进行基于角色的访问控制。本文介绍一下在CDH集群中如何配置kerberos。

1.KDC安装和配置脚本

  脚本install_kerberos.sh可以完成kerberos服务器所有安装配置和相应的参数配置

1 #!/bin/bash 2  3 #  4 echo "ready to install and config kerberos" 5  6 # 使用root权限运行 7 cd /root 8 chmod 755 /etc 9 chmod 755 /etc/hadoop10 11 # 安装kerberos组件12 yum install -y krb5-server13 yum install  -y openldap-clients14 yum -y install krb5-workstation15 16 # 在配置文件中更新域名和主机名17 18 # 设置域名19 sed -i.orig 's/EXAMPLE.COM/CLOUDERA/g' /etc/krb5.conf20 # 设置kerberos server主机名21 sed -i.m1 's/kerberos.example.com/quickstart.cloudera/g' /etc/krb5.conf22 # 设置域名为cloudera23 sed -i.m2 's/example.com/cloudera/g' /etc/krb5.conf24 25 # 从Oracle官网下载JDK到root目录26 27 mkdir jce28 cd jce29 unzip ../UnlimitedJCEPolicyJDK7.zip30 # 保存原始jar文件做备份31 cp /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/local_policy.jar local_policy.jar.orig32 cp /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/US_export_policy.jar US_export_policy.jar.orig33 34 # 将新的jar包拷贝进来35 cp /root/jce/UnlimitedJCEPolicy/local_policy.jar /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/local_policy.jar36 cp /root/jce/UnlimitedJCEPolicy/US_export_policy.jar /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/US_export_policy.jar37 38 # 创建kerberos数据库39 echo suggested password is cloudera 40 41 kdb5_util create -s42 43 # 更新kdc.conf44 sed -i.orig 's/EXAMPLE.COM/CLOUDERA/g' /var/kerberos/krb5kdc/kdc.conf45 # 票据文件中增加一行46 sed -i.m1 '/dict_file/a max_life = 1d' /var/kerberos/krb5kdc/kdc.conf47 # 增加可创建的最大文件数48 sed -i.m2 '/dict_file/a max_renewable_life = 7d' /var/kerberos/krb5kdc/kdc.conf49 # 将新增加的两行缩进50 sed -i.m3 's/^max_/  max_/' /var/kerberos/krb5kdc/kdc.conf51 52 # acl文件需要admin权限53 sed -i 's/EXAMPLE.COM/CLOUDERA/' /var/kerberos/krb5kdc/kadm5.acl54 55 # 修改kdc.conf文件56 sed -i.m3 '/supported_enctypes/a default_principal_flags = +renewable, +forwardable' /var/kerberos/krb5kdc/kdc.conf57 # 设置缩进58 sed -i.m4 's/^default_principal_flags/  default_principal_flags/' /var/kerberos/krb5kdc/kdc.conf59 60 61 # 启动krb5kdc和kadmin服务62 service krb5kdc start63 service kadmin start64 65 kadmin.local <# cloudera-scm/admin@YOUR-LOCAL-REALM.COM66 67 # 在集群中添加admin用户68 kadmin.local <

2.Cloudera Manager Kerberos配置

  在运行脚本之后,我们现在拥有一个正在运行的Kerberos服务器,可以使用它来保护Hadoop集群。ClouderaManager封装了大部分工作,我们只需要配置一些参数值。

  通过浏览器访问http://<your.cm.manager>:7180登录到Cloudera Manager。

  

  直接进入管理> 安全>Kerberos,如下图所示

  

  点击“启用Kerberos”按钮

  列表中这四个选项全部已经由运行的脚本完成。然后选择“继续”。

  

  Kerberos向导需要知道脚本的配置项的值。需要我们填写以下选项:

  •  KDC服务器主机: <your_kdc_server>
  •  Kerberos安全领域: <your_safe_realm>
  •  Kerberos加密类型: aes256-cts-hmac-sha1-96

  点击“继续”。

  

  勾选通过Cloudera Manager管理krb5.conf。点击继续

  

  输入创建的用户名和密码。点击继续,之后提示成功可需要重启集群。重启后我们就构建了一个使用kerberos进行安全保护的hadoop集群。

3.启动kerberos后集群使用方式

  未开启kerberos时,hdfs用户是hdfs的超级用户,用户可以通过su hdfs来获取对hdfs操作的权限,启用kerberos后使用方式如下:

kinit hdfs@HADOOP

  使用hdfs命令进行验证

hadoop fs -mkdir /kongchadoop fs -rmdir /kongc

  使Kerberos·token无效

kdestroy

  现在已经成功构建了一个正在运行的Kerberos集群!

 

转载于:https://www.cnblogs.com/kongcong/p/8443639.html

你可能感兴趣的文章
Shell 传递参数
查看>>
Ibatis 泛型化dao模版
查看>>
hrbust 1133 (kruskal)
查看>>
vue 接口统一管理
查看>>
margin 相关 bug 系列
查看>>
模拟+贪心 SCU 4445 Right turn
查看>>
2012 Multi-University #7
查看>>
第五章 循环结构反思
查看>>
WebConfig配置文件有哪些不为人知的秘密?
查看>>
自动控制原理的三不管地带之——开闭环函数特征方程原理
查看>>
HDU 2001 计算亮点间的距离
查看>>
spring学习笔记--quartz和定时任务执行
查看>>
ASP.NET页面刷新样式改变解决方法
查看>>
Redis- 简单操作命令
查看>>
洛谷 P2827 蚯蚓 解题报告
查看>>
考核题 6
查看>>
hadoop Datanode多目录配置
查看>>
一段获取windows环境变量的代码
查看>>
test
查看>>
assert()函数用法总结
查看>>