关于频繁入库慢的优化问题 5C

我希望数据能够实时入库,现在是用线程定时去抓文件入库到Hbase。
但是,现在有两个入库方式。
1---使用官方已经废弃的方法。每次入库到Hbase(是用的put(list)方法),每次都要关闭掉table,再重新连接hbase,Htable table开销非常大。使用后如果只调用table.flushCommits()接口,资源并没有释放,内存一直涨.....
请问有没有比较好的建议?

2---使用新的API。用ConnectionFactory.createConnection获取连接,然后通过连接获取table,这时候table释放资源只提供了close方法。我尝试table.close();connection.close(),资源仍然未释放,内存一直涨。

最后还是使用了旧api,每次put后table.close(),在线等解决办法图片说明图片说明

1个回答

数据库有缓存,涨内存是正常表现啊。

Tiger_Zhao
Tiger_Zhao 回复gingerredjade: 数据缓存不是write buffer。数据库通过把数据<b>尽量</b>缓存在内存中减少硬盘读写来提高响应速度。你应该抛弃DOS时代的内存使用观点了。
3 年多之前 回复
gingerredjade
LuckyJiang.2019 一直涨的话没多久就异常了,hbase自己何时释放资源缓存呢? write buffer默认2M,我的都大于2M了,内存还是涨
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