cd /usr/local/
mkdir tool
cd tool
mkdir elasticsearch
cd elasticsearch
在刚刚创建好的文件夹内下载Elasticsearch(以下简称es)
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz
tar -xvf elasticsearch-7.16.2-linux-x86_64.tar.gz
cd elasticsearch-7.16.2/bin
./elasticsearch
如果需要后台启动的话,在启动命令后加&,如下所示:
./elasticsearch &
如果es是单独使用一台机器进行部署的话,则需要能够支持使用ip+端口的方式进行访问,在配置过程中可能会出现以下问题。
直接启动,遇到如图问题,如下:
这个问题是由于内存分配不够造成的,修改适合本机的内存,修改文件config/jvm.options
vi ../config/jvm.options
修改如下位置
由于我的服务器内存较小,修改为512m,具体可以根据情况修改,如下:
修改后在次启动:
./elasticsearch
出现如下错误:
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
如图
这个问题很明显,不允许使用root用户启动,那么我们新建一个es用户,并赋予权限:
添加es用户
useradd es
添加es用户密码
passwd es
将文件夹elasticsearch-5.4.2赋予es权限
chown -R es:es /usr/local/tool/elasticsearch/elasticsearch-5.4.2
切换为es用户
su es
再次启动es
./elasticsearch
这次启动成功了,我们在使用一个新的标签窗口登录root用户,输入命令验证一下:
curl -X GET http://localhost:9200
如图所示,可以成功访问
在浏览器访问http://118.24.242.170:9200/拒绝访问(118.24.242.170为服务器ip),首先检查端口是否开放,服务器安全组是否添加9200端口
使用root用户,打开elasticsearch.yml文件,如下:
vi /usr/local/tool/elasticsearch/elasticsearch-5.4.2/config/elasticsearch.yml
文件内增加如下代码
network.host: 0.0.0.0
使用es用户启动,发现又出现了错误如下,得到错误信息如图
使用root用户打开如下文件:
vim /etc/sysctl.conf
添加如下配置:
vm.max_map_count = 655360
使配置生效
/sbin/sysctl -p
再次执行./elasticsearch
如果操作了问题3的后重新启动时,出现了这个问题:
需要将配置文件中的配置放开注释
如果服务器没有安装JDK环境的话,会提示如下内容
此时,需要安装JDK,输入命令安装jdk1.8版本:yum install java-1.8.0-openjdk-devel.x86_64
执行完成后,输入 java -version,出现如下信息即可
最后使用es用户启动Elasticsearch,这次可以成功启动了,如果需要后台启动的话,在启动命令后加&,如下所示:
./elasticsearch &
安装过程中如遇到其他问题,欢迎补充!