ElasticSearch单机搭建与启动(避坑全书)

来源:互联网 发布:plsql怎么执行sql文件 编辑:程序博客网 时间:2024/05/21 03:56

  • 安装启动过程
  • 启动过程中可能遇见的问题
    • 1JVM内存问题
    • 2根权限执行问题
    • 3Es用户权限不足
    • 4内存问题

工作需要,学习了一下ElasticSearch的搭建,过程中碰到很多问题,查了不少资料,在此做个汇总,也希望给后人铺个路~

  • Es版本:5.6.3

安装启动过程

1.首先安装java(jdk1.7或1.8都可以),并配置环境变量。(原来有安装配置过的略过此步)

2.使用curl指令下载es:

$ curl -L -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch/elasticsearch-5.6.3.tar.gz

然后使用 $tar xzf elasticsearch-5.6.3.tar.gz解压es。

3.修改访问es的ip及端口

# vim /usr/local/elasticsearch/elasticsearch-5.6.3/config/elasticsearch.yml

这里写图片描述

如图将host与port参数配置的注释取消,并配置host为本机ip即可:

4.进入解压出来的es目录的bin下,启动es节点和单集群:

 $ ./elasticsearch

5.启动成功后,在web浏览器中输入192.168.179.129:9200,如果返回以下页面,则说明成功。

这里写图片描述

或者在shell中直接curl http://192.168.179.129:9200,如果返回以下信息也说明成功:
这里写图片描述

启动过程中可能遇见的问题

(1)JVM内存问题

如果遇到:
这里写图片描述
说明jvm启动内存太大,机器内存不足(如果按照之前虚拟机配置中的1G来配置,则会出现此问题,因为es默认jvm启动内存是2g,所以我们需要配置一下es的启动内存)
编辑es/config/jvmoptions文件,修改以下两个参数:

#-Xms2g#-Xmx2g-Xms512m-Xmx512m

(2)根权限执行问题

如果遇到:
这里写图片描述
根据提示,无法以根权限启动es程序,所以我们创建一个非根用户,并给它赋予目录该用户权限。

# groupadd es# useradd es -g es -p es# chown -R es:es /usr/local/elasticsearch/# sudo su es

再为新建的es用户配置一下环境变量,将之前root用户的内容拷贝过来(主要是java的环境变量):‘

# vim ~/.bash_profile# java environmentexport JAVA_HOME=/usr/local/java/jdk1.8.0_91export JRE_HOME=$JAVA_HOME/jreexport PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

用source指令使配置生效:

# source ~/.bash_profile

再次启动es。

(3)Es用户权限不足:

如果遇到:
这里写图片描述

这是在之前root用户给es用户赋权时没有完全将es目录的所有文件权限给es,重新用root用户身份执行:(-R参数不要掉,表示递归将es目录下所有文件权限给es用户)
# chown -R es:es /usr/local/elasticsearch/

(4)内存问题:

这里写图片描述
有[1][2][3]三个问题,逐一解决:

[1]: initial heap size [16777216] not equal to maximum heap size [257949696]; this can cause resize pauses and prevents mlockall from locking the entire heap
第一个问题还是jvm内存问题,请重新检查可能碰到的问题(1)JVM内存问题,按照步骤重新检查一遍。

[2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
Es进程设置的最大文件描述符太小,需要增加。
编辑/etc/security/limits.conf,最后加上:

es soft nofile 65536
es hard nofile 65536

然后重新连接shell,切换到es用户,再尝试启动es。

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
是以为操作系统的vm.max_map_count参数设置太小导致的,请使用root用户登录系统,执行以下命令:
sysctl -w vm.max_map_count=262144
并用以下命令查看是否修改成功
sysctl -a | grep “vm.max_map_count”
如果能正常输出262144,则说明修改成功

原创粉丝点击