这个5 1过得有些蛋疼,没有出去旅游,原本是计划去旅游,我自己把天气预报看错了,结果导致大家都没去成清凉谷….   好在昨天跟朋友们在工体的酒吧, 花了我2000多快,因为没有散台了,这种时候让人等到有散台会很没有意思的….  所以直接去了卡座…   拿铁酒吧的妹子不错….  嘿嘿,身材好棒   !


正题开始, 工作方面还是遇到了烦人的问题,很是不爽!  有个数据抽取队列居然飙升到了170w左右,你妈了个蛋的! ….  用strace看了下问题,是thrift server堵塞造成的.. … 上星期我们开发了一个组件,就是把会消耗时间的hbase和es的操作,数据序列化后放到redis里面, 然后由多个导出程序来消费这个队列 。 出了这个之外,我们还已经用nginx tcp模式针对10个Thrift server进行负载均衡,为了解决nginx tcp module只能针对端口的监控探测,我们的应对方案是开发了一个针对后端所有thrift server进行scan的小任务操作,用来保持最佳状态的后端服务。 就算这样,有时候还是会堵塞。    看了happybase的文档,发现是可以批量put到hbase的。  把线程的代码改成batch模式很是简单, 但是结果没有太多的改善。  我把自己的测试的结果show给大家…  

标记下文章的原文链接是,  http://xiaorui.cc      http://xiaorui.cc/?p=1353

需要做个对比才能看出效果, 因为vpn的关系看不到metric的收集数据展现的图表,这样只能简单的通过计算hbase的操作的时间记录日志,查看他的消费的时间。    我这里额外提一下,我这边每条的数据都比较大,虽然是压缩后的网页源码。    这里先看下批量插入的实现代码

hadoop.py

我这里用的是happybase,官方的文档已经写的很清楚,大家可以看看。 


下面是每个任务为一次put动作   我们会发现他消耗的时间相当的少,几乎都是在0.0x秒。   


下面是20条数据为一次put数据。 

50个任务

那么我们再来试试把数量级调节到100个 … …  我们会发现性能很是不稳…..   


批量的效果不是那么的明显。。。。


后续,跟同事的批量业务对比了下,他们的rowkey设计的时候包含了时间戳,时间是有序的数据,所以他会在一台服务器上插入。 然而我们的rowkey是url的md5,是个随机的哈希,会分配到不同的regionserver上面。  这样很好的解决了hbase热点在一区域的问题。









对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

python使用happybase thrift库实现hbase的scan搜索

原文链接是在    http://xiaorui.cc  我想有些人可能不太懂python thrift scan的用法,我这边写个我自己常用的一个场景实现,查看某...

阅读全文

python使用happybase批量的操作hbase

最近在跑任务的回溯,发现有时候,速度会很慢 ,一开始确定到了 是hbase就起了一个公用的thrift,大家最近也都在导数据,搞得thrift总是挂掉 。 后来在集群...

阅读全文