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

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

 #!/bin/bash

 #
echo "ready to install and config kerberos" # 使用root权限运行
cd /root
chmod 755 /etc
chmod 755 /etc/hadoop # 安装kerberos组件
yum install -y krb5-server
yum install -y openldap-clients
yum -y install krb5-workstation # 在配置文件中更新域名和主机名 # 设置域名
sed -i.orig 's/EXAMPLE.COM/CLOUDERA/g' /etc/krb5.conf
# 设置kerberos server主机名
sed -i.m1 's/kerberos.example.com/quickstart.cloudera/g' /etc/krb5.conf
# 设置域名为cloudera
sed -i.m2 's/example.com/cloudera/g' /etc/krb5.conf # 从Oracle官网下载JDK到root目录 mkdir jce
cd jce
unzip ../UnlimitedJCEPolicyJDK7.zip
# 保存原始jar文件做备份
cp /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/local_policy.jar local_policy.jar.orig
cp /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/US_export_policy.jar US_export_policy.jar.orig # 将新的jar包拷贝进来
cp /root/jce/UnlimitedJCEPolicy/local_policy.jar /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/local_policy.jar
cp /root/jce/UnlimitedJCEPolicy/US_export_policy.jar /usr/java/jdk1.7.0_67-cloudera/jre/lib/security/US_export_policy.jar # 创建kerberos数据库
echo suggested password is cloudera kdb5_util create -s # 更新kdc.conf
sed -i.orig 's/EXAMPLE.COM/CLOUDERA/g' /var/kerberos/krb5kdc/kdc.conf
# 票据文件中增加一行
sed -i.m1 '/dict_file/a max_life = 1d' /var/kerberos/krb5kdc/kdc.conf
# 增加可创建的最大文件数
sed -i.m2 '/dict_file/a max_renewable_life = 7d' /var/kerberos/krb5kdc/kdc.conf
# 将新增加的两行缩进
sed -i.m3 's/^max_/ max_/' /var/kerberos/krb5kdc/kdc.conf # acl文件需要admin权限
sed -i 's/EXAMPLE.COM/CLOUDERA/' /var/kerberos/krb5kdc/kadm5.acl # 修改kdc.conf文件
sed -i.m3 '/supported_enctypes/a default_principal_flags = +renewable, +forwardable' /var/kerberos/krb5kdc/kdc.conf
# 设置缩进
sed -i.m4 's/^default_principal_flags/ default_principal_flags/' /var/kerberos/krb5kdc/kdc.conf # 启动krb5kdc和kadmin服务
service krb5kdc start
service kadmin start kadmin.local <# cloudera-scm/admin@YOUR-LOCAL-REALM.COM # 在集群中添加admin用户
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 /kongc
hadoop fs -rmdir /kongc

  使Kerberos·token无效

kdestroy

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

Apache Hadoop配置Kerberos指南的更多相关文章

  1. Apache https 配置指南

    Windows Apache HTTPS配置创建下面3个目录: C:\Program Files\Apache Group\Apache2\conf\sslC:\Program Files\Apach ...

  2. Apache hadoop安装配置

    1.网络中继更改问题 命令:   vi /etc/sysconfig/network-scripts/ifcfg-eth0 需要修改的代码 DEVICE=eth0 HWADDR=00:0C:29:11 ...

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

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

  4. hadoop的kerberos认证

    言归正传,介绍过hadoop的simple认证和kerberos后,我们在这一章介绍hadoop的kerberos认证 我们还使用hadoop集群的机器. OS 版本: Centos6.4 Kerbe ...

  5. YARN & HDFS2 安装和配置Kerberos

    今天尝试在Hadoop 2.x开发集群上配置Kerberos,遇到一些问题,记录一下 设置hadoop security core-site.xml <property> <name ...

  6. 安装部署Apache Hadoop (本地模式和伪分布式)

    本节内容: Hadoop版本 安装部署Hadoop 一.Hadoop版本 1. Hadoop版本种类 目前Hadoop发行版非常多,有华为发行版.Intel发行版.Cloudera发行版(CDH)等, ...

  7. 【Hadoop & Ecilpse】Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=bruce, access=WRITE, inode="/out2/_temporary/0":atguigu:supergroup:drwxr-xr-x

    问题再现: 使用本机 Ecilpse  (Windows环境) 去访问远程 hadoop 集群出现以下异常: 问题原因: 因为远程提交的情况下如果没有 hadoop 的系统环境变量,就会读取当前主机的 ...

  8. hadoop HA+kerberos HA集群搭建

    IP.主机名规划 hadoop集群规划: hostname IP hadoop 备注 hadoop1 110.185.225.158 NameNode,ResourceManager,DFSZKFai ...

  9. hadoop生态搭建(3节点)-04.hadoop配置

    如果之前没有安装jdk和zookeeper,安装了的请直接跳过 # https://www.oracle.com/technetwork/java/javase/downloads/java-arch ...

随机推荐

  1. js实现深拷贝和浅拷贝

    浅拷贝: 思路----------把父对象的属性,全部拷贝给子对象,实现继承. 问题---------如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,不会开辟新栈,不是 ...

  2. python动态类型

    在python中,省去了变量声明的过程,在引用变量时,往往一个简单的赋值语句就同时完成了,声明变量类型,变量定义和关联的过程,那么python的变量到底是怎样完成定义的呢? 动态类型 python使用 ...

  3. Oracle_insert_delete_update

    Oracle_insert_delete_update --复制表格的结构 create table temp as (select * from emp where 1=2); select * f ...

  4. thinkphp使用PHPMailer发送邮件

    第一步:准备PHPMailer 使用PHPMailer发送邮件,首先下载个PHPMailer 将下载的PHPMailer放到ThinkPHP文件夹里面的ThinkPHPExtendVendor 第二步 ...

  5. Linux apache的运行用户和用户组

    我们在安装apache后,有时在上传文件的时候,提示没有权限或者是不可写,我们都会去查文件夹的权限. 通过ls -l /var/www/html/website可以很直观的看出我们文件和文件夹的权限, ...

  6. Uva 1599 Ideal Path - 双向BFS

    题目连接和描述以后再补 这题思路很简单但还真没少折腾,前后修改提交了七八次才AC...(也说明自己有多菜了).. 注意问题: 1.看清楚原题的输入输出要求,刚了书上的中文题目直接开撸,以为输入输出都是 ...

  7. [SinGuLaRiTy] 复习模板-图论

    [SinGuLaRiTy-1041] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 计算树的直径 //方法:任选一个点作为起点进行一次BFS ...

  8. 【绘图技巧】ps快捷键的用法

    Ctrl+N:新建画布          Ctrl+O:打开对话框 F: 在三种画布中切换 Z:缩放工具(临时)      Ctrl+0:满画面显示 空格:切换到手(临时) Ctrl+":网 ...

  9. JAVA异步加回调的例子

    package com.sunchao.callback; /** * callback interface * @author Administrator * */ public interface ...

  10. Javascript学习--时间

    digit = [ [ [0,0,1,1,1,0,0], [0,1,1,0,1,1,0], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1, ...