详解centos7上elastic search安装及填坑记
<p>本文介绍了centos7上elastic search安装及填坑记,分享给大家,具体如下:</p>
<p>
<strong>下载elastic search 5.3.0</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_110331">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">wget https:</code><code class="bash plain">//artifacts</code><code class="bash plain">.elastic.co</code><code class="bash plain">/downloads/elasticsearch/elasticsearch-5</code><code class="bash plain">.3.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">mv</code> <code class="bash plain">elasticsearch-5.3.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz </code><code class="bash plain">/opt</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">cd</code> <code class="bash plain">/opt</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">tar</code> <code class="bash plain">-xzvf elasticsearch-5.3.0.</code><code class="bash functions">tar</code><code class="bash plain">.gz</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash functions">cd</code> <code class="bash plain">elasticsearch-5.3.0/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>启动es</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_360281">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">cd</code> <code class="bash plain">/bin</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">.</code><code class="bash plain">/elasticsearch</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
按照道理应该就可以了,然而接下来各种坑一一出现,分别阐述</p>
<p>
<strong>错误1:</strong>error='cannot allocate memory' (errno=12)</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/e444debb56c6dc70cec1d5d7bcf3c952.jpg"></p>
<p>
error='cannot allocate memory'</p>
<p>
<strong>solutions:</strong></p>
<p>
由于elasticsearch5.0默认分配jvm空间大小为2g,需要改小一点</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_962053">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">vim config/jvm.options </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">-xms2g → -xms512m</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">-xmx2g → -xmx512m</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>错误2: </strong>can not run elasticsearch as root</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/3c974fbed789d308fa4c309d3fd97de7.jpg"></p>
<p>
can not run elasticsearch as root</p>
<p>
<strong>solutions:</strong></p>
<p>
在 linux 环境中,elasticsearch 不允许以 root 权限来运行!所以需要创建一个非root用户,以非root用户来起es</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_449348">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">groupadd elk </code><code class="bash comments"># 创建用户组elk</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">useradd</code> <code class="bash plain">elk -g elk -p 111111 </code><code class="bash comments"># 创建新用户elk,-g elk 设置其用户组为 elk,-p 111 设置其密码6个1</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">chown</code> <code class="bash plain">-r elk:elk </code><code class="bash plain">/opt</code> <code class="bash comments"># 更改 /opt 文件夹及内部文件的所属用户及组为 elk:elk</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">su</code> <code class="bash plain">elk </code><code class="bash comments"># 切换到非root用户elk下来</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>错误3:(</strong>1) max file descriptors for elasticsearch process is too low, increase to at least <br>
(2) max virtual memory areas vm.max_map_count is too low, increase to at least <br>
此错误出现在修改config/elasticsearch.yml中的network.host为network.host: 0.0.0.0以便让外网任何ip都能来访问时。</p>
<p>
solutions:</p>
<p>
切换到root用户,然后</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_54447">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">vim /etc/security/limits.conf</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">* soft nofile 300000</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">* hard nofile 300000</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">* soft nproc 102400</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">* soft memlock unlimited</code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">* hard memlock unlimited</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/230464ce9a61758f002df0d9cf55a4d4.jpg"></p>
<p>
/etc/security/limits.conf</p>
<p>
<strong>错误4:</strong>max virtual memory areas vm.max_map_count is too low, increase to at least </p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/106de853f6f87a1347b96b03aaccd671.jpg"></p>
<p>
vm.max_map_count is too low</p>
<p>
solutions:</p>
<p>
先要切换到root用户;</p>
<p>
然后可以执行以下命令,设置 vm.max_map_count ,但是重启后又会恢复为原值。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_255956">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">sysctl -w vm.max_map_count=262144</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
持久性的做法是在 /etc/sysctl.conf 文件中修改 vm.max_map_count 参数:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_221414">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">echo "vm.max_map_count=262144" > /etc/sysctl.conf</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">sysctl -p</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/ccb2393157cc0e089335a6be7363e698.jpg"></p>
<p>
最后终于在外网访问成功:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/50c2ad08b48d180e875450547d2682a7.jpg"></p>
<p>
外网访问成功!</p>
<p>
<strong>安装可视化插件 elasticsearch-head</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_954301">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">git clone git:</code><code class="bash plain">//github</code><code class="bash plain">.com</code><code class="bash plain">/mobz/elasticsearch-head</code><code class="bash plain">.git</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">cd</code> <code class="bash plain">elasticsearch-</code><code class="bash functions">head</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">npm </code><code class="bash functions">install</code> <code class="bash comments"># 此处我试图用cnpm install有问题,用npm可以</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">npm run start</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/6cdfea58283f06baa5f329a1189ed22a.jpg"></p>
<p>
然后在外网访问http://你的安装机ip:9100</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/a4fee093530586a73c64f4c183c60a3c.jpg"></p>
<p>
访问elasticsearch-head可视化界面成功</p>
<p>
<strong>最后实际简单测试一下</strong></p>
<p>
新建 index,可以直接向 elastic 服务器发出 put 请求。下面的例子是新建一个名叫weather的 index。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/1394f24e597f997f99c6a883e2590669.jpg"></p>
<p>
用rest接口向es添加index</p>
<p>
然而刷新elasticsearch-head可视化界面可以看到索引已经成功插入</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解centos7上elastic search安装及填坑记" alt="详解centos7上elastic search安装及填坑记" src="https://zhuji.jb51.net/uploads/img/202305/38886c765ef561145fdbbb56c16181bc.jpg"></p>
<p>
索引已经插入</p>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
原文链接:https://www.jianshu.com/p/04f4d7b4a1d3</p>
頁:
[1]