E-MapReduce(简称EMR)目前仅支持付费类型为按量付费的Task节点组进行缩容,当您集群的其余类型节点组需要缩容节点时,可以按照本文对集群节点进行下线处理。
注意事项
- 本文操作均不可逆,一旦开始下线操作后,无法恢复原有状态。
- 本文操作为最佳实践操作演示,请结合集群实际情况进行评估后谨慎操作,避免集群任务调度失败以及数据安全的风险。
下线前准备
您可以根据集群服务负载情况,选择需要下线的节点。您需要计算待下线节点的规格,避免节点缩容后造成集群负载过高。
重要 如果集群属于以下情况,需要特殊注意:
- 如果
Core节点的数量 = HDFS的副本数量
,请勿缩容Core节点。 - 如果您的集群为非高可用集群,请勿缩容emr-worker-1和emr-worker-2 节点。
- 如果您的集群为高可用集群,但Master节点数为2,请勿缩容emr-worker-1节点。
服务组件Decommission
如果您的集群安装了以下服务,请在删除ECS前对已安装的这些服务组件先进行Decommission操作,否则可能会导致任务调度失败以及数据安全的问题。
YARN NodeManager Decommission
- 进入YARN服务的状态页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 在集群管理页面,单击目标集群操作列的集群服务。
- 在集群服务页面,单击YARN服务区域的状态。
- 下线目标节点的NodeManager。
- 在弹出的对话框中,输入执行原因,单击确定。
- 单击右上角的操作历史,可以查看操作进度。
HDFS DataNode Decommission
- 通过SSH方式登录集群Master节点,详见请参见登录集群。
- 切换到hdfs用户,并查看当前NameNode的个数。
sudo su - hdfs hdfs haadmin -getAllServiceState
- 依次ssh到NameNode所在节点,编辑dfs.exclude文件,加入需要下线的节点,每次建议只新增一台。
- Hadoop集群
touch /etc/ecm/hadoop-conf/dfs.exclude vim /etc/ecm/hadoop-conf/dfs.exclude
在vim下输入o
,新开始一行,填写下线的DataNode的hostname。emr-worker-3.cluster-xxxxx emr-worker-4.cluster-xxxxx
- 非Hadoop集群
touch /etc/taihao-apps/hdfs-conf/dfs.exclude vim /etc/taihao-apps/hdfs-conf/dfs.exclude
在vim下输入o
,新开始一行,填写下线的DataNode的hostname。core-1-3.c-0894dxxxxxxxxx core-1-4.c-0894dxxxxxxxxx
- Hadoop集群
- 在任一NameNode所在节点,切换到hdfs用户,执行刷新命令,HDFS自动启动Decommission。
sudo su - hdfs hdfs dfsadmin -refreshNodes
- 确认下线结果。
输⼊以下命令,判断decommission过程是否已经完成。
hadoop dfsadmin -report
当指定节点的Decommission Status为Decommissioned,即表示该节点DataNode的数据已经迁移⾄其他节点,下线操作已经完成。
SmartData Jindo Storage Service Decommission(Hadoop集群)
- 进入SmartData服务的状态页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 在集群管理页面,单击目标集群操作列的集群服务。
- 在集群服务页面,单击SmartData服务区域的状态。
- 下线目标节点的Jindo Storage Service。
- 在组件列表中,单击
展开Jindo Storage Service拓扑列表。
- 在Jindo Storage Service拓扑列表中,单击下线。
- 在组件列表中,单击
- 在弹出的对话框中,输入执行原因,单击确定。
- 单击右上角的操作历史,可以查看操作进度。
HBase HRegionServer Decommission
- 进入HBase服务的状态页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 在集群管理页面,单击目标集群操作列的集群服务。
- 在集群服务页面,单击HBase服务区域的状态。
- 下线目标节点的HRegionServer。
- 在组件列表中,单击
展开HRegionServer拓扑列表。
- 在HRegionServer拓扑列表中,单击下线(decommission)。
- 在组件列表中,单击
- 在弹出的对话框中,输入执行原因,单击确定。
- 单击右上角的操作历史,可以查看操作进度。
StarRocks Decommission
- 登录集群并使用客户端访问集群,详情请参见快速入门。
- 执行如下命令,通过
DECOMMISSION
方式下线BE。ALTER SYSTEM DECOMMISSION backend "be_ip:be_heartbeat_service_port";
以下参数请根据集群实际情况替换。be_ip
:在节点管理页面找到待缩容BE的内网IP地址。be_heartbeat_service_port
:默认是9050,可以通过show backends
命令查看。
如果Decommission很慢,您可以使用DROP
方式强制下线BE。重要 如果您使用DROP
方式下线BE节点,请确保系统三副本完整。ALTER SYSTEM DROP backend "be_ip:be_heartbeat_service_port";
- 执行以下命令,观察BE状态。
show backends;
SystemDecommissioned为true的节点,表示正在进行Decommission。当BE节点的TabletNum为0时,系统会清理元数据。
如果图中查看不到BE节点,则说明下线成功。
释放节点
重要 您需要登录ECS控制台对集群节点进行操作,如果您是RAM用户,则需要您具有ECS相关权限,建议授权AliyunECSFullAccess。
- 进入节点管理页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 在集群管理页面,单击目标集群操作列的节点管理。
- 在节点管理页面,单击待释放节点的ECS ID。
即可进入ECS控制台。
- 在ECS控制台上对实例进行释放操作,详情请参见释放实例。