如何修改Kerberos的CDH集群的HOSTNAME

2018-07-12 14:37:18 浏览数 (1)

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github:https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的


在集群安装初期由于未规范集群HOSTNAME,带来集群管理的不便,现需要将CDH集群的HOSTNAME统一规范化,在修改HOSTNAME的过程中需要注意什么?本篇文章Fayson主要介绍如何修改Kerberos环境下的CDH集群的HOSTNAME。修改集群所有主机的hostname的步骤如下:

  • 内容概述

1.环境说明及停止集群服务

2.修改集群HOSTNAME及集群服务配置

3.功能验证

  • 测试环境

1.CM和CDH版本为5.12.1

2.采用root用户操作

3.操作系统Redhat7.4

  • 前置条件

1.集群已启用Kerberos

2.环境说明


集群原始HOSTNAME说明

IP地址

HOSTNMAE

节点说明

172.31.2.37

ip-172-31-2-37.ap-southeast-1.compute.internal

CM、NN、MySQL、KDC

172.31.13.84

ip-172-31-13-84.ap-southeast-1.compute.internal

DataNode

172.31.11.224

ip-172-31-11-224.ap-southeast-1.compute.internal

DataNode

172.31.1.203

ip-172-31-1-203.ap-southeast-1.compute.internal

DataNode

需要修改为HOSTNAME列表

IP地址

HOSTNMAE

节点说明

172.31.2.37

cdh01.fayson.com

CM、NN、MySQL、KDC

172.31.13.84

cdh02.fayson.com

DataNode

172.31.11.224

cdh03.fayson.com

DataNode

172.31.1.203

cdh04.fayson.com

DataNode

3.停止集群所有服务


1.停止CDH服务

停止成功

2.停止Cloudera Management Service服务

3.停止Cloudera Manager Server服务

登录CM服务所在节点执行如下命令停止服务

代码语言:javascript复制
[root@ip-172-31-2-37 ~]# systemctl stop cloudera-scm-server

(可左右滑动)

7180端口无法访问则表示停止成功

4.停止集群所有节点的cloudera-scm-agent服务

Fayson这里使用批量脚本执行

代码语言:javascript复制
[root@ip-172-31-2-37 shell]# sh ssh_do_all.sh node.list "systemctl stop cloudera-scm-agent"

(可左右滑动)

4.修改集群HOSTNAME


1.执行如下命令修改集群的HOSTNAME,以172.31.2.37为例

代码语言:javascript复制
[root@ip-172-31-2-37 shell]# hostnamectl set-hostname cdh01.fayson.com
[root@ip-172-31-2-37 shell]# hostname

(可左右滑动)

注意:按照需求将集群所有节点的HOSTNAME修改为指定的名称

2.修改/etc/hosts文件

代码语言:javascript复制
[root@ip-172-31-2-37 shell]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.31.2.37 cdh01.fayson.com
172.31.13.84 cdh02.fayson.com
172.31.11.224 cdh03.fayson.com
172.31.1.203 cdh04.fayson.com

(可左右滑动)

3.将修改后的hosts文件同步至集群所有节点的/etc目录下

代码语言:javascript复制
[root@ip-172-31-2-37 shell]# sh bk_cp.sh node.list /etc/hosts /etc/ 

(可左右滑动)

4.检查所有节点的HOSTNAME是否配置正确

代码语言:javascript复制
[root@ip-172-31-2-37 shell]# sh ssh_do_all.sh node.list hostname

(可左右滑动)

5.修改krb5.conf配置文件


修改了KDC服务所在服务器的HOSTNAME,需要将相应的客户端配置修改/etc/krb5.conf文件,内容如下;

代码语言:javascript复制
[root@cdh01 ~]# vim /etc/krb5.conf
…
[realms]
 FAYSON.COM = {
  kdc = cdh01.fayson.com
  admin_server = cdh01.fayson.com
 }
[domain_realm]
 .fayson.com = FAYSON.COM
 fayson.com = FAYSON.COM

(可左右滑动)

将/etc/krb5.conf文件同步至集群所有节点

