1.檢查是否開啟了major compact
建議:關閉躬它,使用其他方式周期性觸發(fā)
設置hbase.hregion.majorcompaction=0關閉
在hbaseshell里執(zhí)行:major compact觸發(fā)major compact
2.檢查RS下的region的數(shù)量以及請求數(shù)
rs下的region以及對于的HFile數(shù)量不宜過多贺奠,過多會導致IO被打滿÷⌒幔可以手動觸發(fā)major compact減少小文件(低峰期執(zhí)行)
請求數(shù)如果不均衡界阁,需要重新設置rowkey,均勻分散到集群上胖喳。并適當增加rpc Handler的數(shù)量
3.檢查RS的CPU泡躯,io,load
檢查下查詢緩慢的時候集群中是否有RS的load飆高丽焊,大約cpu個數(shù)的2倍以上就有問題较剃、
檢查下集群的RS的所有的IO,是否飆到90%以上技健,
如果都很高写穴,看下磁盤是否有問題,是否這個rs成為了熱點雌贱“∷停可以手動遷移region到負載低的節(jié)點上
4.檢查RS的GC情況
主要檢查是否有fullgc的情況,推薦使用G1欣孤,并打開垃圾收集日志,
jvm的內存可以給到機器總內存的80%左右
5.檢查是否有別的大查詢將集群的cache打滿馋没,導致新的業(yè)務在查詢的時候,需要讀磁盤
6.檢查hdfs集群的DN是否有問題降传,gc篷朵,cpu,io婆排,load声旺,dn有問題控硼,也會影響數(shù)據(jù)的讀取
7.檢查客戶端
客戶端查詢的時候,盡量使用批量查詢艾少,增加每次返回的條數(shù),從而減少跟集群交互的次數(shù)翼悴。
盡量精確查詢缚够,不要前綴匹配。如果需要前綴匹配鹦赎,盡量指定范圍
8.如果還是慢
1.開啟bloomfilter過濾
2.使用二級索引
3.增加集群規(guī)模