温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github: https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1
问题重现
- 测试环境
1.CDH5.16.1
2.Redhat7.4
3.集群已启用Kerberos
1.通过CM页面进入“主机”->“所有主机”。
2.在右侧菜单栏勾选“群集”,默认是不勾选的。
3.勾选cdsw.fayson.com,然后点击“从群集中删除”,这时CM会解除授权这台节点,如果这台是DataNode,因为要复制数据,可能需要较长的时间,但Fayson为了更快的重现异常,该节点只有Gateway角色。
点击“确认”
可以从上图确认cdsw.fayson.com机器已经从Cluster1中删除。
4.这里假设我们突然又想把cdsw.fayson.com机器加入到Cluster1中,因为这台机的Agent并没有卸载,依旧受CM管理,按照常理我们一般应用一个角色模板即可,这里勾选cdsw.fayson.com,然后点击“应用主机模板”,发现报错。
2
问题解决
1.通过CM页面进入“主机”->“所有主机”,然后点击“Add Hosts”,点击“经典向导”。
输入cdsw.fayson.com,点击搜索
显示该节点已经受管,没办法“继续”。
2.选择“HDFS”服务,点击“实例”
点击“添加角色实例”
在Gateway里尝试选择cdsw.fayson.com
并未发现cdsw.fayson.com机器,无法添加为cdsw.fayson.com机器添加角色。
3.登录Cloudera Manager的元数据库。
代码语言:javascript复制[root@ip-172-31-6-83 ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> use cm;
MariaDB [cm]> show tables;
MariaDB [cm]> select HOST_ID,NAME,IP_ADDRESS,STATUS,CLUSTER_ID from HOSTS;
发现cdsw.fayson.com机器的字段“CLUSTER_ID”为NULL,不属于任何集群。
4.更新cdsw.fayson.com机器的字段“CLUSTER_ID”,更新为与其他机器相同。
代码语言:javascript复制MariaDB [cm]> update HOSTS set CLUSTER_ID='1' where HOST_ID=9;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [cm]> select HOST_ID,NAME,IP_ADDRESS,STATUS,CLUSTER_ID from HOSTS;
--------- -------------------------------------------------- --------------- -------- ------------
| HOST_ID | NAME | IP_ADDRESS | STATUS | CLUSTER_ID |
--------- -------------------------------------------------- --------------- -------- ------------
| 1 | ip-172-31-6-83.ap-southeast-1.compute.internal | 172.31.6.83 | NA | 1 |
| 2 | ip-172-31-9-113.ap-southeast-1.compute.internal | 172.31.9.113 | NA | 1 |
| 4 | ip-172-31-4-105.ap-southeast-1.compute.internal | 172.31.4.105 | NA | 1 |
| 8 | ip-172-31-12-142.ap-southeast-1.compute.internal | 172.31.12.142 | NA | 1 |
| 9 | cdsw.fayson.com | 172.31.13.133 | NA | 1 |
--------- -------------------------------------------------- --------------- -------- ------------
5 rows in set (0.00 sec)
MariaDB [cm]>
5.回到Cloudera Manager,点击“主机”-“Parcel”,会发现CM开始将Parcel复制,分发并激活到cdsw.fayson.com机器,虽然cdsw.fayson.com机器上有CDH的Parcel。也可能不用。
6.点击“主机”-“所有主机”,通过CM界面也可以发现cdsw.fayson.com机器已经属于“Cluster1”。
7.再次选择cdsw.fayson.com机器,然后点击“应用主机模板”,发现已经给可以选择。
发现已经应用成功。
3
总结
1.当从CM解除授权一台机器,如果后悔了想直接加回到集群,如果直接应用主机模板会失败。
2.另外通过“Add Hosts”即扩容按钮,想将这台机器加入集群也会失败,因为显示这台机器已经受CM管理,无法点击“继续”按钮。
3.通过选择某一个服务比如HDFS,在“实例”页面想要为某一个角色比如HDFS Gateway增加这一台机器,发现在弹出来的对话框中并没有这台解除授权的机器。
4.目前可行的办法是修改数据库的HOSTS表,更新该主机的CLUSTER_ID字段,使其属于旧的集群,这样再次在“所有主机页面”勾选它,就可以直接应用主机模板了。
5.当然你还可以完全卸载这台机器后再使用扩容的方式加入到该集群中。完全卸载就包括remove掉Cloudera相关的rpm包,另外还要删除所有CDH相关的文件夹,参考《如何卸载CDH(附一键卸载github源码)》。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。