在过去的一段时间,收集了不少大家在使用过程中反馈的问题,今天把一些常见问题列出来,给更多人提供参考。开了个交流群二维码,可以扫码进群。
常见问题
汇总:启动问题、连接问题、负载过大、路径名问题、group by 语法、精度损失、元数据为空。
启动问题
一般发生在 windows,可以检查路径里是否有空格,是否路径过长等。
客户端连不上服务器
异常日志是 thrift 相关的,字段缺失等,这种都是版本不匹配,需要保证客户端和服务器是同一个大版本,如都是 0.9.x 或 0.10.x。
具体可参考:
https://blog.csdn.net/qiaojialin/article/details/106258371
系统负载过大
IoTDB system load is too large. 会提示可以关闭 enable_parameter_adapter参数,关闭这个参数有爆内存的风险,需要手动调整参数。简单调法:
memtable_size_threshold=tsfile_size_threshold
=可分配内存*50% / 存储组个数 / 4 (有乱序数据)
=可分配内存*50% / 存储组个数 / 2 (无乱序数据)
在0.10.0的配置文件里,enable_parameter_adapter 这个参数上边有调参指南,可以参考。
路径名问题
0.8、0.9 关于路径名有不同程度的支持,最通用的是命名规则是字母和下划线开头,由字母、数字、下划线组成。其他特殊字符,如 ¥#&-等在 0.10.0 才支持。至于最后一层,之前我们出过一个用引号引起来的解决方案,这个在0.10.0 写入是没问题,但是查询返回的表头可能不统一。这个之后会在0.11.0 或者 0.10.1彻底解决。到时候我会单独写一篇文章介绍。
Group by 语法不对
0.9以前的版本和0.10版本的 group by语法不一样,需要注意一下IoTDB的版本。
0.9 的语法为 group by (1d, 2017-11-03 00:00:00, [2017-11-01 00:00:00, 2017-11-07 23:00:00]);
0.10 的语法为 group by ([2017-11-01 00:00:00, 2017-11-07 23:00:00), 3h, 1d);
具体可参考之前一篇文章:基本SQL语法
Connection reset by peer
连接不稳定,可以用 SessionPool,SessionPool 有重连机制。
timeout to get a connection
用 SessionPool 查询出来的结果集要记得关闭,忘了关闭会一直占用连接。关闭的方式是 sessionPool.close(SessionDataSetWrapper).
MQTT 相关问题
除 java 的 mqtt 客户端示例之外,其他 mqtt 客户端需要设置 Client ID,这个在 0.11.0 版本会允许使用空的 clientID。
0.10.0 以及 之前版本允许匿名访问,已在0.11.0-SNAPSHOT 版本修复了。
数据精度损失
对 Float 和 Double 使用 RLE、TS_2DIFF 编码有精度损失,默认保留两位小数,并根据第三位四舍五入,可通过参数 float_precision 控制。
浮点数推荐 Gorilla 编码,无损的。
0.9 版本爆内存
需要把 merge_interval_sec 设置为 0。
重启后元数据为空
这个问题发生在 0.9.2 及以前的版本,元数据不会丢,只是重启的时候遇到错误的日志后内存里清空了。可以升级为 0.9.3 或者0.10.0,重启就可以解决了。
遇到问题四步走
第一步
尝试新版本,没准新版本就没问题了(以前下软件总喜欢找个老版本用,现在开始做软件之后,就只想用最新版。。)
第二步
通过客户端执行操作,如果出现异常,异常里会包含错误码,可以通过 getStatusCode 拿到错误码,然后来这个链接里查询:
http://iotdb.apache.org/zh/UserGuide/V0.10.x/Client/Status Codes.html
这种方式可以帮大家识别语法问题,版本问题等。
第三步
Github 的 issue 列表里搜索,如果没有可以创建,尽量将自己的具体操作和出现的问题描述清楚,有错误日志可以贴日志。
https://github.com/apache/incubator-iotdb/issues
到 github 上提的问题基本一两天都会得到反馈,需要注意的是解决之后最好反馈一下解决方式,给其他人参考。
第四步
联系我们,可以在公众号底边栏联系作者加我微信。
总结
软件是用出来的,大家的反馈越多,IoTDB 就越好用,感谢在 IoTDB 快速成长阶段的用户们,下一篇会介绍一下调优。