blob: 299ab13df623a29fafcfa910faaac61de72a7144 [file] [log] [blame]
import{_ as o,r as d,o as i,c as l,b as a,d as n,a as t,e as s}from"./app-B8FurBcp.js";const r={},p=s('<h1 id="ainode-部署" tabindex="-1"><a class="header-anchor" href="#ainode-部署"><span>AINode 部署</span></a></h1><h2 id="ainode介绍" tabindex="-1"><a class="header-anchor" href="#ainode介绍"><span>AINode介绍</span></a></h2><h3 id="能力介绍" tabindex="-1"><a class="header-anchor" href="#能力介绍"><span>能力介绍</span></a></h3><p>AINode 是 IoTDB 在 ConfigNode、DataNode 后提供的第三种内生节点,该节点通过与 IoTDB 集群的 DataNode、ConfigNode 的交互,扩展了对时间序列进行机器学习分析的能力,支持从外部引入已有机器学习模型进行注册,并使用注册的模型在指定时序数据上通过简单 SQL 语句完成时序分析任务的过程,将模型的创建、管理及推理融合在数据库引擎中。目前已提供常见时序分析场景(例如预测与异常检测)的机器学习算法或自研模型。</p><h3 id="交付方式" tabindex="-1"><a class="header-anchor" href="#交付方式"><span>交付方式</span></a></h3><p>是 IoTDB 集群外的额外套件,独立安装包,独立激活(如需试用或使用,请联系天谋科技商务或技术支持)。</p><h3 id="部署模式" tabindex="-1"><a class="header-anchor" href="#部署模式"><span>部署模式</span></a></h3><div><img src="https://alioss.timecho.com/docs/img/AINode部署1.png" alt="" style="width:45%;"><img src="https://alioss.timecho.com/docs/img/AINode部署2.png" alt="" style="width:45%;"></div><h2 id="安装准备" tabindex="-1"><a class="header-anchor" href="#安装准备"><span>安装准备</span></a></h2><h3 id="安装包获取" tabindex="-1"><a class="header-anchor" href="#安装包获取"><span>安装包获取</span></a></h3><p>用户可以下载AINode的软件安装包,下载并解压后即完成AINode的安装。</p><p>解压后安装包(<code>iotdb-enterprise-ainode-&lt;version&gt;.zip</code>),安装包解压后目录结构如下:</p><table><thead><tr><th><strong>目录</strong></th><th><strong>类型</strong></th><th><strong>说明</strong></th></tr></thead><tbody><tr><td>lib</td><td>文件夹</td><td>AINode编译后的二进制可执行文件以及相关的代码依赖</td></tr><tr><td>sbin</td><td>文件夹</td><td>AINode的运行脚本,可以启动,移除和停止AINode</td></tr><tr><td>conf</td><td>文件夹</td><td>包含AINode的配置项,具体包含以下配置项</td></tr><tr><td>LICENSE</td><td>文件</td><td>证书</td></tr><tr><td>NOTICE</td><td>文件</td><td>提示</td></tr><tr><td>README_ZH.md</td><td>文件</td><td>markdown格式的中文版说明</td></tr><tr><td><code>README.md</code></td><td>文件</td><td>使用说明</td></tr></tbody></table><h3 id="环境准备" tabindex="-1"><a class="header-anchor" href="#环境准备"><span>环境准备</span></a></h3>',14),c=a("li",null,[a("p",null,"建议操作环境: Ubuntu, CentOS, MacOS")],-1),h=a("p",null,"运行环境",-1),u={href:"https://cloud.tsinghua.edu.cn/d/4c1342f6c272439aa96c/?p=%2Flibs&mode=list",target:"_blank",rel:"noopener noreferrer"},v=a("code",null,"iotdb-enterprise-ainode-<version>",-1),m=a("code",null,"lib",-1),b=a("img",{src:"https://alioss.timecho.com/docs/img/AINode部署3.png",alt:"",style:{width:"80%"}},null,-1),k=s(`<li><p>环境变量中需存在 Python 解释器且可以通过 <code>python</code> 指令直接调用</p></li><li><p>建议在 <code>iotdb-enterprise-ainode-&lt;version&gt;</code> 文件夹下,新建 Python 解释器 venv 虚拟环境。如安装 3.8.0 版本虚拟环境,语句如下:</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="token comment"># 安装3.8.0版本的venv </span>
<span class="token punctuation">..</span>/Python-3.8.0/python <span class="token parameter variable">-m</span> venv venv<span class="token punctuation">(</span>文件夹名)
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div></li>`,2),g=s(`<h2 id="安装步骤" tabindex="-1"><a class="header-anchor" href="#安装步骤"><span>安装步骤</span></a></h2><h3 id="ainode-激活" tabindex="-1"><a class="header-anchor" href="#ainode-激活"><span>AINode 激活</span></a></h3><p>要求 IoTDB 处于正常运行状态,且 license 中有 AINode 模块授权(通常 license 中不具有 AINode 授权,可联系天谋商务或技术支持人员获取 AINode 模块授权)。</p><p>激活 AINode 模块授权方式如下:</p><ul><li>方式一:激活文件拷贝激活 <ul><li>重新启动 confignode 节点后,进入 activation 文件夹, 将 system_info 文件复制给天谋工作人员,并告知工作人员申请 AINode 独立授权;</li><li>收到工作人员返回的 license 文件;</li><li>将 license 文件放入对应节点的 activation 文件夹下;</li></ul></li><li>方式二:激活脚本激活 <ul><li>获取激活所需机器码,进入安装目录的 <code>sbin</code> 目录,执行激活脚本:<div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token builtin class-name">cd</span> sbin
./start-activate.sh
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div></li><li>显示如下信息,请将机器码(即该串字符)复制给天谋工作人员,并告知工作人员申请 AINode 独立授权:<div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>Please copy the system_info&#39;s content and send it to Timecho:
<span class="token assign-left variable">Y17hFA0xRCE1TmkVxILuCIEPc7uJcr5bzlXWiptw8uZTmTX5aThfypQdLUIhMljw075hNRSicyvyJR9JM7QaNm1gcFZPHVRWVXIiY5IlZkXdxCVc1erXMsbCqUYsR2R2Mw4PSpFJsUF5jHWSoFIIjQ2bmJFW5P52KCccFMVeHTc</span><span class="token operator">=</span>
Please enter license:
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li>将工作人员返回的激活码输入上一步的命令行提示处 <code>Please enter license:</code>,如下提示:<div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>Please enter license:
Jw+MmF+AtexsfgNGOFgTm83BgXbq0zT1+fOfPvQsLlj6ZsooHFU6HycUSEGC78eT1g67KPvkcLCUIsz2QpbyVmPLr9x1+kVjBubZPYlVpsGYLqLFc8kgpb5vIrPLd3hGLbJ5Ks8fV1WOVrDDVQq89YF2atQa2EaB9EAeTWd0bRMZ+s9ffjc/1Zmh9NSP/T3VCfJcJQyi7YpXWy5nMtcW0gSV+S6fS5r7a96PjbtE0zXNjnEhqgRzdU+mfO8gVuUNaIy9l375cp1GLpeCh6m6pF+APW1CiXLTSijK9Qh3nsL5bAOXNeob5l+HO5fEMgzrW8OJPh26Vl6ljKUpCvpTiw<span class="token operator">==</span>
License has been stored to sbin/<span class="token punctuation">..</span>/activation/license
Import completed. Please start cluster and excute <span class="token string">&#39;show cluster&#39;</span> to verify activation status
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul></li><li>更新 license 后,重新启动 DataNode 节点,进入 IoTDB 的 sbin 目录下,启动 datanode:<div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token builtin class-name">cd</span> sbin
./start-datanode.sh <span class="token parameter variable">-d</span> <span class="token comment">#-d参数将在后台进行启动 </span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div></li></ul><h3 id="配置项修改" tabindex="-1"><a class="header-anchor" href="#配置项修改"><span>配置项修改</span></a></h3><p>AINode 支持修改一些必要的参数。可以在 <code>conf/iotdb-ainode.properties</code> 文件中找到下列参数并进行持久化的修改:</p><table><thead><tr><th style="text-align:left;"><strong>名称</strong></th><th><strong>描述</strong></th><th><strong>类型</strong></th><th><strong>默认值</strong></th><th><strong>改后生效方式</strong></th></tr></thead><tbody><tr><td style="text-align:left;">cluster_name</td><td>AINode 要加入集群的标识</td><td>string</td><td>defaultCluster</td><td>仅允许在第一次启动服务前修改</td></tr><tr><td style="text-align:left;">ain_seed_config_node</td><td>AINode 启动时注册的 ConfigNode 地址</td><td>String</td><td>10710</td><td>仅允许在第一次启动服务前修改</td></tr><tr><td style="text-align:left;">ain_inference_rpc_address</td><td>AINode 提供服务与通信的地址</td><td>String</td><td>127.0.0.1</td><td>重启后生效</td></tr><tr><td style="text-align:left;">ain_inference_rpc_port</td><td>AINode 提供服务与通信的端口</td><td>String</td><td>10810</td><td>重启后生效</td></tr><tr><td style="text-align:left;">ain_system_dir</td><td>AINode 元数据存储路径,相对路径的起始目录与操作系统相关,建议使用绝对路径</td><td>String</td><td>data/AINode/system</td><td>重启后生效</td></tr><tr><td style="text-align:left;">ain_models_dir</td><td>AINode 存储模型文件的路径,相对路径的起始目录与操作系统相关,建议使用绝对路径</td><td>String</td><td>data/AINode/models</td><td>重启后生效</td></tr><tr><td style="text-align:left;">ain_logs_dir</td><td>AINode 存储日志的路径,相对路径的起始目录与操作系统相关,建议使用绝对路径</td><td>String</td><td>logs/AINode</td><td>重启后生效</td></tr><tr><td style="text-align:left;">ain_thrift_compression_enabled</td><td>AINode 是否启用 thrift 的压缩机制,0-不启动、1-启动</td><td>Boolean</td><td>0</td><td>重启后生效</td></tr></tbody></table><h3 id="启动-ainode" tabindex="-1"><a class="header-anchor" href="#启动-ainode"><span>启动 AINode</span></a></h3><p>在完成 Seed-ConfigNode 的部署后,可以通过添加 AINode 节点来支持模型的注册和推理功能。在配置项中指定 IoTDB 集群的信息后,可以执行相应的指令来启动 AINode,加入 IoTDB 集群。</p><h4 id="联网环境启动" tabindex="-1"><a class="header-anchor" href="#联网环境启动"><span>联网环境启动</span></a></h4><h5 id="启动命令" tabindex="-1"><a class="header-anchor" href="#启动命令"><span>启动命令</span></a></h5><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># Linux / MacOS </span>
<span class="token function">bash</span> sbin/start-ainode.sh <span class="token parameter variable">-i</span> <span class="token operator">&lt;</span>directory<span class="token operator">&gt;</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">-n</span>
<span class="token comment"># Windows</span>
sbin<span class="token punctuation">\\</span>start-ainode.bat <span class="token parameter variable">-i</span> <span class="token operator">&lt;</span>directory<span class="token operator">&gt;</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">-n</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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="参数介绍" tabindex="-1"><a class="header-anchor" href="#参数介绍"><span>参数介绍:</span></a></h5><table><thead><tr><th><strong>名称</strong></th><th><strong>标签</strong></th><th><strong>描述</strong></th><th><strong>是否必填</strong></th><th><strong>类型</strong></th><th><strong>默认值</strong></th><th><strong>输入方式</strong></th></tr></thead><tbody><tr><td>ain_interpreter_dir</td><td>-i</td><td>AINode 所安装在的虚拟环境的解释器路径,需要使用绝对路径</td><td>否</td><td>String</td><td>默认读取环境变量</td><td>调用时输入或持久化修改</td></tr><tr><td>ain_force_reinstall</td><td>-r</td><td>该脚本在检查 AINode 安装情况的时候是否检查版本,如果检查则在版本不对的情况下会强制安装 lib 里的 whl 安装包</td><td>否</td><td>Bool</td><td>false</td><td>调用时输入</td></tr><tr><td>ain_no_dependencies</td><td>-n</td><td>指定在安装 AINode 的时候是否安装依赖,如果指定则仅安装 AINode 主程序而不安装依赖。</td><td>否</td><td>Bool</td><td>false</td><td>调用时输入</td></tr></tbody></table><p>如不想每次启动时指定对应参数,也可以在 <code>conf</code> 文件夹下的<code>ainode-env.sh</code> <code>ainode-env.bat</code> 脚本中持久化修改参数(目前支持持久化修改 ain_interpreter_dir 参数)。</p><p><code>ainode-env.sh</code> :</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># The defaulte venv environment is used if ain_interpreter_dir is not set. Please use absolute path without quotation mark</span>
<span class="token comment"># ain_interpreter_dir=</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p><code>ainode-env.bat</code> :</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> @REM The defaulte venv environment is used <span class="token keyword">if</span> ain_interpreter_dir is not set. Please use absolute path without quotation mark
@REM <span class="token builtin class-name">set</span> <span class="token assign-left variable">ain_interpreter_dir</span><span class="token operator">=</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>在写入参数值的后解除对应行的注释并保存即可在下一次执行脚本时生效。</p><h4 id="示例" tabindex="-1"><a class="header-anchor" href="#示例"><span>示例</span></a></h4><h5 id="直接启动" tabindex="-1"><a class="header-anchor" href="#直接启动"><span>直接启动:</span></a></h5><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># 启动命令</span>
<span class="token comment"># Linux MacOS 系统</span>
<span class="token function">bash</span> sbin/start-ainode.sh
<span class="token comment"># Windows 系统</span>
sbin<span class="token punctuation">\\</span>start-ainode.bat
<span class="token comment"># 后台启动命令(长期运行推荐)</span>
<span class="token comment"># Linux MacOS 系统</span>
<span class="token function">nohup</span> <span class="token function">bash</span> sbin/start-ainode.sh <span class="token operator">&gt;</span> myout.file <span class="token operator"><span class="token file-descriptor important">2</span>&gt;&amp;</span> <span class="token number">1</span> <span class="token operator">&amp;</span>
<span class="token comment"># Windows 系统</span>
<span class="token function">nohup</span> <span class="token function">bash</span> sbin/start-ainode.bat <span class="token operator">&gt;</span> myout.file <span class="token operator"><span class="token file-descriptor important">2</span>&gt;&amp;</span> <span class="token number">1</span> <span class="token operator">&amp;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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="更新启动" tabindex="-1"><a class="header-anchor" href="#更新启动"><span>更新启动:</span></a></h5><p>如果 AINode 的版本进行了更新(如更新了 <code>lib</code> 文件夹),可使用此命令。首先要保证 AINode 已经停止运行,然后通过 <code>-r</code> 参数重启,该参数会根据 <code>lib</code> 下的文件重新安装 AINode。</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># 更新启动命令</span>
<span class="token comment"># Linux MacOS 系统</span>
<span class="token function">bash</span> sbin/start-ainode.sh <span class="token parameter variable">-r</span>
<span class="token comment"># Windows 系统</span>
sbin<span class="token punctuation">\\</span>start-ainode.bat <span class="token parameter variable">-r</span>
<span class="token comment"># 后台更新启动命令(长期运行推荐)</span>
<span class="token comment"># Linux MacOS 系统</span>
<span class="token function">nohup</span> <span class="token function">bash</span> sbin/start-ainode.sh <span class="token parameter variable">-r</span> <span class="token operator">&gt;</span> myout.file <span class="token operator"><span class="token file-descriptor important">2</span>&gt;&amp;</span> <span class="token number">1</span> <span class="token operator">&amp;</span>
<span class="token comment"># Windows 系统</span>
<span class="token function">nohup</span> <span class="token function">bash</span> sbin/start-ainode.bat <span class="token parameter variable">-r</span> <span class="token operator">&gt;</span> myout.file <span class="token operator"><span class="token file-descriptor important">2</span>&gt;&amp;</span> <span class="token number">1</span> <span class="token operator">&amp;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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="非联网环境启动" tabindex="-1"><a class="header-anchor" href="#非联网环境启动"><span>非联网环境启动</span></a></h4><h5 id="启动命令-1" tabindex="-1"><a class="header-anchor" href="#启动命令-1"><span>启动命令</span></a></h5><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># Linux / MacOS </span>
<span class="token function">bash</span> sbin/start-ainode.sh <span class="token parameter variable">-i</span> <span class="token operator">&lt;</span>directory<span class="token operator">&gt;</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">-n</span>
<span class="token comment"># Windows</span>
sbin<span class="token punctuation">\\</span>start-ainode.bat <span class="token parameter variable">-i</span> <span class="token operator">&lt;</span>directory<span class="token operator">&gt;</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">-n</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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="参数介绍-1" tabindex="-1"><a class="header-anchor" href="#参数介绍-1"><span>参数介绍:</span></a></h5><table><thead><tr><th><strong>名称</strong></th><th><strong>标签</strong></th><th><strong>描述</strong></th><th><strong>是否必填</strong></th><th><strong>类型</strong></th><th><strong>默认值</strong></th><th><strong>输入方式</strong></th></tr></thead><tbody><tr><td>ain_interpreter_dir</td><td>-i</td><td>AINode 所安装在的虚拟环境的解释器路径,需要使用绝对路径</td><td>否</td><td>String</td><td>默认读取环境变量</td><td>调用时输入或持久化修改</td></tr><tr><td>ain_force_reinstall</td><td>-r</td><td>该脚本在检查 AINode 安装情况的时候是否检查版本,如果检查则在版本不对的情况下会强制安装 lib 里的 whl 安装包</td><td>否</td><td>Bool</td><td>false</td><td>调用时输入</td></tr></tbody></table><blockquote><p>注意:非联网环境下安装失败时,首先检查是否选择了平台对应的安装包,其次确认python版本为3.8(由于下载的安装包限制了python版本,3.73.9等其他都不行)</p></blockquote><h4 id="示例-1" tabindex="-1"><a class="header-anchor" href="#示例-1"><span>示例</span></a></h4><h5 id="直接启动-1" tabindex="-1"><a class="header-anchor" href="#直接启动-1"><span>直接启动:</span></a></h5><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># 启动命令</span>
<span class="token comment"># Linux MacOS 系统</span>
<span class="token function">bash</span> sbin/start-ainode.sh
<span class="token comment"># Windows 系统</span>
sbin<span class="token punctuation">\\</span>start-ainode.bat
<span class="token comment"># 后台启动命令(长期运行推荐)</span>
<span class="token comment"># Linux MacOS 系统</span>
<span class="token function">nohup</span> <span class="token function">bash</span> sbin/start-ainode.sh <span class="token operator">&gt;</span> myout.file <span class="token operator"><span class="token file-descriptor important">2</span>&gt;&amp;</span> <span class="token number">1</span> <span class="token operator">&amp;</span>
<span class="token comment"># Windows 系统</span>
<span class="token function">nohup</span> <span class="token function">bash</span> sbin/start-ainode.bat <span class="token operator">&gt;</span> myout.file <span class="token operator"><span class="token file-descriptor important">2</span>&gt;&amp;</span> <span class="token number">1</span> <span class="token operator">&amp;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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><h3 id="检测-ainode-节点状态" tabindex="-1"><a class="header-anchor" href="#检测-ainode-节点状态"><span>检测 AINode 节点状态</span></a></h3><p>AINode 启动过程中会自动将新的 AINode 加入 IoTDB 集群。启动 AINode 后可以在 命令行中输入 SQL 来查询,集群中看到 AINode 节点,其运行状态为 Running(如下展示)表示加入成功。</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>IoTDB<span class="token operator">&gt;</span> show cluster
+------+----------+-------+---------------+------------+-------+-----------+
<span class="token operator">|</span>NodeID<span class="token operator">|</span> NodeType<span class="token operator">|</span> Status<span class="token operator">|</span>InternalAddress<span class="token operator">|</span>InternalPort<span class="token operator">|</span>Version<span class="token operator">|</span> BuildInfo<span class="token operator">|</span>
+------+----------+-------+---------------+------------+-------+-----------+
<span class="token operator">|</span> <span class="token number">0</span><span class="token operator">|</span>ConfigNode<span class="token operator">|</span>Running<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10710</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
<span class="token operator">|</span> <span class="token number">1</span><span class="token operator">|</span> DataNode<span class="token operator">|</span>Running<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10730</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
<span class="token operator">|</span> <span class="token number">2</span><span class="token operator">|</span> AINode<span class="token operator">|</span>Running<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10810</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
+------+----------+-------+---------------+------------+-------+-----------+
</code></pre><div class="line-numbers" aria-hidden="true"><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="停止-ainode" tabindex="-1"><a class="header-anchor" href="#停止-ainode"><span>停止 AINode</span></a></h3><p>如果需要停止正在运行的 AINode 节点,则执行相应的关闭脚本。</p><h4 id="停止命令" tabindex="-1"><a class="header-anchor" href="#停止命令"><span>停止命令</span></a></h4><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># Linux / MacOS </span>
<span class="token function">bash</span> sbin/stop-ainode.sh -t<span class="token operator">&lt;</span>AINode-id<span class="token operator">&gt;</span>/<span class="token operator">&lt;</span>ip<span class="token operator">&gt;</span>:<span class="token operator">&lt;</span>rpc-port<span class="token operator">&gt;</span>
<span class="token comment">#Windows</span>
sbin<span class="token punctuation">\\</span>stop-ainode.bat -t<span class="token operator">&lt;</span>AINode-id<span class="token operator">&gt;</span>/<span class="token operator">&lt;</span>ip<span class="token operator">&gt;</span>:<span class="token operator">&lt;</span>rpc-port<span class="token operator">&gt;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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="参数介绍-2" tabindex="-1"><a class="header-anchor" href="#参数介绍-2"><span>参数介绍:</span></a></h5><table><thead><tr><th><strong>名称</strong></th><th><strong>标签</strong></th><th><strong>描述</strong></th><th><strong>是否必填</strong></th><th><strong>类型</strong></th><th><strong>默认值</strong></th><th><strong>输入方式</strong></th></tr></thead><tbody><tr><td>ain_remove_target</td><td>-t</td><td>AINode 关闭时可以指定待移除的目标 AINode Node ID、地址和端口号,格式为<code>&lt;AINode-id&gt;/&lt;ip&gt;:&lt;rpc-port&gt;</code></td><td>否</td><td>String</td><td>无</td><td>调用时输入</td></tr></tbody></table><h4 id="示例-2" tabindex="-1"><a class="header-anchor" href="#示例-2"><span>示例</span></a></h4><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># Linux / MacOS </span>
<span class="token function">bash</span> sbin/stop-ainode.sh
<span class="token comment"># Windows</span>
sbin<span class="token punctuation">\\</span>stop-ainode.bat
</code></pre><div class="line-numbers" aria-hidden="true"><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>停止 AINode 后,还可以在集群中看到 AINode 节点,其运行状态为 UNKNOWN(如下展示),此时无法使用 AINode 功能。</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>IoTDB<span class="token operator">&gt;</span> show cluster
+------+----------+-------+---------------+------------+-------+-----------+
<span class="token operator">|</span>NodeID<span class="token operator">|</span> NodeType<span class="token operator">|</span> Status<span class="token operator">|</span>InternalAddress<span class="token operator">|</span>InternalPort<span class="token operator">|</span>Version<span class="token operator">|</span> BuildInfo<span class="token operator">|</span>
+------+----------+-------+---------------+------------+-------+-----------+
<span class="token operator">|</span> <span class="token number">0</span><span class="token operator">|</span>ConfigNode<span class="token operator">|</span>Running<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10710</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
<span class="token operator">|</span> <span class="token number">1</span><span class="token operator">|</span> DataNode<span class="token operator">|</span>Running<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10730</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
<span class="token operator">|</span> <span class="token number">2</span><span class="token operator">|</span> AINode<span class="token operator">|</span>UNKNOWN<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10790</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
+------+----------+-------+---------------+------------+-------+-----------+
</code></pre><div class="line-numbers" aria-hidden="true"><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>如果需要重新启动该节点,需重新执行启动脚本。</p><h3 id="移除-ainode" tabindex="-1"><a class="header-anchor" href="#移除-ainode"><span>移除 AINode</span></a></h3><p>当需要把一个 AINode 节点移出集群时,可以执行移除脚本。移除和停止脚本的差别是:停止是在集群中保留 AINode 节点但停止 AINode 服务,移除则是把 AINode 节点从集群中移除出去。</p><h4 id="移除命令" tabindex="-1"><a class="header-anchor" href="#移除命令"><span>移除命令</span></a></h4><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># Linux / MacOS </span>
<span class="token function">bash</span> sbin/stop-ainode.sh -i<span class="token operator">&lt;</span>directory<span class="token operator">&gt;</span> -t<span class="token operator">&lt;</span>AINode-id<span class="token operator">&gt;</span>/<span class="token operator">&lt;</span>ip<span class="token operator">&gt;</span>:<span class="token operator">&lt;</span>rpc-port<span class="token operator">&gt;</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">-n</span>
<span class="token comment"># Windows</span>
sbin<span class="token punctuation">\\</span>stop-ainode.bat -i<span class="token operator">&lt;</span>directory<span class="token operator">&gt;</span> -t<span class="token operator">&lt;</span>AINode-id<span class="token operator">&gt;</span>/<span class="token operator">&lt;</span>ip<span class="token operator">&gt;</span>:<span class="token operator">&lt;</span>rpc-port<span class="token operator">&gt;</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">-n</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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="参数介绍-3" tabindex="-1"><a class="header-anchor" href="#参数介绍-3"><span>参数介绍:</span></a></h5><table><thead><tr><th><strong>名称</strong></th><th><strong>标签</strong></th><th><strong>描述</strong></th><th><strong>是否必填</strong></th><th><strong>类型</strong></th><th><strong>默认值</strong></th><th><strong>输入方式</strong></th></tr></thead><tbody><tr><td>ain_interpreter_dir</td><td>-i</td><td>AINode 所安装在的虚拟环境的解释器路径,需要使用绝对路径</td><td>否</td><td>String</td><td>默认读取环境变量</td><td>调用时输入+持久化修改</td></tr><tr><td>ain_remove_target</td><td>-t</td><td>AINode 关闭时可以指定待移除的目标 AINode Node ID、地址和端口号,格式为<code>&lt;AINode-id&gt;/&lt;ip&gt;:&lt;rpc-port&gt;</code></td><td>否</td><td>String</td><td>无</td><td>调用时输入</td></tr><tr><td>ain_force_reinstall</td><td>-r</td><td>该脚本在检查 AINode 安装情况的时候是否检查版本,如果检查则在版本不对的情况下会强制安装 lib 里的 whl 安装包</td><td>否</td><td>Bool</td><td>false</td><td>调用时输入</td></tr><tr><td>ain_no_dependencies</td><td>-n</td><td>指定在安装 AINode 的时候是否安装依赖,如果指定则仅安装 AINode 主程序而不安装依赖。</td><td>否</td><td>Bool</td><td>false</td><td>调用时输入</td></tr></tbody></table><p>如不想每次启动时指定对应参数,也可以在 <code>conf</code> 文件夹下的<code>ainode-env.sh</code> <code>ainode-env.bat</code> 脚本中持久化修改参数(目前支持持久化修改 ain_interpreter_dir 参数)。</p><p><code>ainode-env.sh</code> :</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> <span class="token comment"># The defaulte venv environment is used if ain_interpreter_dir is not set. Please use absolute path without quotation mark</span>
<span class="token comment"># ain_interpreter_dir=</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p><code>ainode-env.bat</code> :</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code> @REM The defaulte venv environment is used <span class="token keyword">if</span> ain_interpreter_dir is not set. Please use absolute path without quotation mark
@REM <span class="token builtin class-name">set</span> <span class="token assign-left variable">ain_interpreter_dir</span><span class="token operator">=</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>在写入参数值的后解除对应行的注释并保存即可在下一次执行脚本时生效。</p><h4 id="示例-3" tabindex="-1"><a class="header-anchor" href="#示例-3"><span>示例</span></a></h4><h5 id="直接移除" tabindex="-1"><a class="header-anchor" href="#直接移除"><span>直接移除:</span></a></h5><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="token comment"># Linux / MacOS </span>
<span class="token function">bash</span> sbin/remove-ainode.sh
<span class="token comment"># Windows</span>
sbin<span class="token punctuation">\\</span>remove-ainode.bat
</code></pre><div class="line-numbers" aria-hidden="true"><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>移除节点后,将无法查询到节点的相关信息。</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>IoTDB<span class="token operator">&gt;</span> show cluster
+------+----------+-------+---------------+------------+-------+-----------+
<span class="token operator">|</span>NodeID<span class="token operator">|</span> NodeType<span class="token operator">|</span> Status<span class="token operator">|</span>InternalAddress<span class="token operator">|</span>InternalPort<span class="token operator">|</span>Version<span class="token operator">|</span> BuildInfo<span class="token operator">|</span>
+------+----------+-------+---------------+------------+-------+-----------+
<span class="token operator">|</span> <span class="token number">0</span><span class="token operator">|</span>ConfigNode<span class="token operator">|</span>Running<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10710</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
<span class="token operator">|</span> <span class="token number">1</span><span class="token operator">|</span> DataNode<span class="token operator">|</span>Running<span class="token operator">|</span> <span class="token number">127.0</span>.0.1<span class="token operator">|</span> <span class="token number">10730</span><span class="token operator">|</span>UNKNOWN<span class="token operator">|</span>190e303-dev<span class="token operator">|</span>
+------+----------+-------+---------------+------------+-------+-----------+
</code></pre><div class="line-numbers" aria-hidden="true"><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="指定移除" tabindex="-1"><a class="header-anchor" href="#指定移除"><span>指定移除:</span></a></h5><p>如果用户丢失了 data 文件夹下的文件,可能 AINode 本地无法主动移除自己,需要用户指定节点号、地址和端口号进行移除,此时我们支持用户按照以下方法输入参数进行删除。</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="token comment"># Linux / MacOS </span>
<span class="token function">bash</span> sbin/remove-ainode.sh <span class="token parameter variable">-t</span> <span class="token operator">&lt;</span>AINode-id<span class="token operator">&gt;</span>/<span class="token operator">&lt;</span>ip<span class="token operator">&gt;</span>:<span class="token operator">&lt;</span>rpc-port<span class="token operator">&gt;</span>
<span class="token comment"># Windows</span>
sbin<span class="token punctuation">\\</span>remove-ainode.bat <span class="token parameter variable">-t</span> <span class="token operator">&lt;</span>AINode-id<span class="token operator">&gt;</span>/<span class="token operator">&lt;</span>ip<span class="token operator">&gt;</span>:<span class="token operator">&lt;</span>rpc-port<span class="token operator">&gt;</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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="常见问题" tabindex="-1"><a class="header-anchor" href="#常见问题"><span>常见问题</span></a></h2><h3 id="启动ainode时出现找不到venv模块的报错" tabindex="-1"><a class="header-anchor" href="#启动ainode时出现找不到venv模块的报错"><span>启动AINode时出现找不到venv模块的报错</span></a></h3><p>当使用默认方式启动 AINode 时,会在安装包目录下创建一个 python 虚拟环境并安装依赖,因此要求安装 venv 模块。通常来说 python3.8 及以上的版本会自带 venv,但对于一些系统自带的 python 环境可能并不满足这一要求。出现该报错时有两种解决方案(二选一):</p><p>在本地安装 venv 模块,以 ubuntu 为例,可以通过运行以下命令来安装 python 自带的 venv 模块。或者从 python 官网安装一个自带 venv python 版本。</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="token function">apt-get</span> <span class="token function">install</span> python3.8-venv
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>安装 3.8.0 版本的 venv 到 AINode 里面 在 AINode 路径下</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="token punctuation">..</span>/Python-3.8.0/python <span class="token parameter variable">-m</span> venv venv<span class="token punctuation">(</span>文件夹名)
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>在运行启动脚本时通过 <code>-i</code> 指定已有的 python 解释器路径作为 AINode 的运行环境,这样就不再需要创建一个新的虚拟环境。</p><h3 id="python中的ssl模块没有被正确安装和配置-无法处理https资源" tabindex="-1"><a class="header-anchor" href="#python中的ssl模块没有被正确安装和配置-无法处理https资源"><span>python中的SSL模块没有被正确安装和配置,无法处理HTTPS资源</span></a></h3><p>WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.<br> 可以安装 OpenSSLS 后,再重新构建 python 来解决这个问题</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>`,81),f={href:"https://stackoverflow.com/questions/56552390/how-to-fix-ssl-module-in-python-is-not-available-in-centos",target:"_blank",rel:"noopener noreferrer"},N=s(`<div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev <span class="token function">wget</span> <span class="token function">curl</span> llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev uuid-dev lzma-dev liblzma-dev
<span class="token function">sudo</span> <span class="token parameter variable">-E</span> ./configure --with-ssl
<span class="token function">make</span>
<span class="token function">sudo</span> <span class="token function">make</span> <span class="token function">install</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="pip版本较低" tabindex="-1"><a class="header-anchor" href="#pip版本较低"><span>pip版本较低</span></a></h3><p>windows下出现类似“error:Microsoft Visual C++ 14.0 or greater is required...”的编译问题</p><p>出现对应的报错,通常是 c++版本或是 setuptools 版本不足,可以在</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>./python <span class="token parameter variable">-m</span> pip <span class="token function">install</span> <span class="token parameter variable">--upgrade</span> pip
./python <span class="token parameter variable">-m</span> pip <span class="token function">install</span> <span class="token parameter variable">--upgrade</span> setuptools
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="安装编译python" tabindex="-1"><a class="header-anchor" href="#安装编译python"><span>安装编译python</span></a></h3><p>使用以下指定从官网下载安装包并解压:</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code>.wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz
<span class="token function">tar</span> Jxf Python-3.8.0.tar.xz
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><p>编译安装对应的 python 包:</p><div class="language-bash line-numbers-mode" data-ext="sh" data-title="sh"><pre class="language-bash"><code><span class="token builtin class-name">cd</span> Python-3.8.0
./configure <span class="token assign-left variable">prefix</span><span class="token operator">=</span>/usr/local/python3
<span class="token function">make</span>
<span class="token function">sudo</span> <span class="token function">make</span> <span class="token function">install</span>
python3 <span class="token parameter variable">--version</span>
</code></pre><div class="line-numbers" aria-hidden="true"><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>`,10);function I(y,A){const e=d("ExternalLinkIcon");return i(),l("div",null,[p,a("ul",null,[c,a("li",null,[h,a("ul",null,[a("li",null,[a("p",null,[n("联网环境下 Python >= 3.8即可,且带有 pip 和 venv 工具;非联网环境下需要使用 Python 3.8版本,并从 "),a("a",u,[n("此处"),t(e)]),n(" 下载对应操作系统的zip压缩包(注意下载依赖需选择libs文件夹中的zip压缩包,如下图),并将文件夹下的所有文件拷贝到 "),v,n(" 文件夹中 "),m,n(" 文件夹下,并按下文步骤启动AINode。")]),b]),k])])]),g,a("p",null,[n("Python 要求我们的系统上安装有 OpenSSL,具体安装方法可见"),a("a",f,[n("链接"),t(e)])]),N])}const x=o(r,[["render",I],["__file","AINode_Deployment_timecho.html.vue"]]),S=JSON.parse('{"path":"/zh/UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_timecho.html","title":"AINode 部署","lang":"zh-CN","frontmatter":{"description":"AINode 部署 AINode介绍 能力介绍 AINode IoTDB ConfigNodeDataNode 后提供的第三种内生节点,该节点通过与 IoTDB 集群的 DataNodeConfigNode 的交互,扩展了对时间序列进行机器学习分析的能力,支持从外部引入已有机器学习模型进行注册,并使用注册的模型在指定时序数据上通过简单 SQ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://iotdb.apache.org/UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_timecho.html"}],["meta",{"property":"og:url","content":"https://iotdb.apache.org/zh/UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_timecho.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"AINode 部署"}],["meta",{"property":"og:description","content":"AINode 部署 AINode介绍 能力介绍 AINode 是 IoTDB 在 ConfigNode、DataNode 后提供的第三种内生节点,该节点通过与 IoTDB 集群的 DataNode、ConfigNode 的交互,扩展了对时间序列进行机器学习分析的能力,支持从外部引入已有机器学习模型进行注册,并使用注册的模型在指定时序数据上通过简单 SQ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-15T06:41:58.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-15T06:41:58.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"AINode 部署\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-15T06:41:58.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"AINode介绍","slug":"ainode介绍","link":"#ainode介绍","children":[{"level":3,"title":"能力介绍","slug":"能力介绍","link":"#能力介绍","children":[]},{"level":3,"title":"交付方式","slug":"交付方式","link":"#交付方式","children":[]},{"level":3,"title":"部署模式","slug":"部署模式","link":"#部署模式","children":[]}]},{"level":2,"title":"安装准备","slug":"安装准备","link":"#安装准备","children":[{"level":3,"title":"安装包获取","slug":"安装包获取","link":"#安装包获取","children":[]},{"level":3,"title":"环境准备","slug":"环境准备","link":"#环境准备","children":[]}]},{"level":2,"title":"安装步骤","slug":"安装步骤","link":"#安装步骤","children":[{"level":3,"title":"AINode 激活","slug":"ainode-激活","link":"#ainode-激活","children":[]},{"level":3,"title":"配置项修改","slug":"配置项修改","link":"#配置项修改","children":[]},{"level":3,"title":"启动 AINode","slug":"启动-ainode","link":"#启动-ainode","children":[]},{"level":3,"title":"检测 AINode 节点状态","slug":"检测-ainode-节点状态","link":"#检测-ainode-节点状态","children":[]},{"level":3,"title":"停止 AINode","slug":"停止-ainode","link":"#停止-ainode","children":[]},{"level":3,"title":"移除 AINode","slug":"移除-ainode","link":"#移除-ainode","children":[]}]},{"level":2,"title":"常见问题","slug":"常见问题","link":"#常见问题","children":[{"level":3,"title":"启动AINode时出现找不到venv模块的报错","slug":"启动ainode时出现找不到venv模块的报错","link":"#启动ainode时出现找不到venv模块的报错","children":[]},{"level":3,"title":"python中的SSL模块没有被正确安装和配置,无法处理HTTPS资源","slug":"python中的ssl模块没有被正确安装和配置-无法处理https资源","link":"#python中的ssl模块没有被正确安装和配置-无法处理https资源","children":[]},{"level":3,"title":"pip版本较低","slug":"pip版本较低","link":"#pip版本较低","children":[]},{"level":3,"title":"安装编译python","slug":"安装编译python","link":"#安装编译python","children":[]}]}],"git":{"createdTime":1722498479000,"updatedTime":1723704118000,"contributors":[{"name":"W1y1r","email":"150988475+W1y1r@users.noreply.github.com","commits":2},{"name":"majialin","email":"107627937+mal117@users.noreply.github.com","commits":1}]},"readingTime":{"minutes":12.29,"words":3687},"filePathRelative":"zh/UserGuide/latest/Deployment-and-Maintenance/AINode_Deployment_timecho.md","localizedDate":"2024年8月1日","autoDesc":true}');export{x as comp,S as data};