Skip to content

Commit 4454c13

Browse files
authored
FAQ synchronized to table model (#820)
1 parent a633dc9 commit 4454c13

File tree

8 files changed

+886
-0
lines changed

8 files changed

+886
-0
lines changed

src/.vuepress/sidebar/V2.0.x/en-Table.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,5 +244,16 @@ export const enSidebar = {
244244
{ text: 'System Tables', link: 'System-Tables' },
245245
],
246246
},
247+
{
248+
text: 'FAQ',
249+
collapsible: true,
250+
prefix: 'FAQ/',
251+
children: [
252+
{
253+
text: 'Frequently Asked Questions',
254+
link: 'Frequently-asked-questions',
255+
},
256+
],
257+
},
247258
],
248259
};

src/.vuepress/sidebar/V2.0.x/zh-Table.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,5 +234,11 @@ export const zhSidebar = {
234234
{ text: '系统表', link: 'System-Tables' },
235235
],
236236
},
237+
{
238+
text: 'FAQ',
239+
collapsible: true,
240+
prefix: 'FAQ/',
241+
children: [{ text: '常见问题', link: 'Frequently-asked-questions' }],
242+
},
237243
],
238244
};

src/.vuepress/sidebar_timecho/V2.0.x/en-Table.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,5 +249,16 @@ export const enSidebar = {
249249
{ text: 'System Tables', link: 'System-Tables' },
250250
],
251251
},
252+
{
253+
text: 'FAQ',
254+
collapsible: true,
255+
prefix: 'FAQ/',
256+
children: [
257+
{
258+
text: 'Frequently Asked Questions',
259+
link: 'Frequently-asked-questions',
260+
},
261+
],
262+
},
252263
],
253264
};

