centos7 虚拟机安装 elasticsearch6.4.x- 遇到的坑

本贴最后更新于 2268 天前,其中的信息可能已经时过境迁

环境安装

OS:Centos7x虚拟机 1H2G
jdk:1.8
elasticsearch:6.4.x

1、下载“elasticsearch-6.4.0.tar.gz”解压到/usr/local/elasticsearch 目录下。

2、启动 elasticSearch

这里需要注意的是,es 规定 root 用户不能启动 es,所以需要创建一个用户来启动 es

3、创建用户名为 es 的用户

useradd es

4、 设置 es 用户的密码

passwd es

5、 创建 es 的 data 和 logs 目录

mkdir elasticsearch-6.4.0/data
mkdir elasticsearch-6.4.0/logs 

6、 将 /usr/local/elasticsearch/elasticsearch-6.4.0 的拥有者设置为 es

 chown -R es:es /usr/local/elasticsearch/elasticsearch-6.4.0

编辑配置文件 config/elasticsearch.yml

vim config/elasticsearch.yml

进入后修改

network.host: 你自己的服务器ip
http.port: 9200

7、切换到 es 用户,启动 es

su es

8、-d 是后台启动,第一次不建议后台启动,前台启动可以直观的看到日志信息

bin/elasticsearch -d

可能遇到的错误:

问题:

1、 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法 提高 vm.max_map_count 的大小

切换到 root 用户

vim /etc/sysctl.conf

在最后面追加下面内容

vm.max_map_count=262144 # 

使用 sysctl -p 查看修改后的结果

sysctl -p

问题:

2、Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed;error=。。。

解决方法:

由于 elasticsearch5.0 默认分配 jvm 空间大小为 2g,修改 jvm 空间分配
如果使用虚拟机安装,内存最好不小于 2G

vim config/jvm.options -Xms512m -Xmx512m

在确定服务器端口(9200)开启,elasticsearch 启动的情况下(ps -ef | grep elasticsearch)可以在浏览器中访问

3、 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

  每个进程最大同时打开文件数太小,可通过下面 2 个命令查看当前数量

ulimit -Hn
ulimit -Sn

  修改/etc/security/limits.conf 文件,增加配置,用户退出后重新登录生效

*               soft    nofile           65536

*               hard    nofile           65536

问题: 

4、 max number of threads [3818] for user [es] is too low, increase to at least [4096]

 问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf,增加配置,用户退出后重新登录生效

   2018.09.06更改:
   @alanfans的提供
   `sysctl -p /etc/sysctl.conf`使文件生效,不用重启   

*               soft    nproc           4096

*               hard    nproc           4096

可通过命令查看

ulimit -Hu
ulimit -Su

  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 212 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • alanfans

    5.6
    6.4?

  • 其他回帖
  • someone

    谢谢

  • alanfans

    sysctl -p /etc/sysctl.conf 使文件生效,不用重启