分享

Kerberos CDH集群不同OS版本配置HDFS的Gateway节点

本帖最后由 levycui 于 2018-11-13 22:40 编辑
问题导读:
1、如何进行时钟同步?
2、如何安装Kerberos客户端?
3、Kerberos如何进行客户端功能验证?
4、如何处理RedHat6.6 客户端异常问题?

关注最新经典文章,欢迎关注公众号


一、文章编写目的

在前面的文章Fayson介绍了《如何在CDH集群外配置非Kerberos环境的Gateway节点》和《如何在CDH集群外配置Kerberos环境的Gateway节点》,本文档在这两篇文档本篇文章基础介绍如何在Kerberos环境的CDH集群外跨OS版本中在指定目录配置HDFS的Gateway节点。

  •     内容概述
1.部署环境说明
2.部署Gateway节点及测试
3.总结

  •     测试环境
1.CM和CDH版本为5.12.1
2.操作系统为RedHat7.2和RedHat6.6
3.操作用户root

  •     前置条件
1.Gateway节点与集群网络正常
2.集群已启用Kerberos

二、环境说明
2018-11-13_212846.png
vm1.macro.com和rhel66001.localdomain两个节点并未在CM管理的集群内
2018-11-13_212921.png

三、部署HDFS Gateway
1.时钟同步配置,(vm1.macro.com和rhel66001.localdomain)节点保持跟集群时钟不同,两个Gateway节点操作一致

[mw_shl_code=shell,true]yum -y install ntp
vim /etc/ntp.conf[/mw_shl_code]
2018-11-13_213013.png

验证NTP服务是否已同步
2018-11-13_213046.png

2.将集群的hosts文件同步至要装Gateway节点(vm1.macro.com和rhel66001.localdomain)
[mw_shl_code=shell,true][root@cdh4 ~]# scp -rp /etc/hosts 192.168.0.230:/etc/
[root@cdh4 ~]# scp -rp /etc/hosts 192.168.0.187:/etc/[/mw_shl_code]
2018-11-13_213126.png

3.集群启用了Kerberos,所以需要在(vm1.macro.com和rhel66001.localdomain)节点安装Kerberos客户端,执行如下命令,两个Gateway节点操作一致
[mw_shl_code=shell,true][root@vm1 ~]# yum -y install krb5-libs krb5-workstation[/mw_shl_code]
2018-11-13_213206.png

4.创建指定的文件目录,并将集群KDC服务器上的/etc/krb5.conf文件拷贝至(vm1.macro.com和rhel66001.localdomain)节点的指定的目录下查看,两个Gateway节点操作一致
2018-11-13_213236.png

5.登录集群任意节点,将集群的Java目录拷贝至(vm1.macro.com和rhel66001.localdomain)节点的指定的目录下(/usr/java/jvm/),两个Gateway节点操作一致
[mw_shl_code=shell,true]scp -r /usr/java/jdk1.8.0_111/ 192.168.0.230:/usr/java/jvm/[/mw_shl_code]
2018-11-13_213318.png

6.登录CDH集群的任意节点,将/opt/cloudera/parcels目录压缩并拷贝至(vm1.macro.com和rhel66001.localdomain)节点的指定目录,两个Gateway节点操作一致

[mw_shl_code=shell,true]tar -czvf cdh.tar.gz CDH-5.12.1-1.cdh5.12.1.p0.3/ CDH/
scp -rp cdh.tar.gz 192.168.0.230:/etc/cdhgateway/cdh_hadoop/cloudera/parcels[/mw_shl_code]
2018-11-13_213356.png

7.登录(vm1.macro.com和rhel66001.localdomain)节点的服务器上,到/etc/cdhgateway/cdh_hadoop/cloudera/parcels目录将cdh.tar.gz解压,两个Gateway节点操作一致
[mw_shl_code=shell,true]tar -zxvf cdh.tar.gz -C /etc/cdhgateway/cdh_hadoop/cloudera/parcels[/mw_shl_code]
2018-11-13_213435.png

8.拷贝HDFS到(vm1.macro.com和rhel66001.localdomain)节点指定目录/etc/cdhgateway/cdh_hadoop/下,两个Gateway节点操作一致
[mw_shl_code=shell,true]scp -rp /etc/hadoop 192.168.0.230:/etc/cdhgateway/cdh_hadoop/[/mw_shl_code]
2018-11-13_215210.png

9.(vm1.macro.com和rhel66001.localdomain)节点,修改hadoop 客户端配置路径,将默认的软链(/etc/hadoop/conf)修改为指定的路径
[mw_shl_code=shell,true]rm -rf /etc/cdhgateway/cdh_hadoop/cloudera/parcels/CDH/lib/hadoop/
ln -s /etc/cdhgateway/cdh_hadoop/hadoop/conf hadoop[/mw_shl_code]
2018-11-13_215245.png

10.(vm1.macro.com和rhel66001.localdomain)节点配置环境变量
[mw_shl_code=shell,true][root@vm1 cdh_hadoop]# vim cdh_env
export KRB5_CONFIG="/etc/cdhgateway/cdh_hadoop/krb5.conf"
export CDH_HOME="/etc/cdhgateway/cdh_hadoop/cloudera/parcels/CDH"
export HADOOP_HOME=$CDH_HOME/lib/hadoop
export HADOOP_CONF_DIR=$CDH_HOME/lib/hadoop/etc/hadoop
export JAVA_HOME="/usr/java/jvm/jdk1.8.0_111"
export PATH=$CDH_HOME/bin:$PATH
export PATH=$JAVA_HOME/bin:$PATH
[root@vm1 cdh_hadoop]# source cdh_env
[root@vm1 cdh_hadoop]# env [/mw_shl_code]
2018-11-13_215325.png

这里配置的是会话级别的环境变量,结束会话后需要重新source cde_env,如果需要永久生效,将该配置写入到/etc/profile,并source /etc/profile 即可。

四、HDFS Gateway命令验证

1.使用Kerberos账号进行kinit操作,并进行hdfs 客户端功能验证
[mw_shl_code=shell,true]kinit test
klist
hdfs dfs -ls /[/mw_shl_code]
2018-11-13_215419.png

可以看到在RedHat7.2 客户端(vm1.macro.com)节点上操作是正常,但是在RedHat6.6 客户端(rhel66001.localdomain)节点上出现如下问题。
2018-11-13_215459.png

解决办法:

在hadoop客户端的启动脚本上指定Kerberos的配置文件路径,在HADOOP_CLIENT_OPTS 添加配置-Djava.security.krb5.conf=$KRB5_CONFIG
[mw_shl_code=shell,true]export HADOOP_CLIENT_OPTS="-Djava.net.preferIPv4Stack=true -Djava.security.krb5.conf=$KRB5_CONFIG $HADOOP_CLIENT_OPTS"[/mw_shl_code]
2018-11-13_215534.png

2.然后再进行校验,发现可以正常启动
2018-11-13_215618.png

五、问题描述与解决
1.core-site.xml 文件找不到的异常
2018-11-13_215657.png

该问题是由于在CDH中hadoop的客户端配置默认是在/etc/hadoop目录下,确认软链无误,并且配置正确
2018-11-13_215729.png

2.时钟不同步异常
2018-11-13_215759.png

该异常是由于客户端节点与集群内节点时钟不同步,导致Kerberos认证不通过,同步时钟即可解决


作者:Fayson Hadoop实操
来源:Fayson Hadoop实操

本帖被以下淘专辑推荐:

已有(2)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条