ElasticSearch6.3.1在多系统下的安装与启动
我第一次安装ES时候踩过不少坑(主要是Linux系统下), 所以今天把在windows和Linux下安装启动ES进行了总结(第一次写博客,排版别喷)
往下看完,不仅有windows还有Linux的(都是基于6.3.1版本,但是其他版本也部分适用)
一、Windows版本ES安装与启动
1.1 下载ES压缩包
ElasticSearch分为Linux和Window版本,基于我们主要学习的是ElasticSearch的Java客户端的使用,所以我们课程中使用的是先安装较为简便的Window版本,项目上线后,公司的运维人员会安装Linux版的ES供我们连接使用。
ElasticSearch的官方地址: https://www.elastic.co/products/elasticsearch
1.2 安装ES服务
注意:ElasticSearch是使用java开发的,且本版本的es需要的jdk版本要是1.8以上,所以安装ElasticSearch之前保
证JDK1.8+安装完毕,并正确的配置好JDK环境变量,否则启动ElasticSearch失败
Window版的ElasticSearch的安装很简单,类似Window版的Tomcat,直接解压到某目录下即安装成功,解压后的ElasticSearch的目录结构如下:
1.3 启动ES服务
点击ElasticSearch下的bin目录下的elasticsearch.bat启动,控制台显示的日志信息如下:
注意:9300是集群节点间通讯接口,9200是http协议的RESTful客户端访问接口 。
通过浏览器访问ElasticSearch服务器,看到如下返回的json信息,代表服务启动成功:
二、Linux版本ES单机安装与启动
1 安装环境
Centos7 + jdk8
以下内容详细观看
2 创建目录,上传,解压
在/usr/local下创建目录elasticsearch
(目录这种东西你们随意,我只是习惯在这)
进入刚创建的目录 然后rz上传es6.3.1版本的tar包
tar解压上传的压缩包到当前目录
3 配置
我们先启动elasticsearch看看
进入到/usr/local/elasticsearch/elasticsearch-6.3.1/bin目录下启动ealsticsearch
./elasticsearch
报错,不能使用root用户运行,需要改成其他非root用户才能启动(6.0版本开始都必须非root启动)
创建 esuser用户
adduser esuser
将elasticsearch6.3.1文件夹授权给esuser用户及用户组
切换到esuser用户下
用新创建的esuser用户再次启动elasticsearch
报错原因:因为es至少需要使用系统至少2g的空间,所以es拒绝启动
我们需要在jvm.options(jvm配置文件)中配置es能够使用的jvm内存大小
cd到/usr/local/elasticsearch/elasticsearch-6.3.1/config下修改jvm.options文件后保存退出
vim jvm.options
在当前config目录下再修改elasticsearch.yml(集群配置文件)配置文件
配置es的host地址(这样外网才能允许访问)然后保存退出
vim elasticsearch.yml
我们再次启动elasticsearch
报错:说我们电脑太low了,最大打开文件数量太小,然后他自动关闭了(鄙视我们)
报错原因:Linx的默认线程数,最大文件数,最大内存数都不够,需要修改linux配置
4 修改linux配置(配合es的启动需求)
两处修改 切换到root用户下进行操作
4.1、 修改linux的limits配置文件,设置内存线程和文件
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
4.2、 修改linux的sysctl配置文件,配置系统使用内存
vim /etc/sysctl.conf
4.3保存退出后执行以下命令,让配置生效
sysctl -p
4.4返回esuser用户,再次启动elasticsearch
仔细检查,日志都是info级别,没有问题,去页面访问xx.xx.xx.xx:9200
页面会出现如下信息:
至此,elasticsearch在linux系统上安装完毕
废话几句:
在后台启动Elasticsearch:
我们之前用的启动方式./elasticsearch是在前台启动,当我们关闭命令行或者退出,es应用就会关闭忽略日志,将日志加入到nohup.out的文件里面 nohup ./elasticsearch &
也可使使用以下命令,当我们退出后,让他在后台运行 ./elasticsearch -d