Hbase运行不稳定,通过修改系统配置(THP)解决Hbase运行过程中时常出现宕机的问题

问题
​       前段时间由于项目需要将spark计算后的大量数据插入到HBbase数据库中,但在项目进行过程中发现整个Hadoop集群很不稳定,集群状态中CPU使用率很高,运行一段时间后HBase运行不稳定或者Hbase集群挂掉。


说明
​        数据库的性能表现与很多因素相关,比如数据库本身的参数配置、客户端API的使用、表和字段的设计,及操作系统、JVM等。THP是为了提升性能,但对一些数据库如Oracle、MariaDB、MongoDB、Redis、HBase在使用时,建议关闭THP,如果不关闭THP,否则可能导致性能下降,内存锁,甚至系统重启等问题。关闭THP后可是HBase性能提高近20%。
​      Transparent HugePages(THP,页面内存透明化)是RHEL6的新特性。Transparent HugePages与HugePages(标准的大页内存管理)是有区别的。标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变,而Transparent HugePages是在运行时动态分配内存的,所以会带来在运行时内存分配延误。如果需要大页内存管理功能来加强性能,建议使用标准的大页内存管理。

查看是否启用

```
[root@spark01 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] never
[root@spark01 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] never
```
禁用
```
[root@spark01 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always [never]
[root@spark01 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always [never]
```
以上命令系统重启后便会失效。需要编辑rc.local启动文件。
```
[root@spark01 ~]# vim /etc/rc.d/rc.local 


#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
touch /var/lock/subsys/local
```


保存并退出。

想深入了解的可以看看:https://blog.csdn.net/javastart/article/details/72870780。这篇博客讲解的很详细。

你可能感兴趣的:(HBase)