Amazon EMR上的Hbase通过Thrift连接超时

时间:2016-09-28 01:05:20

标签: hbase thrift amazon-emr

我使用TThreadPoolServer Thrift服务器写信给HBase,我对最大工作线程有以下HBase设置:

HBase的-site.xml中

<property>
   <name>hbase.thrift.maxWorkerThreads</name>
   <value>50000</value>
   <source>hbase-site.xml</source>
</property>

这是我用来执行并发写入的脚本:

test.py

import happybase
from random import randint

connection = happybase.Connection('ec2-xx-xx-xx-xx.compute-1.amazonaws.com', timeout=50000)
table_name = 'test' + str(randint(0,1000000))

families = {
    'cf1': dict(max_versions=1),
}
connection.create_table(table_name, families)
table = connection.table(name=table_name)
x = 0
while x < 1000000:
    table.put('row-key' + str(x), {b'cf1:qual1': b'testtesttest', b'cf1:qual2': b'testestest'})
    x += 1

现在如果我同时运行25个test.py实例,在创建18-20个连接之后所有其他连接都因为超时错误而无法连接,我检查了hbase服务器,thrift只能创建300个线程达到该限制时,不接受新连接并超时。

即使有300个线程,系统也没有压力,CPU和内存消耗非常低,因此我认为这是因为某些配置。

有人可以指导我为什么thrift没有创建更多的线程,在我的HBase配置中,thrift最大线程数是多少?

0 个答案:

没有答案