beeswax 访问 HiveServer2 报错
报错内容
[HiveServer2-Handler-Pool: Thread-53]: WARN thrift.ThriftCLIService: Error fetching results:
org.apache.hive.service.cli.HiveSQLException: **Couldn’t find log associated with operation handle **: OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=
问题原因
- HiveServer2 未开启日志功能
- HiveServer2 指定的日志目录不存在或者无操作权限
解决方案
- 检查 HiveServer2 是否开启 logging。配置参数为:hive.server2.logging.operation.enabled,需要设置为 true。
- 检查 HiveServer2 的日志存放路径。配置参数为: hive.server2.logging.operation.log.location。默认为:/tmp/${username}/operation_logs。检查目录是否存在,确认启动 HiverServer2 的Unix用户是否有操作该目录的权限。
小插曲
默认存放日志路径在 /tmp 下,可能会被操作系统清理。如果你的 beeswax 正常运行一段时间后突然报以上错误,很可能是 /tmp/${username}/operation_logs 被删除了。