From dd327d00c302ff127c489190f8b74f6a57a6f6ca Mon Sep 17 00:00:00 2001 From: Stanilovsky Evgeny Date: Tue, 14 Oct 2014 13:49:55 +0400 Subject: [PATCH] HDPDEV-176 --- .../java/org/apache/hadoop/hive/conf/HiveConf.java | 4 +-- .../hadoop/hive/metastore/HiveMetaStoreClient.java | 34 ++++++++++++++++++-- .../org/apache/hive/service/cli/CLIService.java | 36 +++++++++++----------- 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index 77ce932..9d629a6 100644 --- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -251,12 +251,12 @@ // Number of times to retry a connection to a Thrift metastore server METASTORETHRIFTCONNECTIONRETRIES("hive.metastore.connect.retries", 3), // Number of times to retry a Thrift metastore call upon failure - METASTORETHRIFTFAILURERETRIES("hive.metastore.failure.retries", 1), + METASTORETHRIFTFAILURERETRIES("hive.metastore.failure.retries", 3), // Number of seconds the client should wait between connection attempts METASTORE_CLIENT_CONNECT_RETRY_DELAY("hive.metastore.client.connect.retry.delay", 1), // Socket timeout for the client connection (in seconds) - METASTORE_CLIENT_SOCKET_TIMEOUT("hive.metastore.client.socket.timeout", 600), + METASTORE_CLIENT_SOCKET_TIMEOUT("hive.metastore.client.socket.timeout", 5), METASTOREPWD("javax.jdo.option.ConnectionPassword", "mine"), // Class name of JDO connection url hook METASTORECONNECTURLHOOK("hive.metastore.ds.connection.url.hook", ""), diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java index d99bf72..80a9a49 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java @@ -733,7 +733,15 @@ public boolean dropType(String type) throws NoSuchObjectException, MetaException throws MetaException { try { return client.get_databases(databasePattern); - } catch (Exception e) { + } catch (TTransportException e) { + reconnect(); + try { + return client.get_databases(databasePattern); + } catch (Exception e1) { + MetaStoreUtils.logAndThrowMetaException(e1); + } + } + catch (Exception e) { MetaStoreUtils.logAndThrowMetaException(e); } return null; @@ -743,7 +751,15 @@ public boolean dropType(String type) throws NoSuchObjectException, MetaException public List getAllDatabases() throws MetaException { try { return client.get_all_databases(); - } catch (Exception e) { + } catch (TTransportException e) { + reconnect(); + try { + return client.get_all_databases(); + } catch (Exception e1) { + MetaStoreUtils.logAndThrowMetaException(e1); + } + } + catch (Exception e) { MetaStoreUtils.logAndThrowMetaException(e); } return null; @@ -933,6 +949,13 @@ public Type getType(String name) throws NoSuchObjectException, MetaException, TE public List getTables(String dbname, String tablePattern) throws MetaException { try { return client.get_tables(dbname, tablePattern); + } catch (TTransportException e) { + reconnect(); + try { + return client.get_tables(dbname, tablePattern); + } catch (Exception e1) { + MetaStoreUtils.logAndThrowMetaException(e1); + } } catch (Exception e) { MetaStoreUtils.logAndThrowMetaException(e); } @@ -943,6 +966,13 @@ public Type getType(String name) throws NoSuchObjectException, MetaException, TE public List getAllTables(String dbname) throws MetaException { try { return client.get_all_tables(dbname); + } catch (TTransportException e) { + reconnect(); + try { + return client.get_all_tables(dbname); + } catch (Exception e1) { + MetaStoreUtils.logAndThrowMetaException(e1); + } } catch (Exception e) { MetaStoreUtils.logAndThrowMetaException(e); } diff --git a/service/src/java/org/apache/hive/service/cli/CLIService.java b/service/src/java/org/apache/hive/service/cli/CLIService.java index b1b6617..a417962 100644 --- a/service/src/java/org/apache/hive/service/cli/CLIService.java +++ b/service/src/java/org/apache/hive/service/cli/CLIService.java @@ -117,7 +117,7 @@ public SessionHandle openSession(String username, String password, Map