繁体   English   中英

闲置一分钟后运行第二个查询时,hiveserver2 org.apache.thrift.transport.TTransportException错误

[英]hiveserver2 org.apache.thrift.transport.TTransportException error when running 2nd query after minute of inactivity

我通过端口10000从我的SQL工具(即Squirrel SQL,Oracle SQL Developer)到HiveServer2(在远程服务器上运行)建立了JDBC连接。

我能够成功运行一些查询。 然后,我在1-2分钟内做其他事情(不在SQL工具中),然后返回我的SQL工具并尝试运行查询,但出现此错误: org.apache.thrift.transport.TTransportException: java.net.SocketException: Software caused connection abort: socket write error

如果现在断开连接并在SQL工具中重新连接,则可以再次运行查询。 但是,有人知道我应该更改哪些HiveServer2设置以防止该错误吗? 我假设在hive-site.xml中有一些东西

从下面的hiveserver2日志中,可以看到从第30分钟到第31分钟之间发生中断的确切1分钟间隔。

2018-04-05T03:30:41,706  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Resetting thread name to  HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:30:41,712  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Updating thread name to c81ec0f9-7a9d-46b6-9708-e7d78520a48a HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:30:41,712  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Resetting thread name to  HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:30:41,718  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Updating thread name to c81ec0f9-7a9d-46b6-9708-e7d78520a48a HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:30:41,719  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Resetting thread name to  HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:31:41,232  INFO [HiveServer2-Handler-Pool: Thread-36] thrift.ThriftCLIService: Session disconnected without closing properly.
2018-04-05T03:31:41,233  INFO [HiveServer2-Handler-Pool: Thread-36] thrift.ThriftCLIService: Closing the session: SessionHandle [c81ec0f9-7a9d-46b6-9708-e7d78520a48a]
2018-04-05T03:31:41,233  INFO [HiveServer2-Handler-Pool: Thread-36] service.CompositeService: Session closed, SessionHandle [c81ec0f9-7a9d-46b6-9708-e7d78520a48a], current sessions:0
2018-04-05T03:31:41,233  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Updating thread name to c81ec0f9-7a9d-46b6-9708-e7d78520a48a HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:31:41,233  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Resetting thread name to  HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:31:41,233  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Updating thread name to c81ec0f9-7a9d-46b6-9708-e7d78520a48a HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:31:41,233  INFO [HiveServer2-Handler-Pool: Thread-36] session.HiveSessionImpl: Operation log session directory is deleted: /var/hive/hs2log/tmp/c81ec0f9-7a9d-46b6-9708-e7d78520a48a
2018-04-05T03:31:41,233  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Resetting thread name to  HiveServer2-Handler-Pool: Thread-36
2018-04-05T03:31:41,236  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Deleted directory: /var/hive/scratch/tmp/anonymous/c81ec0f9-7a9d-46b6-9708-e7d78520a48a on fs with scheme file
2018-04-05T03:31:41,236  INFO [HiveServer2-Handler-Pool: Thread-36] session.SessionState: Deleted directory: /var/hive/ec2-user/c81ec0f9-7a9d-46b6-9708-e7d78520a48a on fs with scheme file
2018-04-05T03:31:41,236  INFO [HiveServer2-Handler-Pool: Thread-36] hive.metastore: Closed a connection to metastore, current connections: 1

环境:

  • Hive 2.1.1的hive.server2.transport.mode设置为二进制(示例JDBC字符串为jdbc:hive2:// remotehost:10000 / default)
  • Hadoop 2.8.3
  • 使用MySQL的Metastore
  • Java 8
  1. 将AWS ELB的默认超时从1分钟更改为20分钟
  2. 将SimbaHive驱动程序与Squirrel一起使用(无超时),或将标准apache hive2驱动程序与IBM数据工作室一起使用(无超时)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM