HBASE我遇坑之client.AsyncProcess: #1, waiting for 5012 actions to finish

来源:互联网 发布:奥斯卡终身成就奖 知乎 编辑:程序博客网 时间:2024/05/17 08:29

  项目使用phoenix连接HBASE,数据用spark处理后通过phoenix批量插入到HBASE中,

其中,提交频率为5000条提交一次
  发现插入表大的时候,速度变慢,查看日志发现如下线索:

client.AsyncProcess: #1, waiting for 5012 actions to finish


        查看网上很多线索,主要有几种解释:

一种是ZK的连接数限制,需要调大ZK最大连接数。尝试修改连接数,没有效果

一种是说客户端连接数限制,要在开启客户端连接的时候增加连接池数量。 客户端是jdbc连接的,线程池不会太小。

另一种国外的网站是说一次性提交的事务太多,需要调小提交条数。这个还没有尝试。

             查看HBASE写入原理,本来想写,心情不好,这里就不多说了,因为也没什么太大用处,

主要还是需要查看hbase的源码,从报错 日志client.AsyncProcess找到源码位置,在hbase-client里面,注意版本,新版本这个日志不是出现在AsyncProcess


         

  

            报错的日志在这个方法里面,究竟是谁调用了这个方法,那么得从头开始看了,从HTABLE里面的PUT<list rows>方法开始看,发现程序的逻辑:

        插入多条数据-》数据大于缓冲大小时进行提交(缓存大小可以设置)-》读取该表的meta表,将数据按server分组-》每个server启一个线程进行提交-》

    等待提交的返回结果  这个就是图中看到的这个方法了。


         也就是说,出现这个问题是由于数据插入在服务端没有执行完成,客户端正在等待服务端插入完成。

     其实问题的本质在于服务端,可能插入太快,该表在spit 或者flush 或者gc stw 等问题引起,需要优化该表在服务端的存储,具体的表优化就看大家自己实际的业务情况了。

 





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 七过月宝宝便秘怎么办 6个月孩子便秘怎么办 6个月婴儿便秘怎么办 一个多月宝宝两天没拉大便怎么办 7个月宝宝便秘怎么办 9个月宝宝便秘怎么办 六个月宝宝严重便秘怎么办 公司调岗员工不同意怎么办 acca注册一直在审核怎么办 ieee ap二审被拒怎么办 文章投到假期刊怎么办 论文投了假网站怎么办 网上传了虚假的怎么办? 网上做兼职被骗了钱怎么办 通过支付宝扫码被骗了怎么办 支付宝扫二维码被骗怎么办 在is上被骗了怎么办 微信兼职被骗怎么办天涯论坛 公众号不给稿费怎么办 围绕服务改善民生提出怎么办 翰墨香林苑怎么办全产权 西城高铁联名卡怎么办 英语教学系统做题时超时了怎么办 sci被要求撤稿怎么办 论文投稿后初审通过想撤稿怎么办 河南大学读写译挂了怎么办 在职mba双证硕士怎么办户口 电脑开机了出现一些英文单词怎么办 不懂法语想读法语书怎么办 大鱼号文章需要修改怎么办 过了上诉期怎么办申诉 法院判刑后被告逃亡监护人怎么办 二审判决后不服的怎么办 对树木对生物花草过敏怎么办 高一英语成绩差怎么办 文章被同时录用该怎么办 来不及开ei检索证明怎么办 淘宝生产许可编号一定要填怎么办 官网下单被砍单怎么办美卡美私 大学网络课程挂了怎么办 如果二审超过6个月还不判怎么办?