Apache IoTDB tutorial series-5: Summary of common problems (1)

In the past period of time, I have collected a lot of feedback from everyone in the process of using it. Today, I will list some common problems to provide reference for more people. You can scan the QR code of an exchange group to enter the group.

The text is 1974 words, and the expected reading time is 5 minutes.

common problem

Summary: startup problems, connection problems, excessive load, path name problems, group by syntax, loss of precision, and empty metadata.

Startup problem

Generally occurs in windows, you can check whether there are spaces in the path, whether the path is too long, etc.

The client cannot connect to the server

The exception log is related to thrift, missing fields, etc. These are all version mismatches. It is necessary to ensure that the client and server are of the same major version, such as 0.9.x or 0.10.x.

Specific reference:

https://blog.csdn.net/qiaojialin/article/details/106258371

System load is too heavy

IoTDB system load is too large. You will be prompted that you can turn off the enable_parameter_adapter parameter. Turning off this parameter has the risk of memory explosion, and you need to manually adjust the parameters. Simple tuning method:

memtable_size_threshold=tsfile_size_threshold

= Allocable memory *50% / number of storage groups / 4 (with out-of-order data)

= Allocable memory*50% / number of storage groups / 2 (no out-of-order data)

In the 0.10.0 configuration file, there is a parameter adjustment guide for the enable_parameter_adapter parameter, you can refer to it.

Path name problem

0.8, 0.9 There are different degrees of support for path names. The most common naming rule is that the naming rule starts with letters and underscores, and consists of letters, numbers, and underscores. Other special characters, such as ¥#&-, are only supported in 0.10.0. As for the last layer, we have come up with a quotation mark solution before. It is no problem to write this in 0.10.0, but the headers returned by the query may not be uniform. This will be completely resolved in 0.11.0 or 0.10.1. I will write a separate article introduction at that time.

Group by syntax is incorrect

Versions before 0.9 and 0.10 have different group by syntax. You need to pay attention to the version of IoTDB.

The syntax of 0.9 is group by (1d, 2017-11-03 00:00:00, [2017-11-01 00:00:00, 2017-11-07 23:00:00]);

The syntax of 0.10 is group by ([2017-11-01 00:00:00, 2017-11-07 23:00:00), 3h, 1d);

For details, please refer to the previous article: Basic SQL syntax

Connection reset by peer

The connection is unstable, you can use SessionPool, which has a reconnection mechanism.

timeout to get a connection

Remember to close the result set queried with SessionPool. If you forget to close it, the connection will always be occupied. The way to close is sessionPool.close(SessionDataSetWrapper).

MQTT related issues

In addition to the java mqtt client example, other mqtt clients need to set the Client ID, which will allow the use of an empty clientID in version 0.11.0.

0.10.0 and earlier versions allow anonymous access, which has been fixed in version 0.11.0-SNAPSHOT.

Loss of data accuracy

The use of RLE and TS_2DIFF for Float and Double has a loss of precision. By default, two decimal places are reserved and rounded according to the third place, which can be controlled by the parameter float_precision.

Gorilla encoding is recommended for floating-point numbers, lossless.

Version 0.9 bursts memory

Need to set merge_interval_sec to 0.

Metadata is empty after restart

This problem occurred in 0.9.2 and earlier versions. The metadata will not be lost, but the memory is emptied after encountering the error log when restarting. It can be upgraded to 0.9.3 or 0.10.0, and it can be solved by restarting.

Four steps to encounter problems

first step

Try the new version, maybe the new version will be okay (previously I always like to find an old version to use when I download the software, now I just want to use the latest version after I start to make the software...)

Second step

Perform operations through the client. If an exception occurs, the error code will be included in the exception. You can get the error code through getStatusCode, and then check this link:

http://iotdb.apache.org/zh/UserGuide/V0.10.x/Client/Status%20Codes.html

This method can help you identify grammatical problems, version problems, etc.

third step

Search in the Github issue list. If you don’t have it, you can create it. Try to describe your specific operations and problems clearly. If you have an error log, you can post it.

https://github.com/apache/incubator-iotdb/issues

Questions raised on github will basically get feedback within a day or two. It should be noted that it is best to give feedback on the solution after it is solved and give others reference.

the fourth step

To contact us, you can contact the author and add me on WeChat at the bottom of the official account.

to sum up

The software is used. The more feedback from you, the easier to use IoTDB. Thank you for the users who are in the rapid growth stage of IoTDB. The next article will introduce tuning.

Welcome to some star: https://github.com/apache/incubator-iotdb

Guess you like

Origin blog.csdn.net/qiaojialin/article/details/107171511