Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase >> mail # user >> HBase Thrift for CDH3U3 leaking file descriptors/socket connections to Zookeeper

Copy link to this message
HBase Thrift for CDH3U3 leaking file descriptors/socket connections to Zookeeper
We have an app written in Ruby which uses HBase as the backing store.. It uses
Thrift to connect to it.. We were using HBase from Cloudera's CDH3B4 distro
now and it worked fine.. I just upgraded our Hadoop install to CDH3U3 (which is
the latest stable CDH release at this point) and in a matter of hours all Thrift
servers went down..

Upon further investigation I realized that it was hitting the limit on the
of allowed file descriptors (which is pretty high at 32k).. This problem occurs
I use thrift in any configuration (hsha, framed transport, threadpool) except
nonblocking mode.. Digging further I realized a couple of things:
1. Even with light load (1-2 processes hitting the thrift server in quick
succession), thrift is spinning up new threads and each of the threads is
maintaining a socket connection to zookeeper.. In a matter on minutes (with this
load test), thrift has > 32k open connections with > 8k threads having
to zookeeper which do not seem to die even after a day..
2. The logs show approx 3-4 open connections (presumably for each thread):
java    53588 hbase 4135r  FIFO                0,6             177426 pipe
java    53588 hbase 4136w  FIFO                0,6             177426 pipe
java    53588 hbase 4137r  0000               0,11         0   177427 eventpoll
java    53588 hbase 4138u  IPv4             177428                TCP
njhaddev05:49729->njhaddev01:2181 (ESTABLISH

CDH3B4 with the exact same configurations and the exact same setup works fine
CDH3U3 does not.. Using Thrift in nonblocking mode isn't really an option
of the low throughput and single threaded nature..

Can someone help please?