文档编写目的
Hadoop集群其中一个优点就是可伸缩性(横向扩展),通过增加计算节点使服务容量产生线性增长的能力。可伸缩的应用程序的主要特点是:只需要增加资源,而不需要对应用程序本身进行大量修改。在集群资源紧张的情况下可通过动态的扩容节点来增加集群的计算能力。本篇文章主要介绍如何使用Cloudera Manager在线扩容DataNode节点。
内容概述
1) 创建DataNode模板
2) DataNode节点前置准备
3) 上线DataNode节点并应用模板
4) 执行Balance均衡集群数据
测试环境
1) CM和Cloudera Runtime版本为7.1.1
2) 集群未启用Kerberos
3) Redha7.7
4) 采用root用户进行操作
前置条件
1) 拥有Cloudera Manager的管理员账号
2) CDH集群已安装成功并正常运行
创建DataNode节点主机模板
1.登录Cloudera Manager Web界面,进入“主机模板”界面
2.点击“创建”,创建一个datanode主机模板,并为模板选择角色
没有主机模板,所以选择新建一个主机模板。如果有且符合使用需求,则不需要新建。
3.点击“创建”,完成DataNode模板创建
将需要的组件勾选上。
然后点击创建即可。
DataNode节点的前置准备
前置准备请参考之前的文章《CDP-DC的安装部署》的前置准备章节,主要包括以下步骤:
1.确保OS的yum源可以正常使用,通过yum repolist命令可以查看到匹配的OS的所有包
2.确保Cloudera Manager的yum源运行正常
3.hosts文件配置,需要将Gateway节点的IP和hostname加入到CDH集群节点的hosts文件中,并同步到所有机器包括Gateway节点
4.禁用SELinux
5.关闭防火墙
6.设置swap为10
7.关闭透明大页面
8.配置时钟同步
请务必确保以上操作都已完成,并成功配置,否则接下来的增加节点操作会失败!
上线DataNode节点
1.点击“主机”-> Add Host,进入添加主机向导
2.选择添加主机到CM或者到已有集群:
添加主机到CM,是指把主机让CM管理,但没有添加到任何一个集群。后续这些主机可以新建集群,也可以添加到已有集群中。
添加主机到集群,则需要对新添加的主机应用主机模板,进行角色设置。
如果已有集群是Kerberos化的集群,则需要在新添加的主机上部署Kerberos客户端。
3.这里我们先把主机添加到SinngleNodeCluster集群中。点击继续
4.点击“继续”,输入要添加的新主机ip或hostname,然后点击搜索, 选择需要添加到集群的主机,点击“继续”
5. .输入Cloudera Manager Agent的parcel库地址,点击“继续”
6.选择JDK的来源和安装部署方式
7.输入访问集群的用户密码,这里使用root用户,点击“继续”
向集群添加新主机,等待安装成功。
9.安装完成后会继续部署Parcels,点击“继续”
Parcel包激活完毕后,会自动进入健康检查
11.主机正确性检查通过,点击 “继续“,选择主机模板
选择我们前面创建的主机模板,然后点击继续主机角色的部署:
点击继续,进行客户端的部署:
点击完成,完成新添加节点的部署。进入主机列表
至此,向CDH已完成向CDH集群添加数据节点。
节点上线后各服务节点磁盘使用情况
可以看到新添加的DataNode节点,磁盘几乎未使用,说明暂未有数据写入该数据节点。接下来对DataNode节点进行数据平衡操作。
执行Balance操作
Balance是为了平衡数据,如果不执行该操作,集群将会把新的数据都存放在新的datanode上,这样会造成数据分布不平衡,影响作业的工作效率。
1.进入HDFS服务,选择“重新平衡”菜单
2.点击“重新平衡”
3.点击“重新平衡”,执行重新平衡操作
4.点击完成,执行成功
Balance参数说明:
重新平衡阈值:值越低各节点越平衡,但消耗时间也更长,默认为10%
dfs.datanode.balance.max.concurrent.moves:允许同时并发复制的块数
查看数据分布情况
通过HDFS的http://hostname:9870界面可以看到在执行了“重新平衡”操作后,新加入的DataNode节点磁盘的使用率和其它节点磁盘使用率相差在10%以内,如果需要降低各节点磁盘使用率差则需要调整“重新平衡阈值”该值越低节点磁盘使用率差越低。