MAPREDUCE服务 MRS-HBase占用网络端口,连接数过大会导致其他服务不稳定:回答
回答
使用操作系统命令lsof或者netstat发现大量TCP连接处于CLOSE_WAIT状态,且连接持有者为HBase RegionServer,可能导致网络端口耗尽或HDFS连接超限,那样可能会导致其他服务不稳定。HBase CLOSE_WAIT现象为HBase机制。
HBase CLOSE_WAIT产生原因:HBase数据以HFile形式存储在HDFS上,这里可以叫StoreFiles,HBase作为HDFS的客户端,HBase在创建StoreFile或启动加载StoreFile时创建了HDFS连接,当创建StoreFile或加载StoreFile完成时,HDFS方面认为任务已完成,将连接关闭权交给HBase,但HBase为了保证实时响应,有请求时就可以连接对应数据文件,需要保持连接,选择不关闭连接,所以连接状态为CLOSE_WAIT(需客户端关闭)。
什么时候会创建StoreFile:当HBase执行Flush时。
什么时候执行Flush:HBase写入数据首先会存在内存MemStore,只有内存使用达到阈值或手动执行flush命令时会触发flush操作,将数据写入HDFS。
解决方法:
由于HBase连接机制,如果想减小HBase端口占用,则需控制StoreFile数量,具体可以通过触发HBase的compaction动作完成,即触发HBase文件合并,方法如下:
方法1:使用HBase shell客户端,在客户端手动执行major_compact操作。
方法2:编写HBase客户端代码,调用HBaseAdmin类中的compact方法触发HBase的compaction动作。
如果compact无法解决HBase端口占用现象,说明HBase使用情况已经达到瓶颈,需考虑如下几点:
- table的Region数初始设置是否合适。
- 是否存在无用数据。
如果存在无用数据,可删除对应数据以减小HBase存储文件数量,如果以上情况都不满足,则需考虑扩容。
- 如何连接测试服务器数据库_mysql数据库磁盘满了怎么办
- 连接GaussDB(for MySQL)数据库_华为云数据库GaussDB(for MySQL)_数据库连接
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MySQL数据库_查看MySQL数据库版本_免费MySQL数据库
- CDN加速什么意思_CDN加速原理_全球CDN加速
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- 华为VNC_VNC使用教程_VNC免安装-华为云
- 连接RDS for MySQL数据库_华为云数据库RDS_语法_数据库连接_连接命令
- MySQL数据库简介_MySQL数据库应用_MySQL授权多个数据库
- 如何快速创建VPC对等连接_对接连接是什么意思_华为云VPC对接连接