blob: c483a9f011fa40fb6f67f208615451b07dfcce67 [file] [log] [blame]
import{_ as e,a as n,b as a}from"./AINode部署环境-C7ZODulC.js";import{_ as t,c as l,b as o,o as i}from"./app-C8175JBb.js";const r={};function p(d,s){return i(),l("div",null,s[0]||(s[0]=[o('<h1 id="ainode-deployment" tabindex="-1"><a class="header-anchor" href="#ainode-deployment"><span>AINode Deployment</span></a></h1><h2 id="_1-ainode-introduction" tabindex="-1"><a class="header-anchor" href="#_1-ainode-introduction"><span>1. AINode Introduction</span></a></h2><h3 id="_1-1-capability-introduction" tabindex="-1"><a class="header-anchor" href="#_1-1-capability-introduction"><span>1.1 Capability Introduction</span></a></h3><p>AINode is the third type of endogenous node provided by IoTDB after the Configurable Node and DataNode. This node extends its ability to perform machine learning analysis on time series by interacting with the DataNode and Configurable Node of the IoTDB cluster. It supports the introduction of existing machine learning models from external sources for registration and the use of registered models to complete time series analysis tasks on specified time series data through simple SQL statements. The creation, management, and inference of models are integrated into the database engine. Currently, machine learning algorithms or self-developed models are available for common time series analysis scenarios, such as prediction and anomaly detection.</p><h3 id="_1-2-delivery-method" tabindex="-1"><a class="header-anchor" href="#_1-2-delivery-method"><span>1.2 Delivery Method</span></a></h3><p>It is an additional package outside the IoTDB cluster, with independent installation and activation.</p><h3 id="_1-3-deployment-mode" tabindex="-1"><a class="header-anchor" href="#_1-3-deployment-mode"><span>1.3 Deployment mode</span></a></h3><div><img src="'+e+'" alt="" style="width:45%;"><img src="'+n+'" alt="" style="width:45%;"></div><h2 id="_2-installation-preparation" tabindex="-1"><a class="header-anchor" href="#_2-installation-preparation"><span>2. Installation preparation</span></a></h2><h3 id="_2-1-get-installation-package" tabindex="-1"><a class="header-anchor" href="#_2-1-get-installation-package"><span>2.1 Get installation package</span></a></h3><p>Users can download the software installation package for AINode, download and unzip it to complete the installation of AINode.</p><p>Unzip and install the package<br><code>(apache-iotdb-&lt;version&gt;-ainode-bin.zip)</code>, The directory structure after unpacking the installation package is as follows:</p><table><thead><tr><th><strong>Catalogue</strong></th><th><strong>Type</strong></th><th><strong>Explain</strong></th></tr></thead><tbody><tr><td>lib</td><td>folder</td><td>AINode compiled binary executable files and related code dependencies</td></tr><tr><td>sbin</td><td>folder</td><td>The running script of AINode can start, remove, and stop AINode</td></tr><tr><td>conf</td><td>folder</td><td>Contains configuration items for AINode, specifically including the following configuration items</td></tr><tr><td>LICENSE</td><td>file</td><td>Certificate</td></tr><tr><td>NOTICE</td><td>file</td><td>Tips</td></tr><tr><td>README_ZH.md</td><td>file</td><td>Explanation of the Chinese version of the markdown format</td></tr><tr><td><code>README.md</code></td><td>file</td><td>Instructions</td></tr></tbody></table><h3 id="_2-2-environment-preparation" tabindex="-1"><a class="header-anchor" href="#_2-2-environment-preparation"><span>2.2 Environment preparation</span></a></h3><ul><li><p>Suggested operating environment:Ubuntu, CentOS, MacOS</p></li><li><p>Runtime Environment</p><ul><li><p>Python&gt;=3.8 and Python &lt;= 3.14 is sufficient in a networked environment, and comes with pip and venv tools; Python 3.8 version is required for non networked environments, and download the zip package for the corresponding operating system from <a href="https://cloud.tsinghua.edu.cn/d/4c1342f6c272439aa96c/?p=%2Flibs&amp;mode=list" target="_blank" rel="noopener noreferrer">here</a> (Note that when downloading dependencies, you need to select the zip file in the libs folder, as shown in the following figure). Copy all files in the folder to the <code>lib</code> folder in the <code>apache-iotdb-&lt;version&gt;-ainode-bin</code> folder, and follow the steps below to start AINode.</p><img src="'+a+`" alt="" style="width:80%;"></li><li><p>There must be a Python interpreter in the environment variables that can be directly called through the <code>python</code> instruction.</p></li><li><p>It is recommended to create a Python interpreter venv virtual environment in the <code>apache-iotdb-&lt;version&gt;-ainode-bin</code> folder. If installing version 3.8.0 virtual environment, the statement is as follows:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Install version 3.8.0 of Venv , Create a virtual environment with the folder name \`venv\`.</span></span>
<span class="line"><span style="color:#56B6C2;"> .</span><span style="color:#98C379;">./Python-3.8.0/python</span><span style="color:#D19A66;"> -m</span><span style="color:#98C379;"> venv</span><span style="color:#98C379;"> \`</span><span style="color:#61AFEF;">venv</span><span style="color:#98C379;">\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div></li></ul></li></ul><h2 id="_3-installation-steps" tabindex="-1"><a class="header-anchor" href="#_3-installation-steps"><span>3. Installation steps</span></a></h2><h3 id="_3-1-install-ainode" tabindex="-1"><a class="header-anchor" href="#_3-1-install-ainode"><span>3.1 Install AINode</span></a></h3><ol><li>Check the kernel architecture of Linux</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> uname</span><span style="color:#D19A66;"> -m</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><ol start="2"><li>Import Python environment <a href="https://repo.anaconda.com/miniconda/" target="_blank" rel="noopener noreferrer">Download</a></li></ol><p>Recommend downloading the py311 version application and importing it into the iotdb dedicated folder in the user&#39;s root directory</p><ol start="3"><li>Switch to the iotdb dedicated folder to install the Python environment</li></ol><p>Taking Miniconda 3-py311_24.5.0-0-Lux-x86_64 as an example:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> ./Miniconda3-py311_24.5.0-0-Linux-x86_64.sh</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><blockquote><p>Type &quot;Enter&quot;, &quot;Long press space&quot;, &quot;Enter&quot;, &quot;Yes&quot;, &quot;Yes&quot; according to the prompt <br><br> Close the current SSH window and reconnect</p></blockquote><ol start="4"><li>Create a dedicated environment</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> conda</span><span style="color:#98C379;"> create</span><span style="color:#D19A66;"> -n</span><span style="color:#98C379;"> ainode_py</span><span style="color:#98C379;"> python=</span><span style="color:#D19A66;">3.11.9</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>Type &#39;y&#39; according to the prompt</p><ol start="5"><li>Activate dedicated environment</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> conda</span><span style="color:#98C379;"> activate</span><span style="color:#98C379;"> ainode_py</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><ol start="6"><li>Verify Python version</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> python</span><span style="color:#D19A66;"> --version</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><ol start="7"><li>Download and import AINode to a dedicated folder, switch to the dedicated folder and extract the installation package</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> unzip</span><span style="color:#98C379;"> iotdb-enterprise-ainode-1.3.3.2.zip</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><ol start="8"><li>Configuration item modification</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> vi</span><span style="color:#98C379;"> iotdb-enterprise-ainode-1.3.3.2/conf/iotdb-ainode.properties</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>Configuration item modification:<a href="#configuration-item-modification">detailed information</a></p><blockquote><p>ain_seed_config_node=iotdb-1:10710 (Cluster communication node IP: communication node port)<br><br> ain_inference_rpc_address=iotdb-3 (IP address of the server running AINode)</p></blockquote><ol start="9"><li>Replace Python source</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> pip</span><span style="color:#98C379;"> config</span><span style="color:#98C379;"> set</span><span style="color:#98C379;"> global.index-url</span><span style="color:#98C379;"> https://mirrors.aliyun.com/pypi/simple/</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><ol start="10"><li>Start the AINode node</li></ol><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> iotdb-enterprise-ainode-1.3.3.2/sbin/start-ainode.sh</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><blockquote><p>Return to the default environment of the system: conda deactivate</p></blockquote><h3 id="_3-2-configuration-item-modification" tabindex="-1"><a class="header-anchor" href="#_3-2-configuration-item-modification"><span>3.2 Configuration item modification</span></a></h3><p>AINode supports modifying some necessary parameters. You can find the following parameters in the <code>conf/iotdb-ainode.properties</code> file and make persistent modifications to them:<br> :</p><table><thead><tr><th style="text-align:left;"><strong>Name</strong></th><th><strong>Describe</strong></th><th><strong>Type</strong></th><th><strong>Default value</strong></th><th><strong>Effective method after modification</strong></th></tr></thead><tbody><tr><td style="text-align:left;">cluster_name</td><td>The identifier for AINode to join the cluster</td><td>string</td><td>defaultCluster</td><td>Only allow modifications before the first service startup</td></tr><tr><td style="text-align:left;">ain_seed_config_node</td><td>The Configurable Node address registered during AINode startup</td><td>String</td><td>127.0.0.1:10710</td><td>Only allow modifications before the first service startup</td></tr><tr><td style="text-align:left;">ain_inference_rpc_address</td><td>AINode provides service and communication addresses , Internal Service Communication Interface</td><td>String</td><td>127.0.0.1</td><td>Only allow modifications before the first service startup</td></tr><tr><td style="text-align:left;">ain_inference_rpc_port</td><td>AINode provides ports for services and communication</td><td>String</td><td>10810</td><td>Only allow modifications before the first service startup</td></tr><tr><td style="text-align:left;">ain_system_dir</td><td>AINode metadata storage path, the starting directory of the relative path is related to the operating system, and it is recommended to use an absolute path</td><td>String</td><td>data/AINode/system</td><td>Only allow modifications before the first service startup</td></tr><tr><td style="text-align:left;">ain_models_dir</td><td>AINode stores the path of the model file, and the starting directory of the relative path is related to the operating system. It is recommended to use an absolute path</td><td>String</td><td>data/AINode/models</td><td>Only allow modifications before the first service startup</td></tr><tr><td style="text-align:left;">ain_logs_dir</td><td>The path where AINode stores logs, the starting directory of the relative path is related to the operating system, and it is recommended to use an absolute path</td><td>String</td><td>logs/AINode</td><td>Effective after restart</td></tr><tr><td style="text-align:left;">ain_thrift_compression_enabled</td><td>Does AINode enable Thrift&#39;s compression mechanism , 0-Do not start, 1-Start</td><td>Boolean</td><td>0</td><td>Effective after restart</td></tr></tbody></table><h3 id="_3-3-start-ainode" tabindex="-1"><a class="header-anchor" href="#_3-3-start-ainode"><span>3.3 Start AINode</span></a></h3><p>After completing the deployment of Seed Config Node, the registration and inference functions of the model can be supported by adding AINode nodes. After specifying the information of the IoTDB cluster in the configuration file, the corresponding instruction can be executed to start AINode and join the IoTDB cluster。</p><h4 id="networking-environment-startup" tabindex="-1"><a class="header-anchor" href="#networking-environment-startup"><span>Networking environment startup</span></a></h4><h5 id="start-command" tabindex="-1"><a class="header-anchor" href="#start-command"><span>Start command</span></a></h5><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Start command</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\start-ainode.bat</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Backend startup command (recommended for long-term running)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin</span><span style="color:#56B6C2;">\\s</span><span style="color:#98C379;">tart-ainode.bat</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="detailed-syntax" tabindex="-1"><a class="header-anchor" href="#detailed-syntax"><span>Detailed Syntax</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Start command</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#D19A66;"> -i</span><span style="color:#ABB2BF;"> &lt;</span><span style="color:#98C379;">bin_pat</span><span style="color:#ABB2BF;">h&gt; </span><span style="color:#D19A66;">-r</span><span style="color:#D19A66;"> -n</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\start-ainode.bat</span><span style="color:#D19A66;"> -i</span><span style="color:#ABB2BF;"> &lt;</span><span style="color:#98C379;">bin_pat</span><span style="color:#ABB2BF;">h&gt; </span><span style="color:#D19A66;">-r</span><span style="color:#D19A66;"> -n</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h5 id="parameter-introduction" tabindex="-1"><a class="header-anchor" href="#parameter-introduction"><span>Parameter introduction:</span></a></h5><table><thead><tr><th><strong>Name</strong></th><th><strong>Label</strong></th><th><strong>Describe</strong></th><th><strong>Is it mandatory</strong></th><th><strong>Type</strong></th><th><strong>Default value</strong></th><th><strong>Input method</strong></th></tr></thead><tbody><tr><td>ain_interpreter_dir</td><td>-i</td><td>The interpreter path of the virtual environment where AINode is installed requires the use of an absolute path.</td><td>no</td><td>String</td><td>Default reading of environment variables</td><td>Input or persist modifications during invocation</td></tr><tr><td>ain_force_reinstall</td><td>-r</td><td>Does this script check the version when checking the installation status of AINode. If it does, it will force the installation of the whl package in lib if the version is incorrect.</td><td>no</td><td>Bool</td><td>false</td><td>Input when calling</td></tr><tr><td>ain_no_dependencies</td><td>-n</td><td>Specify whether to install dependencies when installing AINode, and if so, only install the AINode main program without installing dependencies.</td><td>no</td><td>Bool</td><td>false</td><td>Input when calling</td></tr></tbody></table><p>If you don&#39;t want to specify the corresponding parameters every time you start, you can also persistently modify the parameters in the <code>ainode-env.sh</code> and <code>ainode-env.bat</code> scripts in the <code>conf</code> folder (currently supporting persistent modification of the ain_interpreter-dir parameter).</p><p><code>ainode-env.sh</code> :</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # The defaulte venv environment is used if ain_interpreter_dir is not set. Please use absolute path without quotation mark</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # ain_interpreter_dir=</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p><code>ainode-env.bat</code> :</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> @REM</span><span style="color:#98C379;"> The</span><span style="color:#98C379;"> defaulte</span><span style="color:#98C379;"> venv</span><span style="color:#98C379;"> environment</span><span style="color:#98C379;"> is</span><span style="color:#98C379;"> used</span><span style="color:#98C379;"> if</span><span style="color:#98C379;"> ain_interpreter_dir</span><span style="color:#98C379;"> is</span><span style="color:#98C379;"> not</span><span style="color:#98C379;"> set.</span><span style="color:#98C379;"> Please</span><span style="color:#98C379;"> use</span><span style="color:#98C379;"> absolute</span><span style="color:#98C379;"> path</span><span style="color:#98C379;"> without</span><span style="color:#98C379;"> quotation</span><span style="color:#98C379;"> mark</span></span>
<span class="line"><span style="color:#61AFEF;"> @REM</span><span style="color:#98C379;"> set</span><span style="color:#98C379;"> ain_interpreter_dir=</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>After writing the parameter value, uncomment the corresponding line and save it to take effect on the next script execution.</p><h4 id="example" tabindex="-1"><a class="header-anchor" href="#example"><span>Example</span></a></h4><h5 id="directly-start" tabindex="-1"><a class="header-anchor" href="#directly-start"><span>Directly start:</span></a></h5><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Start command</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\start-ainode.bat</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Backend startup command (recommended for long-term running)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin</span><span style="color:#56B6C2;">\\s</span><span style="color:#98C379;">tart-ainode.bat</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h5 id="update-start" tabindex="-1"><a class="header-anchor" href="#update-start"><span>Update Start:</span></a></h5><p>If the version of AINode has been updated (such as updating the <code>lib</code> folder), this command can be used. Firstly, it is necessary to ensure that AINode has stopped running, and then restart it using the <code>-r</code> parameter, which will reinstall AINode based on the files under <code>lib</code>.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Update startup command</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#D19A66;"> -r</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\start-ainode.bat</span><span style="color:#D19A66;"> -r</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Backend startup command (recommended for long-term running)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#D19A66;"> -r</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows c</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin</span><span style="color:#56B6C2;">\\s</span><span style="color:#98C379;">tart-ainode.bat</span><span style="color:#D19A66;"> -r</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="non-networked-environment-startup" tabindex="-1"><a class="header-anchor" href="#non-networked-environment-startup"><span>Non networked environment startup</span></a></h4><h5 id="start-command-1" tabindex="-1"><a class="header-anchor" href="#start-command-1"><span>Start command</span></a></h5><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Start command</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\start-ainode.bat</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Backend startup command (recommended for long-term running)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin</span><span style="color:#56B6C2;">\\s</span><span style="color:#98C379;">tart-ainode.bat</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="detailed-syntax-1" tabindex="-1"><a class="header-anchor" href="#detailed-syntax-1"><span>Detailed Syntax</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Start command</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#D19A66;"> -i</span><span style="color:#ABB2BF;"> &lt;</span><span style="color:#98C379;">bin_pat</span><span style="color:#ABB2BF;">h&gt; </span><span style="color:#D19A66;">-r</span><span style="color:#D19A66;"> -n</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\start-ainode.bat</span><span style="color:#D19A66;"> -i</span><span style="color:#ABB2BF;"> &lt;</span><span style="color:#98C379;">bin_pat</span><span style="color:#ABB2BF;">h&gt; </span><span style="color:#D19A66;">-r</span><span style="color:#D19A66;"> -n</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h5 id="parameter-introduction-1" tabindex="-1"><a class="header-anchor" href="#parameter-introduction-1"><span>Parameter introduction:</span></a></h5><table><thead><tr><th><strong>Name</strong></th><th><strong>Label</strong></th><th><strong>Describe</strong></th><th><strong>Is it mandatory</strong></th><th><strong>Type</strong></th><th><strong>Default value</strong></th><th><strong>Input method</strong></th></tr></thead><tbody><tr><td>ain_interpreter_dir</td><td>-i</td><td>The interpreter path of the virtual environment where AINode is installed requires the use of an absolute path</td><td>no</td><td>String</td><td>Default reading of environment variables</td><td>Input or persist modifications during invocation</td></tr><tr><td>ain_force_reinstall</td><td>-r</td><td>Does this script check the version when checking the installation status of AINode. If it does, it will force the installation of the whl package in lib if the version is incorrect</td><td>no</td><td>Bool</td><td>false</td><td>Input when calling</td></tr></tbody></table><blockquote><p>Attention: When installation fails in a non networked environment, first check if the installation package corresponding to the platform is selected, and then confirm that the Python version is 3.8 (due to the limitations of the downloaded installation package on Python versions, 3.7, 3.9, and others are not allowed)</p></blockquote><h4 id="example-1" tabindex="-1"><a class="header-anchor" href="#example-1"><span>Example</span></a></h4><h5 id="directly-start-1" tabindex="-1"><a class="header-anchor" href="#directly-start-1"><span>Directly start:</span></a></h5><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Start command</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\start-ainode.bat</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Backend startup command (recommended for long-term running)</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux and MacOS systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin/start-ainode.sh</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows systems</span></span>
<span class="line"><span style="color:#61AFEF;"> nohup</span><span style="color:#98C379;"> bash</span><span style="color:#98C379;"> sbin</span><span style="color:#56B6C2;">\\s</span><span style="color:#98C379;">tart-ainode.bat</span><span style="color:#ABB2BF;"> &gt; </span><span style="color:#98C379;">myout.file</span><span style="color:#ABB2BF;"> 2&gt;&amp; </span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;"> &amp;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_3-4-detecting-the-status-of-ainode-nodes" tabindex="-1"><a class="header-anchor" href="#_3-4-detecting-the-status-of-ainode-nodes"><span>3.4 Detecting the status of AINode nodes</span></a></h3><p>During the startup process of AINode, the new AINode will be automatically added to the IoTDB cluster. After starting AINode, you can enter SQL in the command line to query. If you see an AINode node in the cluster and its running status is Running (as shown below), it indicates successful joining.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">IoTDB</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#98C379;">show</span><span style="color:#98C379;"> cluster</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span>
<span class="line"><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">NodeID</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">NodeType</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">Status</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">InternalAddress</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">InternalPort</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Version</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">BuildInfo</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">0</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">ConfigNode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Running</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10710</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">DataNode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Running</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10730</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">2</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">AINode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Running</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10810</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_3-5-stop-ainode" tabindex="-1"><a class="header-anchor" href="#_3-5-stop-ainode"><span>3.5 Stop AINode</span></a></h3><p>If you need to stop a running AINode node, execute the corresponding shutdown script.</p><h4 id="stop-command" tabindex="-1"><a class="header-anchor" href="#stop-command"><span>Stop command</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux / MacOS </span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/stop-ainode.sh</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> #Windows</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\stop-ainode.bat</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="detailed-syntax-2" tabindex="-1"><a class="header-anchor" href="#detailed-syntax-2"><span>Detailed Syntax</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux / MacOS </span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/stop-ainode.sh</span><span style="color:#D19A66;"> -t</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">AINode-id</span><span style="color:#ABB2BF;">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> #Windows</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\stop-ainode.bat</span><span style="color:#D19A66;"> -t</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">AINode-id</span><span style="color:#ABB2BF;">&gt;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h5 id="parameter-introduction-2" tabindex="-1"><a class="header-anchor" href="#parameter-introduction-2"><span>Parameter introduction:</span></a></h5><table><thead><tr><th><strong>Name</strong></th><th><strong>Label</strong></th><th><strong>Describe</strong></th><th><strong>Is it mandatory</strong></th><th><strong>Type</strong></th><th><strong>Default value</strong></th><th><strong>Input method</strong></th></tr></thead><tbody><tr><td>ain_remove_target</td><td>-t</td><td>When closing AINode, you can specify the Node ID, address, and port number of the target AINode to be removed, in the format of <code>&lt;AINode id&gt;</code></td><td>no</td><td>String</td><td>nothing</td><td>Input when calling</td></tr></tbody></table><h4 id="example-2" tabindex="-1"><a class="header-anchor" href="#example-2"><span>Example</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux / MacOS </span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/stop-ainode.sh</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\stop-ainode.bat</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>After stopping AINode, you can still see AINode nodes in the cluster, whose running status is UNKNOWN (as shown below), and the AINode function cannot be used at this time.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">IoTDB</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#98C379;">show</span><span style="color:#98C379;"> cluster</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span>
<span class="line"><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">NodeID</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">NodeType</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">Status</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">InternalAddress</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">InternalPort</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Version</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">BuildInfo</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">0</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">ConfigNode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Running</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10710</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">DataNode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Running</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10730</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">2</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">AINode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10790</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>If you need to restart the node, you need to execute the startup script again.</p><h3 id="_3-6-remove-ainode" tabindex="-1"><a class="header-anchor" href="#_3-6-remove-ainode"><span>3.6 Remove AINode</span></a></h3><p>When it is necessary to remove an AINode node from the cluster, a removal script can be executed. The difference between removing and stopping scripts is that stopping retains the AINode node in the cluster but stops the AINode service, while removing removes the AINode node from the cluster.</p><h4 id="remove-command" tabindex="-1"><a class="header-anchor" href="#remove-command"><span>Remove command</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux / MacOS </span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/remove-ainode.sh</span><span style="color:#ABB2BF;"> </span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\remove-ainode.bat</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="detailed-syntax-3" tabindex="-1"><a class="header-anchor" href="#detailed-syntax-3"><span>Detailed Syntax</span></a></h4><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # Linux / MacOS </span></span>
<span class="line"><span style="color:#61AFEF;"> bash</span><span style="color:#98C379;"> sbin/remove-ainode.sh</span><span style="color:#D19A66;"> -i</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">bin_path</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;"> -t</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">AINode-id</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;">/</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">ip</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;">:</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">rpc-port</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;"> -r</span><span style="color:#D19A66;"> -n</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # Windows</span></span>
<span class="line"><span style="color:#61AFEF;"> sbin\\remove-ainode.bat</span><span style="color:#D19A66;"> -i</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">bin_path</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;"> -t</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">AINode-id</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;">/</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">ip</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;">:</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#D19A66;">rpc-port</span><span style="color:#ABB2BF;">&gt;</span><span style="color:#D19A66;"> -r</span><span style="color:#D19A66;"> -n</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h5 id="parameter-introduction-3" tabindex="-1"><a class="header-anchor" href="#parameter-introduction-3"><span>Parameter introduction:</span></a></h5><table><thead><tr><th><strong>Name</strong></th><th><strong>Label</strong></th><th><strong>Describe</strong></th><th><strong>Is it mandatory</strong></th><th><strong>Type</strong></th><th><strong>Default value</strong></th><th><strong>Input method</strong></th></tr></thead><tbody><tr><td>ain_interpreter_dir</td><td>-i</td><td>The interpreter path of the virtual environment where AINode is installed requires the use of an absolute path</td><td>no</td><td>String</td><td>Default reading of environment variables</td><td>Input+persistent modification during invocation</td></tr><tr><td>ain_remove_target</td><td>-t</td><td>When closing AINode, you can specify the Node ID, address, and port number of the target AINode to be removed, in the format of <code>&lt;AINode id&gt;</code></td><td>no</td><td>String</td><td>nothing</td><td>Input when calling</td></tr><tr><td>ain_force_reinstall</td><td>-r</td><td>Does this script check the version when checking the installation status of AINode. If it does, it will force the installation of the whl package in lib if the version is incorrect</td><td>no</td><td>Bool</td><td>false</td><td>Input when calling</td></tr><tr><td>ain_no_dependencies</td><td>-n</td><td>Specify whether to install dependencies when installing AINode, and if so, only install the AINode main program without installing dependencies</td><td>no</td><td>Bool</td><td>false</td><td>Input when calling</td></tr></tbody></table><p>If you don&#39;t want to specify the corresponding parameters every time you start, you can also persistently modify the parameters in the <code>ainode-env.sh</code> and <code>ainode-env.bat</code> scripts in the <code>conf</code> folder (currently supporting persistent modification of the ain_interpreter-dir parameter).</p><p><code>ainode-env.sh</code> :</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"> # The defaulte venv environment is used if ain_interpreter_dir is not set. Please use absolute path without quotation mark</span></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"> # ain_interpreter_dir=</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p><code>ainode-env.bat</code> :</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;"> @REM</span><span style="color:#98C379;"> The</span><span style="color:#98C379;"> defaulte</span><span style="color:#98C379;"> venv</span><span style="color:#98C379;"> environment</span><span style="color:#98C379;"> is</span><span style="color:#98C379;"> used</span><span style="color:#98C379;"> if</span><span style="color:#98C379;"> ain_interpreter_dir</span><span style="color:#98C379;"> is</span><span style="color:#98C379;"> not</span><span style="color:#98C379;"> set.</span><span style="color:#98C379;"> Please</span><span style="color:#98C379;"> use</span><span style="color:#98C379;"> absolute</span><span style="color:#98C379;"> path</span><span style="color:#98C379;"> without</span><span style="color:#98C379;"> quotation</span><span style="color:#98C379;"> mark</span></span>
<span class="line"><span style="color:#61AFEF;"> @REM</span><span style="color:#98C379;"> set</span><span style="color:#98C379;"> ain_interpreter_dir=</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>After writing the parameter value, uncomment the corresponding line and save it to take effect on the next script execution.</p><h4 id="example-3" tabindex="-1"><a class="header-anchor" href="#example-3"><span>Example</span></a></h4><h5 id="directly-remove" tabindex="-1"><a class="header-anchor" href="#directly-remove"><span>Directly remove:</span></a></h5><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># Linux / MacOS </span></span>
<span class="line"><span style="color:#61AFEF;">bash</span><span style="color:#98C379;"> sbin/remove-ainode.sh</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"># Windows</span></span>
<span class="line"><span style="color:#61AFEF;">sbin\\remove-ainode.bat</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>After removing the node, relevant information about the node cannot be queried.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">IoTDB</span><span style="color:#ABB2BF;">&gt; </span><span style="color:#98C379;">show</span><span style="color:#98C379;"> cluster</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span>
<span class="line"><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">NodeID</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">NodeType</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">Status</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">InternalAddress</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">InternalPort</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Version</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">BuildInfo</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">0</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">ConfigNode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Running</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10710</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">DataNode</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">Running</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">127.0.0.1</span><span style="color:#ABB2BF;">| </span><span style="color:#61AFEF;">10730</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">UNKNOWN</span><span style="color:#ABB2BF;">|</span><span style="color:#61AFEF;">190e303-dev</span><span style="color:#ABB2BF;">|</span></span>
<span class="line"><span style="color:#61AFEF;">+------+----------+-------+---------------+------------+-------+-----------+</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h5 id="specify-removal" tabindex="-1"><a class="header-anchor" href="#specify-removal"><span>Specify removal:</span></a></h5><p>If the user loses files in the data folder, AINode may not be able to actively remove them locally. The user needs to specify the node number, address, and port number for removal. In this case, we support users to input parameters according to the following methods for deletion.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#7F848E;font-style:italic;"># Linux / MacOS </span></span>
<span class="line"><span style="color:#61AFEF;">bash</span><span style="color:#98C379;"> sbin/remove-ainode.sh</span><span style="color:#D19A66;"> -t</span><span style="color:#ABB2BF;"> &lt;</span><span style="color:#98C379;">AINode-i</span><span style="color:#ABB2BF;">d&gt;</span><span style="color:#98C379;">/</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#98C379;">i</span><span style="color:#ABB2BF;">p&gt;</span><span style="color:#98C379;">:</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#98C379;">rpc-por</span><span style="color:#ABB2BF;">t&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#7F848E;font-style:italic;"># Windows</span></span>
<span class="line"><span style="color:#61AFEF;">sbin\\remove-ainode.bat</span><span style="color:#D19A66;"> -t</span><span style="color:#ABB2BF;"> &lt;</span><span style="color:#98C379;">AINode-i</span><span style="color:#ABB2BF;">d&gt;</span><span style="color:#98C379;">/</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#98C379;">i</span><span style="color:#ABB2BF;">p&gt;</span><span style="color:#98C379;">:</span><span style="color:#ABB2BF;">&lt;</span><span style="color:#98C379;">rpc-por</span><span style="color:#ABB2BF;">t&gt;</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_4-common-problem" tabindex="-1"><a class="header-anchor" href="#_4-common-problem"><span>4. common problem</span></a></h2><h3 id="_4-1-an-error-occurs-when-starting-ainode-stating-that-the-venv-module-cannot-be-found" tabindex="-1"><a class="header-anchor" href="#_4-1-an-error-occurs-when-starting-ainode-stating-that-the-venv-module-cannot-be-found"><span>4.1 An error occurs when starting AINode stating that the venv module cannot be found</span></a></h3><p>When starting AINode using the default method, a Python virtual environment will be created in the installation package directory and dependencies will be installed, so it is required to install the venv module. Generally speaking, Python 3.8 and above versions come with built-in VenV, but for some systems with built-in Python environments, this requirement may not be met. There are two solutions when this error occurs (choose one or the other):</p><p>To install the Venv module locally, taking Ubuntu as an example, you can run the following command to install the built-in Venv module in Python. Or install a Python version with built-in Venv from the Python official website.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">apt-get</span><span style="color:#98C379;"> install</span><span style="color:#98C379;"> python3.8-venv</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>Install version 3.8.0 of venv into AINode in the AINode path.</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#56B6C2;">.</span><span style="color:#98C379;">./Python-3.8.0/python</span><span style="color:#D19A66;"> -m</span><span style="color:#98C379;"> venv</span><span style="color:#98C379;"> venv</span><span style="color:#ABB2BF;">(</span><span style="color:#61AFEF;">Folder</span><span style="color:#98C379;"> Name)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>When running the startup script, use <code>-i</code> to specify an existing Python interpreter path as the running environment for AINode, eliminating the need to create a new virtual environment.</p><h3 id="_4-2-the-ssl-module-in-python-is-not-properly-installed-and-configured-to-handle-https-resources" tabindex="-1"><a class="header-anchor" href="#_4-2-the-ssl-module-in-python-is-not-properly-installed-and-configured-to-handle-https-resources"><span>4.2 The SSL module in Python is not properly installed and configured to handle HTTPS resources</span></a></h3><p>WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.<br> You can install OpenSSLS and then rebuild Python to solve this problem</p><blockquote><p>Currently Python versions 3.6 to 3.9 are compatible with OpenSSL 1.0.2, 1.1.0, and 1.1.1.</p></blockquote><p>Python requires OpenSSL to be installed on our system, the specific installation method can be found in <a href="https://stackoverflow.com/questions/56552390/how-to-fix-ssl-module-in-python-is-not-available-in-centos" target="_blank" rel="noopener noreferrer">link</a></p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">sudo</span><span style="color:#98C379;"> apt-get</span><span style="color:#98C379;"> install</span><span style="color:#98C379;"> build-essential</span><span style="color:#98C379;"> libssl-dev</span><span style="color:#98C379;"> zlib1g-dev</span><span style="color:#98C379;"> libbz2-dev</span><span style="color:#98C379;"> libreadline-dev</span><span style="color:#98C379;"> libsqlite3-dev</span><span style="color:#98C379;"> wget</span><span style="color:#98C379;"> curl</span><span style="color:#98C379;"> llvm</span><span style="color:#98C379;"> libncurses5-dev</span><span style="color:#98C379;"> libncursesw5-dev</span><span style="color:#98C379;"> xz-utils</span><span style="color:#98C379;"> tk-dev</span><span style="color:#98C379;"> libffi-dev</span><span style="color:#98C379;"> liblzma-dev</span><span style="color:#98C379;"> uuid-dev</span><span style="color:#98C379;"> lzma-dev</span><span style="color:#98C379;"> liblzma-dev</span></span>
<span class="line"><span style="color:#61AFEF;">sudo</span><span style="color:#D19A66;"> -E</span><span style="color:#98C379;"> ./configure</span><span style="color:#D19A66;"> --with-ssl</span></span>
<span class="line"><span style="color:#61AFEF;">make</span></span>
<span class="line"><span style="color:#61AFEF;">sudo</span><span style="color:#98C379;"> make</span><span style="color:#98C379;"> install</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_4-3-pip-version-is-lower" tabindex="-1"><a class="header-anchor" href="#_4-3-pip-version-is-lower"><span>4.3 Pip version is lower</span></a></h3><p>A compilation issue similar to &quot;error: Microsoft Visual C++14.0 or greater is required...&quot; appears on Windows</p><p>The corresponding error occurs during installation and compilation, usually due to insufficient C++version or Setup tools version. You can check it in</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">./python</span><span style="color:#D19A66;"> -m</span><span style="color:#98C379;"> pip</span><span style="color:#98C379;"> install</span><span style="color:#D19A66;"> --upgrade</span><span style="color:#98C379;"> pip</span></span>
<span class="line"><span style="color:#61AFEF;">./python</span><span style="color:#D19A66;"> -m</span><span style="color:#98C379;"> pip</span><span style="color:#98C379;"> install</span><span style="color:#D19A66;"> --upgrade</span><span style="color:#98C379;"> setuptools</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_4-4-install-and-compile-python" tabindex="-1"><a class="header-anchor" href="#_4-4-install-and-compile-python"><span>4.4 Install and compile Python</span></a></h3><p>Use the following instructions to download the installation package from the official website and extract it:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#61AFEF;">.wget</span><span style="color:#98C379;"> https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz</span></span>
<span class="line"><span style="color:#61AFEF;">tar</span><span style="color:#98C379;"> Jxf</span><span style="color:#98C379;"> Python-3.8.0.tar.xz</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>Compile and install the corresponding Python package:</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" data-title="shell" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code><span class="line"><span style="color:#56B6C2;">cd</span><span style="color:#98C379;"> Python-3.8.0</span></span>
<span class="line"><span style="color:#61AFEF;">./configure</span><span style="color:#98C379;"> prefix=/usr/local/python3</span></span>
<span class="line"><span style="color:#61AFEF;">make</span></span>
<span class="line"><span style="color:#61AFEF;">sudo</span><span style="color:#98C379;"> make</span><span style="color:#98C379;"> install</span></span>
<span class="line"><span style="color:#61AFEF;">python3</span><span style="color:#D19A66;"> --version</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,138)]))}const y=t(r,[["render",p],["__file","AINode_Deployment_apache.html.vue"]]),u=JSON.parse('{"path":"/UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_apache.html","title":"AINode Deployment","lang":"en-US","frontmatter":{"description":"AINode Deployment 1. AINode Introduction 1.1 Capability Introduction AINode is the third type of endogenous node provided by IoTDB after the Configurable Node and DataNode. This...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://iotdb.apache.org/zh/UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_apache.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_apache.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"AINode Deployment"}],["meta",{"property":"og:description","content":"AINode Deployment 1. AINode Introduction 1.1 Capability Introduction AINode is the third type of endogenous node provided by IoTDB after the Configurable Node and DataNode. This..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-04-17T11:00:22.000Z"}],["meta",{"property":"article:modified_time","content":"2025-04-17T11:00:22.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"AINode Deployment\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-04-17T11:00:22.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"1. AINode Introduction","slug":"_1-ainode-introduction","link":"#_1-ainode-introduction","children":[{"level":3,"title":"1.1 Capability Introduction","slug":"_1-1-capability-introduction","link":"#_1-1-capability-introduction","children":[]},{"level":3,"title":"1.2 Delivery Method","slug":"_1-2-delivery-method","link":"#_1-2-delivery-method","children":[]},{"level":3,"title":"1.3 Deployment mode","slug":"_1-3-deployment-mode","link":"#_1-3-deployment-mode","children":[]}]},{"level":2,"title":"2. Installation preparation","slug":"_2-installation-preparation","link":"#_2-installation-preparation","children":[{"level":3,"title":"2.1 Get installation package","slug":"_2-1-get-installation-package","link":"#_2-1-get-installation-package","children":[]},{"level":3,"title":"2.2 Environment preparation","slug":"_2-2-environment-preparation","link":"#_2-2-environment-preparation","children":[]}]},{"level":2,"title":"3. Installation steps","slug":"_3-installation-steps","link":"#_3-installation-steps","children":[{"level":3,"title":"3.1 Install AINode","slug":"_3-1-install-ainode","link":"#_3-1-install-ainode","children":[]},{"level":3,"title":"3.2 Configuration item modification","slug":"_3-2-configuration-item-modification","link":"#_3-2-configuration-item-modification","children":[]},{"level":3,"title":"3.3 Start AINode","slug":"_3-3-start-ainode","link":"#_3-3-start-ainode","children":[]},{"level":3,"title":"3.4 Detecting the status of AINode nodes","slug":"_3-4-detecting-the-status-of-ainode-nodes","link":"#_3-4-detecting-the-status-of-ainode-nodes","children":[]},{"level":3,"title":"3.5 Stop AINode","slug":"_3-5-stop-ainode","link":"#_3-5-stop-ainode","children":[]},{"level":3,"title":"3.6 Remove AINode","slug":"_3-6-remove-ainode","link":"#_3-6-remove-ainode","children":[]}]},{"level":2,"title":"4. common problem","slug":"_4-common-problem","link":"#_4-common-problem","children":[{"level":3,"title":"4.1 An error occurs when starting AINode stating that the venv module cannot be found","slug":"_4-1-an-error-occurs-when-starting-ainode-stating-that-the-venv-module-cannot-be-found","link":"#_4-1-an-error-occurs-when-starting-ainode-stating-that-the-venv-module-cannot-be-found","children":[]},{"level":3,"title":"4.2 The SSL module in Python is not properly installed and configured to handle HTTPS resources","slug":"_4-2-the-ssl-module-in-python-is-not-properly-installed-and-configured-to-handle-https-resources","link":"#_4-2-the-ssl-module-in-python-is-not-properly-installed-and-configured-to-handle-https-resources","children":[]},{"level":3,"title":"4.3 Pip version is lower","slug":"_4-3-pip-version-is-lower","link":"#_4-3-pip-version-is-lower","children":[]},{"level":3,"title":"4.4 Install and compile Python","slug":"_4-4-install-and-compile-python","link":"#_4-4-install-and-compile-python","children":[]}]}],"git":{"createdTime":1722498479000,"updatedTime":1744887622000,"contributors":[{"name":"W1y1r","username":"W1y1r","email":"150988475+W1y1r@users.noreply.github.com","commits":13,"url":"https://github.com/W1y1r"},{"name":"majialin","username":"majialin","email":"107627937+mal117@users.noreply.github.com","commits":1,"url":"https://github.com/majialin"},{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":1,"url":"https://github.com/CritasWang"},{"name":"leto-b","username":"leto-b","email":"bingqian.bai@timecho.com","commits":2,"url":"https://github.com/leto-b"}]},"readingTime":{"minutes":10,"words":3001},"filePathRelative":"UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_apache.md","localizedDate":"August 1, 2024","autoDesc":true}');export{y as comp,u as data};