blob: 34c59dc259a730052ebdf4ab8144082e17f26a90 [file] [log] [blame]
import{_ as o,r as i,o as c,c as p,a as l,d as s,e as n,b as e,f as t}from"./app-wIgiOADQ.js";const r={},d=s("h1",{id:"docker部署",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#docker部署","aria-hidden":"true"},"#"),n(" docker部署")],-1),u={href:"https://hub.docker.com/r/apache/iotdb",target:"_blank",rel:"noopener noreferrer"},k=s("br",null,null,-1),v=t(`<h2 id="docker镜像安装-单机版" tabindex="-1"><a class="header-anchor" href="#docker镜像安装-单机版" aria-hidden="true">#</a> docker镜像安装(单机版)</h2><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code><span class="token comment"># 获取镜像</span>
<span class="token function">docker</span> pull apache/iotdb:1.3.0-standalone
<span class="token comment"># 创建 docker bridge 网络</span>
<span class="token function">docker</span> network create <span class="token parameter variable">--driver</span><span class="token operator">=</span>bridge <span class="token parameter variable">--subnet</span><span class="token operator">=</span><span class="token number">172.18</span>.0.0/16 <span class="token parameter variable">--gateway</span><span class="token operator">=</span><span class="token number">172.18</span>.0.1 iotdb
<span class="token comment"># 创建 docker 容器</span>
<span class="token comment"># 注意:必须固定IP部署。IP改变会导致 confignode 启动失败。</span>
<span class="token function">docker</span> run <span class="token parameter variable">-d</span> <span class="token parameter variable">--name</span> iotdb-service <span class="token punctuation">\\</span>
<span class="token parameter variable">--hostname</span> iotdb-service <span class="token punctuation">\\</span>
<span class="token parameter variable">--network</span> iotdb <span class="token punctuation">\\</span>
<span class="token parameter variable">--ip</span> <span class="token number">172.18</span>.0.6 <span class="token punctuation">\\</span>
<span class="token parameter variable">-p</span> <span class="token number">6667</span>:6667 <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">cn_internal_address</span><span class="token operator">=</span>iotdb-service <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">cn_seed_config_node</span><span class="token operator">=</span>iotdb-service:10710 <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">cn_internal_port</span><span class="token operator">=</span><span class="token number">10710</span> <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">cn_consensus_port</span><span class="token operator">=</span><span class="token number">10720</span> <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">dn_rpc_address</span><span class="token operator">=</span>iotdb-service <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">dn_internal_address</span><span class="token operator">=</span>iotdb-service <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">dn_seed_config_node</span><span class="token operator">=</span>iotdb-service:10710 <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">dn_mpp_data_exchange_port</span><span class="token operator">=</span><span class="token number">10740</span> <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">dn_schema_region_consensus_port</span><span class="token operator">=</span><span class="token number">10750</span> <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">dn_data_region_consensus_port</span><span class="token operator">=</span><span class="token number">10760</span> <span class="token punctuation">\\</span>
<span class="token parameter variable">-e</span> <span class="token assign-left variable">dn_rpc_port</span><span class="token operator">=</span><span class="token number">6667</span> <span class="token punctuation">\\</span>
apache/iotdb:1.3.0-standalone
<span class="token comment"># 尝试使用命令行执行SQL</span>
<span class="token function">docker</span> <span class="token builtin class-name">exec</span> <span class="token parameter variable">-ti</span> iotdb-service /iotdb/sbin/start-cli.sh <span class="token parameter variable">-h</span> iotdb-service
</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 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><p>外部连接:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="language-bash"><code><span class="token comment"># &lt;主机IP/hostname&gt; 是物理机的真实IP或域名。如果在同一台物理机,可以是127.0.0.1。</span>
<span class="token variable">$IOTDB_HOME</span>/sbin/start-cli.sh <span class="token parameter variable">-h</span> <span class="token operator">&lt;</span>主机IP/hostname<span class="token operator">&gt;</span> <span class="token parameter variable">-p</span> <span class="token number">6667</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div></div></div><div class="language-yaml line-numbers-mode" data-ext="yml"><pre class="language-yaml"><code><span class="token comment"># docker-compose-1c1d.yml</span>
<span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token string">&quot;3&quot;</span>
<span class="token key atrule">services</span><span class="token punctuation">:</span>
<span class="token key atrule">iotdb-service</span><span class="token punctuation">:</span>
<span class="token key atrule">image</span><span class="token punctuation">:</span> apache/iotdb<span class="token punctuation">:</span>1.3.0<span class="token punctuation">-</span>standalone
<span class="token key atrule">hostname</span><span class="token punctuation">:</span> iotdb<span class="token punctuation">-</span>service
<span class="token key atrule">container_name</span><span class="token punctuation">:</span> iotdb<span class="token punctuation">-</span>service
<span class="token key atrule">ports</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token string">&quot;6667:6667&quot;</span>
<span class="token key atrule">environment</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> cn_internal_address=iotdb<span class="token punctuation">-</span>service
<span class="token punctuation">-</span> cn_internal_port=10710
<span class="token punctuation">-</span> cn_consensus_port=10720
<span class="token punctuation">-</span> cn_seed_config_node=iotdb<span class="token punctuation">-</span>service<span class="token punctuation">:</span><span class="token number">10710</span>
<span class="token punctuation">-</span> dn_rpc_address=iotdb<span class="token punctuation">-</span>service
<span class="token punctuation">-</span> dn_internal_address=iotdb<span class="token punctuation">-</span>service
<span class="token punctuation">-</span> dn_rpc_port=6667
<span class="token punctuation">-</span> dn_mpp_data_exchange_port=10740
<span class="token punctuation">-</span> dn_schema_region_consensus_port=10750
<span class="token punctuation">-</span> dn_data_region_consensus_port=10760
<span class="token punctuation">-</span> dn_seed_config_node=iotdb<span class="token punctuation">-</span>service<span class="token punctuation">:</span><span class="token number">10710</span>
<span class="token key atrule">volumes</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> ./data<span class="token punctuation">:</span>/iotdb/data
<span class="token punctuation">-</span> ./logs<span class="token punctuation">:</span>/iotdb/logs
<span class="token key atrule">networks</span><span class="token punctuation">:</span>
<span class="token key atrule">iotdb</span><span class="token punctuation">:</span>
<span class="token key atrule">ipv4_address</span><span class="token punctuation">:</span> 172.18.0.6
<span class="token key atrule">networks</span><span class="token punctuation">:</span>
<span class="token key atrule">iotdb</span><span class="token punctuation">:</span>
<span class="token key atrule">external</span><span class="token punctuation">:</span> <span class="token boolean important">true</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 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 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>如果需要修改内存配置,需要将 IoTDB 的配置文件夹 conf 映射出来。</p>`,6),b=s("li",null,[n("在 volumes 配置内增加一个映射 "),s("code",null,"./iotdb-conf:/iotdb/conf"),n(" 启动 docker 容器。执行后,iotdb-conf 目录下有了 IoTDB 的所有配置。")],-1),m={href:"http://confignode-env.sh",target:"_blank",rel:"noopener noreferrer"},_={href:"http://datanode-env.sh",target:"_blank",rel:"noopener noreferrer"},h=s("h2",{id:"docker镜像安装-集群版",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#docker镜像安装-集群版","aria-hidden":"true"},"#"),n(" docker镜像安装(集群版)")],-1),g={href:"https://github.com/apache/iotdb/tree/master/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml",target:"_blank",rel:"noopener noreferrer"},f=t(`<p>假如有三台物理机,它们的hostname分别是iotdb-1iotdb-2iotdb-3。依次启动。<br> iotdb-2 节点的docker-compose文件为例:</p><div class="language-yaml line-numbers-mode" data-ext="yml"><pre class="language-yaml"><code><span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token string">&quot;3&quot;</span>
<span class="token key atrule">services</span><span class="token punctuation">:</span>
<span class="token key atrule">iotdb-confignode</span><span class="token punctuation">:</span>
<span class="token key atrule">image</span><span class="token punctuation">:</span> apache/iotdb<span class="token punctuation">:</span>1.3.0<span class="token punctuation">-</span>confignode
<span class="token key atrule">container_name</span><span class="token punctuation">:</span> iotdb<span class="token punctuation">-</span>confignode
<span class="token key atrule">environment</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> cn_internal_address=iotdb<span class="token punctuation">-</span><span class="token number">2</span>
<span class="token punctuation">-</span> cn_seed_config_node=iotdb<span class="token punctuation">-</span>1<span class="token punctuation">:</span><span class="token number">10710</span>
<span class="token punctuation">-</span> schema_replication_factor=3
<span class="token punctuation">-</span> cn_internal_port=10710
<span class="token punctuation">-</span> cn_consensus_port=10720
<span class="token punctuation">-</span> schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
<span class="token punctuation">-</span> config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
<span class="token punctuation">-</span> data_replication_factor=3
<span class="token punctuation">-</span> data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
<span class="token key atrule">volumes</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> /etc/hosts<span class="token punctuation">:</span>/etc/hosts<span class="token punctuation">:</span>ro
<span class="token punctuation">-</span> ./data/confignode<span class="token punctuation">:</span>/iotdb/data
<span class="token punctuation">-</span> ./logs/confignode<span class="token punctuation">:</span>/iotdb/logs
<span class="token key atrule">network_mode</span><span class="token punctuation">:</span> <span class="token string">&quot;host&quot;</span>
<span class="token key atrule">iotdb-datanode</span><span class="token punctuation">:</span>
<span class="token key atrule">image</span><span class="token punctuation">:</span> apache/iotdb<span class="token punctuation">:</span>1.3.0<span class="token punctuation">-</span>datanode
<span class="token key atrule">container_name</span><span class="token punctuation">:</span> iotdb<span class="token punctuation">-</span>datanode
<span class="token key atrule">environment</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> dn_rpc_address=iotdb<span class="token punctuation">-</span><span class="token number">2</span>
<span class="token punctuation">-</span> dn_internal_address=iotdb<span class="token punctuation">-</span><span class="token number">2</span>
<span class="token punctuation">-</span> dn_seed_config_node=iotdb<span class="token punctuation">-</span>1<span class="token punctuation">:</span><span class="token number">10710</span>
<span class="token punctuation">-</span> data_replication_factor=3
<span class="token punctuation">-</span> dn_rpc_port=6667
<span class="token punctuation">-</span> dn_mpp_data_exchange_port=10740
<span class="token punctuation">-</span> dn_schema_region_consensus_port=10750
<span class="token punctuation">-</span> dn_data_region_consensus_port=10760
<span class="token punctuation">-</span> data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus
<span class="token punctuation">-</span> schema_replication_factor=3
<span class="token punctuation">-</span> schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
<span class="token punctuation">-</span> config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
<span class="token key atrule">volumes</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> /etc/hosts<span class="token punctuation">:</span>/etc/hosts<span class="token punctuation">:</span>ro
<span class="token punctuation">-</span> ./data/datanode<span class="token punctuation">:</span>/iotdb/data/
<span class="token punctuation">-</span> ./logs/datanode<span class="token punctuation">:</span>/iotdb/logs/
<span class="token key atrule">network_mode</span><span class="token punctuation">:</span> <span class="token string">&quot;host&quot;</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 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 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 class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>注意:</p><ol><li><code>cn_seed_config_node</code>和<code>dn_seed_config_node</code>所有节点配置一样,需要配置第一个启动的节点,这里为<code>iotdb-1</code>。</li><li>上面docker-compose文件中,<code>iotdb-2</code>需要替换为每个节点的 hostname、域名或者IP地址。</li><li>需要映射<code>/etc/hosts</code>,文件内配置了 iotdb-1、iotdb-2、iotdb-3 与IP的映射。或者可以在 docker-compose 文件中增加 <code>extra_hosts</code> 配置。</li><li>首次启动时,必须首先启动 <code>iotdb-1</code>。</li><li>如果部署失败要重新部署集群,必须将所有节点上的IoTDB服务停止并删除,然后清除<code>data</code>和<code>logs</code>文件夹后,再启动。</li></ol><h2 id="配置" tabindex="-1"><a class="header-anchor" href="#配置" aria-hidden="true">#</a> 配置</h2><p>IoTDB 的配置文件,都在安装目录的conf目录下。<br> IoTDB 本身配置都可以在 docker-compose 文件的 environment 中进行配置。<br> 如果对日志和内存进行了自定义配置,那么需要将<code>conf</code>目录映射出来。</p><h3 id="修改日志级别" tabindex="-1"><a class="header-anchor" href="#修改日志级别" aria-hidden="true">#</a> 修改日志级别</h3><p>日志配置文件为 logback-confignode.xml 和 logback-datanode.xml,可以根据需要进行精细配置。</p><h3 id="修改内存配置" tabindex="-1"><a class="header-anchor" href="#修改内存配置" aria-hidden="true">#</a> 修改内存配置</h3>`,9),y={href:"http://confignode-env.sh",target:"_blank",rel:"noopener noreferrer"},I={href:"http://datanode-env.sh",target:"_blank",rel:"noopener noreferrer"},x=s("code",null,"ON_HEAP_MEMORY=8G, OFF_HEAP_MEMORY=2G",-1),w=t('<h2 id="升级" tabindex="-1"><a class="header-anchor" href="#升级" aria-hidden="true">#</a> 升级</h2><ol><li>获取新的镜像</li><li>修改 docker-compose 文件的 image</li><li>使用 docker stop 和 docker rm 命令,停止运行的 docker 容器</li><li>启动 IoTDB</li></ol><h2 id="设置开机自启动" tabindex="-1"><a class="header-anchor" href="#设置开机自启动" aria-hidden="true">#</a> 设置开机自启动</h2><ol><li>修改 docker-compose 文件,每个docker 容器配置:<code>restart: always</code></li><li>将 docker 服务设置为开机自启动<br> 以 CentOS 操作系统为例: <code>systemctl enable docker</code></li></ol>',4);function T(O,D){const a=i("ExternalLinkIcon");return c(),p("div",null,[l(`
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
`),d,s("p",null,[n("Apache IoTDB 的 Docker 镜像已经上传至 "),s("a",u,[n("https://hub.docker.com/r/apache/iotdb"),e(a)]),n("。"),k,n(" Apache IoTDB 的配置项以环境变量形式添加到容器内。")]),v,s("ol",null,[b,s("li",null,[n("修改目录 iotdb-conf 下的 "),s("a",m,[n("confignode-env.sh"),e(a)]),n(" 和 "),s("a",_,[n("datanode-env.sh"),e(a)]),n(" 内的相关配置。再次启动 docker 容器。")])]),h,s("p",null,[n("目前只支持 host 网络和 overlay 网络,不支持 bridge 网络。overlay 网络参照"),s("a",g,[n("1C2D"),e(a)]),n("的写法,host 网络如下。")]),f,s("p",null,[n("内存配置文件为 "),s("a",y,[n("confignode-env.sh"),e(a)]),n(" 和 "),s("a",I,[n("datanode-env.sh"),e(a)]),n("。堆内存 ON_HEAP_MEMORY, 堆外内存 OFF_HEAP_MEMORY。例如:"),x]),w])}const A=o(r,[["render",T],["__file","Docker-Install.html.vue"]]);export{A as default};