
elasticsearch 默认版本自带jdk,由于我们已经配置好了jdk环境,所以这里下载no-jdk的elasticsearch版本。
官网下载地址: Download Elasticsearch Free | Get Started Now | Elastic | Elastichttps://www.elastic.co/cn/downloads/elasticsearch
3. 安装 3.1 将es下载到服务器wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-no-jdk-linux-x86_64.tar.gz3.2 解压压缩包
tar -zxvf elasticsearch-7.0.0-no-jdk-linux-x86_64.tar.gz
各个目录结构:
3.3. es与jdk之间的关系
由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行。所以选择安装的是no-jdk的版本。
3.4. 解决内存不足的问题由于 elasticsearch 默认分配 jvm空间大小为2g,本文测试使用,所以需要修改 jvm空间
进入config文件夹开始配置,编辑jvm.options:
vim /usr/local/soft/elasticsearch/e/config/jvm.options
3.5 修改elasticsearch.yml默认配置如下:
-Xms1g
-Xmx1g
默认的配置占用内存太多了,调小一些:
-Xms256m
-Xmx256m
vi elasticsearch.yml
修改数据和日志目录:
path.data: /home/yinlian/elasticsearch/data # 数据目录位置
path.logs: /home/yinlian/elasticsearch/logs # 日志目录位置
修改绑定的ip:
network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问(默认是只有本机访问)
3.6 创建专有用户启动esroot用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES
java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:101)
创建用户并且使用该用户启动:
创建用户:useradd user-es
创建所属组:chown user-es:user-es -R /usr/local/elasticsearch-7.13.2
切换到user-es: su user-es
进入目录:cd /usr/local/elasticsearch-7.13.2/bin
启动elasticsearch:
前台启动:./elasticsearch 终止服务:Ctrl + C 则程序终止
后台启动命令:./elasticsearch -d。终止服务:kill pid
说明:
Elasticsearch端口9300、9200,其中:
9300是tcp通讯端口,集群ES节点之间通讯使用,9200是http协议的RESTful接口
看错误我们会以为是es容器里的 /home/yinlian/elasticsearch/data/data/nodes文件夹目录没有读写权限,其实给提示误导了,实际是挂载的目录没有读写权限。比如我们宿主主机的配置目录为:/home/yinlian/elasticsearch/data,那么我们需要赋予它读写权限:
4.2 设置远程访问es数据库chmod 777 /home/yinlian/elasticsearch/data(指定存放数据的目录)
#默认只允许本机访问,修改为0.0.0.0后则可以远程访问
# 绑定到0.0.0.0,允许任何ip来访问
network.host: 0.0.0.0
设置之后启动出现了以下的错误:表明elasticsearch用户拥有的内存权限太小,至少需要262144
解决办法:
在 /etc/sysctl.conf 文件最后添加如下内容,即可永久修改
切换到root用户
执行命令:su root执行命令
vim /etc/sysctl.conf添加如下内容
vm.max_map_count=262144保存退出,刷新配置文件
sysctl -p切换user-es用户,继续启动
su user-es启动es服务
./elasticsearch
参考文档:Linux环境下安装Elasticsearch,史上最详细的教程来啦~_smilehappiness的博客-CSDN博客
elasticsearch设置远程访问_阳水平的博客-CSDN博客