代码语言:javascript复制
[root@cdh01 shell]# sh bk_cp.sh node.list /etc/krb5.conf /etc/

(可左右滑动)

测试Kerberos服务是否正常

代码语言:javascript复制
[root@cdh02 ~]# kinit fayson
Password for fayson@FAYSON.COM: 
[root@cdh02 ~]# klist

(可左右滑动)

6.修改CM服务配置并启动


1.修改Cloudera Manager Server服务的数据库配置,配置文件/etc/cloudera-scm-server/db.properties

代码语言:javascript复制
[root@ip-172-31-2-37 cloudera-scm-server]# vim /etc/cloudera-scm-server/db.properties

(可左右滑动)

将com.cloudera.cmf.db.host地址修改为新的HOSTNAME。

2.修改cloudera-scm-agent服务的配置,配置文件/etc/cloudera-scm-agent/config.ini

代码语言:javascript复制
[root@ip-172-31-2-37 cloudera-scm-agent]# vim /etc/cloudera-scm-agent/config.ini

(可左右滑动)

注意:需要修改集群所有节点上的配置。

3.启动cloudera-scm-server服务

代码语言:javascript复制
[root@cdh01 ~]# systemctl start cloudera-scm-server
[root@cdh01 ~]# netstat -apn |grep 7180

(可左右滑动)

4.启动集群所有节点的cloudera-scm-agent服务

代码语言:javascript复制
[root@cdh01 shell]# sh ssh_do_all.sh node.list "systemctl start cloudera-scm-agent"

(可左右滑动)

7.修改集群服务配置


1.登录Cloudera Manager管理界面

2.修改集群所有服务的数据库配置信息

将所有服务的数据库HOSTNAME更改为修改后的HOSTNAME

保存配置。

3.修改CM中Kerberos配置信息

进入集群设置界面

将KDC和KADMIN指向的主机host更改为最新的HOSTNAME,并保存配置。

4.重新生成集群所有服务的Kerberos信息

进入主机列表界面

执行重新生成Keytab

生成成功

进入“管理”->“安全”界面查看集群所有服务的prinicipal账号信息

注意:重新生成Keytab时需要确保所有服务都是停止状态,这里旧的prinicipal信息也存在,但不影响集群服务使用,如果你有强迫症就是不想看到这些,可以在数据库中将cm库下的CREDENTIALS表数据删除,然后再重新生成。

5.启动Cloudera Management Service服务

服务启动成功

6.进入Hive服务,修改Hive元数据库配置

7.进入Sentry服务,修改Sentry元数据库配置

8.完成以上配置后,部署客户端配置

点击“部署客户端配置”

9.启动CDH集群

集群启动成功

集群各个服务状态正常

8.验证功能是否正常


1.集群的HOSTNAME已修改为最新

2.向集群提交一个MapReduce作业测试功能是否正常

代码语言:javascript复制
[root@cdh02 ~]# kinit fayson
Password for fayson@FAYSON.COM: 
[root@cdh02 ~]# hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5

(可左右滑动)

作业运行成功

3.向集群提交Spark作业

代码语言:javascript复制
[root@cdh02 ~]# klist
[root@cdh02 ~]# spark-submit --class org.apache.spark.examples.SparkPi  --master yarn-client --num-executors 4 --driver-memory 2g  --driver-cores 1 --executor-memory 2g --executor-cores 1  /opt/cloudera/parcels/CDH/lib/spark/lib/spark-examples.jar 10

(可左右滑动)

作业运行成功

4.Hue测试

执行Impala操作

9.总结


  • 修改CDH集群的HOSTNAME,需要注意修改CM节点的HOSTNAME需要将集群所有AGENT节点执行CM的HOSTNAME配置信息更新。
  • MYSQL服务所在节点的HOSTNAME修改,则需要更新集群所有用到MYSQL服务的配置信息。
  • 修改了Kerberos服务器的HOSTNAME,需要更新krb5.conf配置并同步到集群的所有节点。
  • 群集启用了Kerberos,需要在Cloudra Manager上为所有服务重新生成Keytab信息,重新生成keytab需要停止停止除cloudera-scm-server外的所有服务。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

0 人点赞