centos7 64位 elasticsearch 6.3.0 之前一开始用的32位,后来报错 elasticsearch6.3版本依赖的X-pack插件不支持32位 所以用的64位linux
elasticsearch和solr都是基于lucene开发的搜索引擎 lucene是用java开发的 所以java环境是必须的 而且elasticsearch6.3.0版本依赖的java版本应该是1.8+的 下载对应linux版本的jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html window发送文件到linux可以使用xshell,securityCRT等SSH连接工具 解压文件,-C指定解压目录
$ tar zxf jdk-xxx.tar.gz -C /usr
$ vi /etc/profile
在末尾添加
JAVA_HOME=/usr/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
生效环境配置
$ source /etc/profile
输入
$ java
可以看到相关命令提示就是安装成功了
下载elasticsearch https://www.elastic.co/downloads/elasticsearch 解压文件
$ tar zxf elasticsearch-xxx.tar.gz -C /usr
这一步坑比较多 进入解压后的文件夹的bin目录 运行elasticsearch
$ ./elasticsearch
咔~报错一大堆 首先,出于安全考虑,elasticsearch设置了不能以root用户运行 ok,创建一个新用户elasticsearch并配置密码
$ useradd elasticsearch
$ passwd elasticsearch
并指定这个用户加入一个es用户角色群组
$ groupadd es
$ usermod -a -G es elasticsearch
切换到新创建的elasticsearch用户
$ su elasticsearch
再运行一遍~
$ ./elasticsearch
咔~报错更多了 提示access denied 权限不够(~~) 没办法,很大一部分文件权限都是root才有 所以我们应该给es群组授权 切换到root
$ su root
指定解压的elasticsearch的文件夹的拥有者及群组
$ chown -R elasticsearch:es elasticsearch-6.3.0/
切回elasticsearch用户并运行
$ su elasticsearch
$ ./elasticsearch
咔~ 这一步因系统而异了,因为涉及到linux的一些默认配置 比如单个文件最大大小 最多线程数量这些 如果报错
bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [elasticsearch] likely too low, increase to at least [4096]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
切换到root用户 修改linux默认配置
$ su root
$ vi /etc/security/limits.conf
在末尾添加
@es soft nofile 65536
@es hard nofile 131072
@es soft nproc 4096
@es hard nproc 4096
第一个参数可以是用户名也可以是一个 @群组名 分别代表对一个用户授权或者对一个群组授权 接下来
$ vi /etc/sysctl.conf
在末尾添加
vm.max_map_count=655360
生效配置
$ sysctl -p
至此,elasticsearch可以正常运行
运行elasticsearch服务后,我们打开浏览器 访问http://es服务器ip:9200 还是访问不了 1.linux防火墙 先开启linux防火墙 ctrl+c取消运行elasticsearch服务后
$ su root
$ firewall-cmd --zone=public --add-port=9200/tcp --permanent
$ firewall-cmd --reload
--permanent参数代表永久开放,没有该参数则重启机器后端口不开放 此时运行elasticsearch 还是访问不了 2.修改elasticsearch.yml中的配置 出于安全起见 elasticsearch默认只允许本机localhost访问 修改elasticsearch的配置文件,允许别的ip访问
$ vi config/elasticsearch.yml
在末尾增加
network.host: 0.0.0.0
0.0.0.0代表所有ip都可以访问 文件中还可以设置自定义日志、数据目录,此处不再啰嗦 至此,重启elasticsearch
$ ./elasticsearch
打开浏览器访问 http://es服务器ip:9200 可以看到返回的elasticsearch相关信息 完成部署