src/.vuepress/sidebar_timecho/V2.0.x/zh-Table.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,5 +238,11 @@ export const zhSidebar = {
238238
{ text: '系统表', link: 'System-Tables' },
239239
],
240240
},
241+
{
242+
text: 'FAQ',
243+
collapsible: true,
244+
prefix: 'FAQ/',
245+
children: [{ text: '常见问题', link: 'Frequently-asked-questions' }],
246+
},
241247
],
242248
};
Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
<!--
2+
3+
Licensed to the Apache Software Foundation (ASF) under one
4+
or more contributor license agreements. See the NOTICE file
5+
distributed with this work for additional information
6+
regarding copyright ownership. The ASF licenses this file
7+
to you under the Apache License, Version 2.0 (the
8+
"License"); you may not use this file except in compliance
9+
with the License. You may obtain a copy of the License at
10+
11+
http://www.apache.org/licenses/LICENSE-2.0
12+
13+
Unless required by applicable law or agreed to in writing,
14+
software distributed under the License is distributed on an
15+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
KIND, either express or implied. See the License for the
17+
specific language governing permissions and limitations
18+
under the License.
19+
20+
-->
21+
22+
# Frequently Asked Questions
23+
24+
## 1. General FAQ
25+
26+
### 1.1 How can I identify my version of IoTDB?
27+
28+
There are several ways to identify the version of IoTDB that you are using:
29+
30+
* Launch IoTDB's Command Line Interface:
31+
32+
```
33+
> ./start-cli.sh -p 6667 -pw root -u root -h localhost
34+
_____ _________ ______ ______
35+
|_ _| | _ _ ||_ _ `.|_ _ \
36+
| | .--.|_/ | | \_| | | `. \ | |_) |
37+
| | / .'`\ \ | | | | | | | __'.
38+
_| |_| \__. | _| |_ _| |_.' /_| |__) |
39+
|_____|'.__.' |_____| |______.'|_______/ version x.x.x
40+
```
41+
42+
* Check pom.xml file:
43+
44+
```
45+
<version>x.x.x</version>
46+
```
47+
48+
* Use JDBC API:
49+
50+
```
51+
String iotdbVersion = tsfileDatabaseMetadata.getDatabaseProductVersion();
52+
```
53+
54+
* Use Command Line Interface:
55+
56+
```
57+
IoTDB> show version
58+
show version
59+
+---------------+
60+
|version |
61+
+---------------+
62+
|x.x.x |
63+
+---------------+
64+
Total line number = 1
65+
It costs 0.241s
66+
```
67+
68+
### 1.2 Where can I find IoTDB logs?
69+
70+
Suppose your root directory is:
71+
72+
```
73+
$ pwd
74+
/workspace/iotdb
75+
76+
$ ls -l
77+
server/
78+
cli/
79+
pom.xml
80+
Readme.md
81+
...
82+
```
83+
84+
Let `$IOTDB_HOME = /workspace/iotdb/server/target/iotdb-server-{project.version}`
85+
86+
Let `$IOTDB_CLI_HOME = /workspace/iotdb/cli/target/iotdb-cli-{project.version}`
87+
88+
By default settings, the logs are stored under ```IOTDB_HOME/logs```. You can change log level and storage path by configuring ```logback.xml``` under ```IOTDB_HOME/conf```.
89+
90+
### 1.3 Where can I find IoTDB data files?
91+
92+
By default settings, the data files (including tsfile, metadata, and WAL files) are stored under ```IOTDB_HOME/data/datanode```.
93+
94+
### 1.4 Can I use Spark to read TsFile in IoTDB?
95+
96+
Yes. IoTDB has intense integration with Open Source Ecosystem. IoTDB supports [Spark](../Ecosystem-Integration/Spark-IoTDB.md) visualization tool.
97+
98+
### 1.5 How can I change IoTDB's Cli time display format?
99+
100+
The default IoTDB's Cli time display format is readable (e.g. ```1970-01-01T08:00:00.001```), if you want to display time in timestamp type or other readable format, add parameter ```-disableISO8601``` in start command:
101+
102+
```
103+
> $IOTDB_CLI_HOME/sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root -disableISO8601
104+
```
105+
106+
### 1.6 How to handle error `IndexOutOfBoundsException` from `org.apache.ratis.grpc.server.GrpcLogAppender`?
107+
108+
This is an internal error log from Ratis 2.4.1, our dependency, and no impact on data writes or reads is expected.
109+
It has been reported to the Ratis community and will be fixed in the future releases.
110+
111+
### 1.7 How to deal with estimated out of memory errors?
112+
113+
Report an error message:
114+
```
115+
301: There is not enough memory to execute current fragment instance, current remaining free memory is 86762854, estimated memory usage for current fragment instance is 270139392
116+
```
117+
Error analysis:
118+
The datanode_memory_proportion parameter controls the memory divided to the query, and the chunk_timeseriesmeta_free_memory_proportion parameter controls the memory available for query execution.
119+
By default the memory allocated to the query is 30% of the heap memory and the memory available for query execution is 20% of the query memory.
120+
The error report shows that the current remaining memory available for query execution is 86762854B = 82.74MB, and the query is estimated to use 270139392B = 257.6MB of execution memory.
121+
122+
Some possible improvement items:
123+
124+
- Without changing the default parameters, crank up the heap memory of IoTDB greater than 4.2G (4.2G * 1024MB = 4300MB), 4300M * 30% * 20% = 258M > 257.6M, which can fulfill the requirement.
125+
- Change parameters such as datanode_memory_proportion so that the available memory for query execution is >257.6MB.
126+
- Reduce the number of exported time series.
127+
- Add slimit limit to the query statement, which is also an option to reduce the query time series.
128+
- Add align by device, which will export in device order, and the memory usage will be reduced to single-device level.
129+
130+
It is an internal error introduced by Ratis 2.4.1 dependency, and we can safely ignore this exception as it will
131+
not affect normal operations. We will fix this message in the incoming releases.
132+
133+
## 2. FAQ for Cluster Setup
134+
135+
### 2.1 Cluster StartUp and Stop
136+
137+
#### Failed to start ConfigNode for the first time, how to find the reason?
138+
139+
- Make sure that the data/confignode directory is cleared when start ConfigNode for the first time.
140+
- Make sure that the <IP+Port> used by ConfigNode is not occupied, and the <IP+Port> is also not conflicted with other ConfigNodes.
141+
- Make sure that the `cn_seed_config_node` is configured correctly, which points to the alive ConfigNode. And if the ConfigNode is started for the first time, make sure that `cn_seed_config_node` points to itself.
142+
- Make sure that the configuration(consensus protocol and replica number) of the started ConfigNode is accord with the `cn_seed_config_node` ConfigNode.
143+
144+
#### ConfigNode is started successfully, but why the node doesn't appear in the results of `show cluster`?
145+
146+
- Examine whether the `cn_seed_config_node` points to the correct address. If `cn_seed_config_node` points to itself, a new ConfigNode cluster is started.
147+
148+
#### Failed to start DataNode for the first time, how to find the reason?
149+
150+
- Make sure that the data/datanode directory is cleared when start DataNode for the first time. If the start result is “Reject DataNode restart.”, maybe the data/datanode directory is not cleared.
151+
- Make sure that the <IP+Port> used by DataNode is not occupied, and the <IP+Port> is also not conflicted with other DataNodes.
152+
- Make sure that the `dn_seed_config_node` points to the alive ConfigNode.
153+
154+
#### Failed to remove DataNode, how to find the reason?
155+
156+
- Examine whether the parameter of `remove-datanode.sh` is correct, only rpcIp:rpcPort and dataNodeId are correct parameter.
157+
- Only when the number of available DataNodes in the cluster is greater than max(schema_replication_factor, data_replication_factor), removing operation can be executed.
158+
- Removing DataNode will migrate the data from the removing DataNode to other alive DataNodes. Data migration is based on Region, if some regions are migrated failed, the removing DataNode will always in the status of `Removing`.
159+
- If the DataNode is in the status of `Removing`, the regions in the removing DataNode will also in the status of `Removing` or `Unknown`, which are unavailable status. Besides, the removing DataNode will not receive new write requests from client.
160+
And users can use the command `set system status to running` to make the status of DataNode from Removing to Running;
161+
If users want to make the Regions from Removing to available status, command `migrate region from datanodeId1 to datanodeId2` can take effect, this command can migrate the regions to other alive DataNodes.
162+
Besides, IoTDB will publish `remove-datanode.sh -f` command in the next version, which can remove DataNodes forced (The failed migrated regions will be discarded).
163+
164+
#### Whether the down DataNode can be removed?
165+
166+
- The down DataNode can be removed only when the replica factor of schema and data is greater than 1.
167+
Besides, IoTDB will publish `remove-datanode.sh -f` function in the next version.
168+
169+
#### What should be paid attention to when upgrading from 0.13 to 1.0?
170+
171+
- The file structure between 0.13 and 1.0 is different, we can't copy the data directory from 0.13 to 1.0 to use directly.
172+
If you want to load the data from 0.13 to 1.0, you can use the LOAD function.
173+
- The default RPC address of 0.13 is `0.0.0.0`, but the default RPC address of 1.0 is `127.0.0.1`.
174+
175+
176+
### 2.2 Cluster Restart
177+
178+
#### How to restart any ConfigNode in the cluster?
179+
180+
- First step: stop the process by `stop-confignode.sh` or kill PID of ConfigNode.
181+
- Second step: execute `start-confignode.sh` to restart ConfigNode.
182+
183+
#### How to restart any DataNode in the cluster?
184+
185+
- First step: stop the process by `stop-datanode.sh` or kill PID of DataNode.
186+
- Second step: execute `start-datanode.sh` to restart DataNode.
187+
188+
#### If it's possible to restart ConfigNode using the old data directory when it's removed?
189+
190+
- Can't. The running result will be "Reject ConfigNode restart. Because there are no corresponding ConfigNode(whose nodeId=xx) in the cluster".
191+
192+
#### If it's possible to restart DataNode using the old data directory when it's removed?
193+
194+
- Can't. The running result will be "Reject DataNode restart. Because there are no corresponding DataNode(whose nodeId=xx) in the cluster. Possible solutions are as follows:...".
195+
196+
#### Can we execute `start-confignode.sh`/`start-datanode.sh` successfully when delete the data directory of given ConfigNode/DataNode without killing the PID?
197+
198+
- Can't. The running result will be "The port is already occupied".
199+
200+
### 2.3 Cluster Maintenance
201+
202+
#### How to find the reason when Show cluster failed, and error logs like "please check server status" are shown?
203+
204+
- Make sure that more than one half ConfigNodes are alive.
205+
- Make sure that the DataNode connected by the client is alive.
206+
207+
#### How to fix one DataNode when the disk file is broken?
208+
209+
- We can use `remove-datanode.sh` to fix it. Remove-datanode will migrate the data in the removing DataNode to other alive DataNodes.
210+
- IoTDB will publish Node-Fix tools in the next version.
211+
212+
#### How to decrease the memory usage of ConfigNode/DataNode?
213+
214+
- Adjust the ON_HEAP_MEMORY、OFF_HEAP_MEMORY options in conf/confignode-env.sh and conf/datanode-env.sh.

0 commit comments

Comments
 (0)