大数据平台-kerberos安装部署文档————————————————————————————————作者: ————————————————————————————————日期:ﻩ1.环境准备1.1.操作系统本次安装部署要求在操作系统为CentOS release 6.5(Final)的版本下进行部署,所以在安装部署kerberos之前请先确保操作系统为以上版本,并且集群中各机器已做时钟同步。
本次安装部署以csdm-hadoop-04作为主kdc服务器,以csdm-hadoop-05作为从kdc服务器,以csdm-hadoop-03作为客户端。
一般不建议在服务器上再安装其他应用程序,比如hadoop。
但为了节省资源本次安装在这三台机器均已安装hadoop相关软件。
1.2.创建操作用户创建操作系统hdfs、yarn、mapred用户,并使其归属于hadoop用户组: adduserhdfs -gHadoopadduseryarn -g Hadoopadduser mapred-gHadoop1.3.配置hosts文件为各台机器修改/etc/hosts文件,将真实ip与主机名对应配置,服务端与客户端均需配置,形如:(不能存在127.0.0.1的配置,否则hadoop进行kerberos验证时将会出错)1.4.关闭防火墙执行以下命令关闭防火墙:service iptables stop出现以下界面表示关闭成功1.5.注册服务与端口的对应在/etc/service文件最后增加以下信息,以便后续使用:ﻩkrb5_prop754/tcp # Kerberos slave propagation2.安装配置Kerberos2.1.安装rpm包➢以root用户登录并创建目录存放安装包:mkdir /var/kerberos➢上传安装包文件到创建的目录,包括krb5-libs-1.10.3-10.el6_4.6.x86_64.rpm、krb5-server-1.10.3-10.el6_4.6.x86_64.rpm(客户端可不安装)、krb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm➢执行安装命令:rpm -ivh krb5-libs-1.10.3-10.el6_4.6.x86_64.rpmrpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm【客户端可不安装】ﻫrpm -ivh krb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm➢查看上述包是否已安装成功:rpm –qa krb5*若出现以下情况则代表安装成功。
ﻩﻩ2.2.配置主KDC服务器2.2.1.设置全局环境变量需要以root身份登录系统在/etc/profile末尾增加配置文件的全局环境变量:exportKRB5_CONFIG=/etc/krb5.confexport KRB5_KDC_PRO保存后并执行source /etc/profile 使之生效。
2.2.2.配置krb5.conf执行vi编辑/etc/krb5.conf,内容如下:[libdefaults]default_realm =ERICSSON.COMdns_lookup_realm=falsedns_lookup_kdc =falseticket_lifetime = 24hrenew_lifetime =7dforwardable=true[realms]ERICSSON.COM = {kdc = csdm-hadoop-04kdc =csdm-hadoop-05admin_server =csdm-hadoop-04}[domain_realm].ericsson.com=ERICSericsson.com=ERICSS2.2.3.配置kdc.conf执行vi编辑/var/kerberos/krb5kdc/kdc.conf,内容如下:[kdcdefaults]Kdc_ports=750,88[realms]ERICSS ={kadmind_port = 749max_life=10h 0m0smax_renewable_life=7d 0h0m 0sdatabase_name= /var/kerberos/krb5kdc/principaladmin_keytab=/var/kerberos /krb5kdc/kadm5.keytabacl_ /krb5kdc/kadm5.aclkey_stash_ /krb5kdc/.k5.ERICSSO}[logging]default =kdc=admin_server=集群机器如果开启selinux,请在机器上执行restorecon -R-v /etc/krb5.conf2.2.4.生成数据库在主KDC服务器上执行以下命令创建数据库,在执行的过程中会提示输入密码和确认密码,两次输入相同的密码即可:kdb5_utilcreate -r ericsson.com–s等待片刻后在提示输入密码界面输入密码后会出现以下界面:2.2.5.创建管理用户运行管理入口命令:kadmin.local在提示符下执行以下命令addprinckadmin/addprinc kadmin/会提示输入密码,输入两次一样的密码后会提示成功创建。
ﻫ将主体添加至密钥文件中ktadd -k /var/kerberos/krb5kdc/kadm5.keytabkadmin/adminktadd -k/var/kerberos/krb5kdc/kadm5.keytabkadmin/changepw2.2.6.启动krb5kdc 和kadmind服务执行以下命令启动krb5kdc和kadmind服务:krb5kdc startkadmind出现以下界面表示启动成功2.3.配置从KDC服务器2.3.1.为从kdc服务器创建创建授权票证每一个kdc服务器都需要一个host票证,用于在迁移数据库数据市在各kdc服务器之间进行交互验证。
注意,创建host票据需要在主kdc服务器上执行而不是在从kdc服务器。
在csdm-hadoop-04上执行以下命令创建票证:kadminaddprinc –randkey host/csdm-hadoop-addprinc –randkey host/csdm-hadoop-ktaddhost/csdm-hadoop-2.3.2.设置从kdc服务器的配置文件将主kdc服务器中的配置文件(kdc.conf、krb5.conf、.k5.ERICSSON.C OM、kadm5.acl)复制到从kdc服务器上相应的目录中;在从kdc服务器的/var/Kerberos/krb5kdc的目录下创建kpropd.acl文件并增加以下信息:host/csdm-hadoop-host/csdm-hadoop-2.4.复制数据库数据到KDC从服务器➢在主服务器上创建数据库的dump文件kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans➢在从服务器上执行数据迁移kprop-f/var/Kerberos/krb5kdc/slave_datatrans csdm-hadoop-05定时将主KDC服务器上的数据库数据,更新到从KDC服务器上由于KDC不提供数据库数据的同步服务功能,因此需要使用脚本或者手工将主KDC服务器上的数据同步到从KDC服务器上,可以参考以下脚本,并配置到定时器中#!/bin/shﻩkdclist="kerberos2.exampl kerberos3.exampl"ﻩkdb5_util dump /var/kerberos/krb5kdc/slave_datatransfor kdcin $kdclistdoﻩﻩkprop -f/var/kerberos/krb5kdc/slave_datatrans$kdc2.5.启动从服务器的krb5kdc程序在从服务器上启动命令执行启动:ﻩkrb5kdc2.6.配置自启动在/etc/inittab中增加以下信息可使进程随系统自启动:/etc/init.d/krb5kdc startKadmind2.7.客户端配置下面以csdm-hadoop-03这台机器作为客户端说明相关配置1、在csdm-hadoop-03上安装客户端软件rpm-ivhkrb5-libs-1.10.3-10.el6_4.6.x86_64.rpmﻫrpm-ivhkrb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm2、在主KDC服务器csdm-hadoop-04上,把/etc/krb5.conf复制到csdm-ha doop-03本地对应目录3、在客户端csdm-hadoop-03上启动命令执行启动:krb5kdc此时即可在客户端csdm-hadoop-03上连接KDC服务器4、生成可访问csdm-hadoop-03机器应用程序的验证在主KDC服务器csdm-hadoop-04,生成csdm-hadoop-03的principals和keytab,为客户端csdm-hadoop-03添加principals(可以为host或者所要进行验证的机器用户)addprinc –randkey host/csdm-hadoop-为客户端csdm-hadoop-03生成keytabKtadd–k/var/kerberos/krb5kdc/keytab/host.keytab host/csdm-hadoop-把csdm-hadoop-04上生成的keytab复制到csdm-hadoop-03机器上3.测试服务器3.1.服务器端测试客户端连接ﻫ运行kinit admin/admin,显示提示输入密码则代表配置成功:3.2.远程客户机连接测试在客户机运行kinit admin/admin 连接服务端,显示提示输入密码则代表配置成功:4.Hadoop集成kerberos配置4.1 kerberos配置Hadoop官方网站建议的操作系统用户及权限如下,下面我们按照这三个用户的权限进行配置,要求使用下面三种用户分别具有各自启动相应进程的权限。
User:GroupDaemonshdfs:hadoop NameNode, Secondary NameNode, JournalNode, DataNodeyarn:hadoop ResourceManager, NodeManagermapred:hadoop MapReduce,JobHistory Server4.1.1为所有机器的用户生成principal从主KDC服务器csdm-hadoop-04上,把/etc/krb5.conf复制到csdm-hadoop-03本地对应目录,在主KDC服务器上为hadoop集群中每台机器的用户创建principal,下面以csdm-hadoop-03这台机器为例,运行管理入口命令:kadmin.local在提示符下执行以下命令:addprinc -randkey hdfs/csdm-hadoop-addprinc-randkey host/csdm-hadoop-addprinc -randkey yarn/csdm-hadoop-addprinc -randkey host/csdm-hadoop-addprinc -randkeymapred/csdm-hadoop-addprinc -randkey host/csdm-hadoop-注:◆集群中的每台机器所用到的用户都需执行上面的命令生成principal◆每个用户必须执行addprinc-randkey host/XX@XX的命令,这个命令生成的是基于Kerberos 的应用程序(例如klist和kprop)和服务(例如ftp和telnet)使用的主体。