bq. to access hbase 0.96.10
To my knowledge, there wasn't 0.96.10 release. Can you clarify the release
you're using ?
Looking at
./hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftHBaseServiceHandler.java
(in 0.98 branch):
public TResult increment(ByteBuffer table, TIncrement increment) throws
TIOError, TException {
public void putMultiple(ByteBuffer table, List<TPut> puts) throws
TIOError, TException {
They throw same types of exceptions.
Cheers
On Fri, Feb 27, 2015 at 6:27 PM, 不再散步 <[email protected]> wrote:
> for example:
> 1. I use thrift2 put to access table,
> try{
> _client->putMultiple(table, tput_vec); //table is 'member'
> } catch (TTransportException &e) {
> ret = e.getType(); //2 or 3
> g_logger.warn("[%s:%d] [%s] [PUT] TTransportException fail:
> %s:%d",
> _thrift_ip, _thrift_port, table.c_str(), e.what(), ret);
> } catch (TException &e) {
> g_logger.error("[%s:%d] [%s] [PUT] fatal error: %s, stop",
> _thrift_ip, _thrift_port, table.c_str(), e.what());
> ret = -1;
> }
>
> if I disable the table 'member', the code can catch
> TTransportException:
> [27560] 28 Feb 10:25:22 [WARN] [1130428752]
> [bus_hbase_util.cc:_put_multiple] [95] [10.13.2.194:9091] [member] [PUT]
> TTransportException fail: EAGAIN (timed out):2
>
>
> 2. I use thrfit2 increment to access table,
> try{
> //increment没有批量的接口
> _client->increment(tresult, table, tincrement);
> } catch (ATP::TProtocolException &e) {
> ret = e.getType();
> g_logger.warn("[%s:%d] [%s] [INCREMENT]
> TTransportException: %s:%d",
> _thrift_ip, _thrift_port, table.c_str(),
> e.what(), ret);
> goto error_out;
> } catch (AT::TApplicationException &e) {
> ret = e.getType();
> g_logger.warn("[%s:%d] [%s] [INCREMENT]
> TTransportException: %s:%d",
> _thrift_ip, _thrift_port, table.c_str(),
> e.what(), ret);
> goto error_out;
> } catch (ATT::TTransportException &e) {
> ret = e.getType();
> g_logger.warn("[%s:%d] [%s] [INCREMENT]
> TTransportException: %s:%d",
> _thrift_ip, _thrift_port, table.c_str(),
> e.what(), ret);
> goto error_out;
> } catch (AT::TException &e) {
> g_logger.error("[%s:%d] [%s] [INCREMENT] %s %s:%s %d
> fatal error: %s, stop",
> _thrift_ip, _thrift_port,
> table.c_str(),
> hrow->get_hbase_row(),
> hrow->get_hbase_cf(),
> hrow->get_hbase_qu(),
> hrow->get_hbase_increment(),
> e.what());
> ret = -1; goto error_out;
> }
>
> if I disable the table 'member', the code can only catch
> TException:
> [27560] 28 Feb 10:00:35 [ERROR] [1105250640]
> [bus_hbase_util.cc:send_to_hbase] [233] [10.13.2.194:9091] [member]
> [INCREMENT] counter cf:count 1 fatal error: Default TException., stop
>
>
> WHY I can not catch TTransportException in condition 2, and I can
> catch TTransportException in condition 1? Or something wrong with
> THBaseServiceClient::increment() throw exception ?