前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES | ElasticSearch在Linux下的安装和启动、常见问题解决

ES | ElasticSearch在Linux下的安装和启动、常见问题解决

作者头像
码神联盟
发布2019-05-07 18:29:57
29.7K0
发布2019-05-07 18:29:57
举报
文章被收录于专栏:码神联盟码神联盟

环境要求

  • Linux(Centos 7)
  • ElasticSerach 6.6.1

ES下载

  • 下载地址:

https://www.elastic.co/cn/downloads/elasticsearch

ES安装

  • 进入Linux系统,切换到 /opt 目录下:
  • 在opt目录下,创建elasticsearch文件夹,并进入文件夹内:
  • 获取elasticearch安装包:
  • 方法1:可以使用在线下载命令,下载安装包:

下载命令:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.tar.gz

方法2:可以将之前已经下载好的安装包上传到当前目录下:

使用WinSCP工具,将下载到本地的安装包,上传到linux目录下

  • 解压elasticsearch安装包 tar -zvxf elasticsearch-6.6.1.tar.gz
  • 进入elasticsearch-6.6.1/config文件夹内,修改配置文件:

cd elasticsearch-6.6.1/config/

代码语言:javascript
复制
定位到#network.host: 192.168.0.1位置,在下面增加一行:

    network.host: 0.0.0.0
代码语言:javascript
复制
保存并退出(先按esc键,输入:wq!,按回车键即可)

启动

  • 启动elasticsearch为后台进程服务:
代码语言:javascript
复制
切换到bin目录下,执行如下命令:
代码语言:javascript
复制
启动命令:./elasticsearch -d

问题1:could not find java; set JAVA_HOME or ensure java is in PATH

代码语言:javascript
复制
解决方案:需要系统搭建Java环境,参考下面链接进行配置搭建Java环境(Java版本可更新)

《点我进行Java环境搭建》

代码语言:javascript
复制
搭建完毕之后,再次执行命令:./elasticsearch -d
  • 判断是否启动成功,可执行如下命令,查看是否启用9200端口即可
代码语言:javascript
复制
ss -tanl
代码语言:javascript
复制
发现没有启用9200,则代表es启动失败,需要查看具体原因:
代码语言:javascript
复制
接下来,则需要查看启动日志,切换到日志logs目录下
代码语言:javascript
复制
执行如下命令即可:

more elasticsearch.log
代码语言:javascript
复制
通过日志分析所得,启动es服务的时候,是不允许使用超级管理员root账户
那么接下来,我们需要创建一个普通用户likang
代码语言:javascript
复制
使用普通用户(likang)启动es服务即可,如下命令:

第一步:liunx创建新用户  adduser likang    
代码语言:javascript
复制
然后给创建的用户加密码 passwd likang    输入两次密码.
代码语言:javascript
复制
第二步:给新建的XXX赋权限,chown -R likang /opt/elasticsearch/
代码语言:javascript
复制
第三步:切换到likang普通用户下,执行启动命令
  • 再次验证es是否启动成功,发现还是失败,再次查看日志,分析如图:
代码语言:javascript
复制
问题:max file descriptors [4096] for elasticsearch process is too low, 
代码语言:javascript
复制
increase to at least [65536]


原因:每个进程最大同时打开文件数太小

查看当前系统同时打开进程数的默认值:

    ulimit -Hn
    ulimit -Sn
代码语言:javascript
复制
解决方案:切换到root账户,修改/etc/security/limits.conf文件,
代码语言:javascript
复制
增加配置,用户退出后重新登录生效

su root

输入密码

vi /etc/security/limits.conf

在文件最后,增加如下配置:

likang    hard     nofile     65536 
likang    soft     nofile     65536
*         soft     nproc      4096
*         hard     nproc      4096
  • 再次启动验证,发现还有问题,如下:
代码语言:javascript
复制
问题:max virtual memory areas vm.max_map_count [65530] is too low, 
代码语言:javascript
复制
increase to at least [262144]

原因:elasticsearch用户拥有的内存权限太小,至少需要262144

解决:切换到root用户,在/etc/sysctl.conf文件最后添加一行
    vm.max_map_count=655360

    添加完毕之后,执行命令:
        sysctl -p
  • 再次切换到likang普通用户,重新启动es服务。

远程访问

  • 开启9200端口号访问

/sbin/iptables -I INPUT -p tcp --dport 9200 -j ACCEPT

  • 可在浏览器中输入如下地址:http://192.168.73.131:9200/
  • 如果显示如上信息,则代表Linux下ES已经搭建完毕(单机)

停止

  • 若是es的前台运行,则用ctrl + c 来停止。
  • 若是es的后台运行,则用kill -9 进程号 来停止。(可通过jps命令,查看es进程号)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码上有猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档