hiveserver2 org.apache.thrift.transport.TTransportException 当 运行 不活动一分钟后第二次查询时出错
hiveserver2 org.apache.thrift.transport.TTransportException error when running 2nd query after minute of inactivity
我从我的 SQL 工具(即 Squirrel SQL、Oracle SQL Developer)建立了一个 JDBC 连接到 HiveServer2(运行ning 在远程服务器)与端口 10000。
我能够 运行 一些查询成功。
然后我做了其他事情(不在 SQL 工具中)1-2 分钟,然后 return 我的 SQL 工具并尝试 运行 查询但我得到这个错误: org.apache.thrift.transport.TTransportException: java.net.SocketException: Software caused connection abort: socket write error
如果我现在在我的 SQL 工具中断开连接并重新连接,我可以再次 运行 查询。但是有谁知道我应该更改哪些 HiveServer2 设置以防止错误?我假设配置单元中有一些东西-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。server2.transport.mode 设置为二进制(示例 JDBC 字符串为 jdbc:hive2://remotehost:10000/default)
- Hadoop 2.8.3
- Metastore 使用 MySQL
- Java 8
- 将 AWS ELB 的默认超时从 1 分钟更改为 20 分钟
- 将 SimbaHive 驱动程序与 Squirrel 一起使用(无超时)或将标准 apache hive2 驱动程序与 IBM 数据工作室一起使用(无超时)
我从我的 SQL 工具(即 Squirrel SQL、Oracle SQL Developer)建立了一个 JDBC 连接到 HiveServer2(运行ning 在远程服务器)与端口 10000。
我能够 运行 一些查询成功。
然后我做了其他事情(不在 SQL 工具中)1-2 分钟,然后 return 我的 SQL 工具并尝试 运行 查询但我得到这个错误: org.apache.thrift.transport.TTransportException: java.net.SocketException: Software caused connection abort: socket write error
如果我现在在我的 SQL 工具中断开连接并重新连接,我可以再次 运行 查询。但是有谁知道我应该更改哪些 HiveServer2 设置以防止错误?我假设配置单元中有一些东西-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。server2.transport.mode 设置为二进制(示例 JDBC 字符串为 jdbc:hive2://remotehost:10000/default)
- Hadoop 2.8.3
- Metastore 使用 MySQL
- Java 8
- 将 AWS ELB 的默认超时从 1 分钟更改为 20 分钟
- 将 SimbaHive 驱动程序与 Squirrel 一起使用(无超时)或将标准 apache hive2 驱动程序与 IBM 数据工作室一起使用(无超时)