ES(7.4.2)安装指南

1. 安装环境

1.1. 安装配置

1、新版本要求至少jdk1.8以上。

1)从Elasticsearch 5开始需要 Java 8 以上版本;
2)Elasticsearch 6.5 开始支持 Java 11;
3)Elasticsearch 7.0 开始,内置了 Java 环境,因此安装 7.0+ 版本会方便很多。

2、支持tar、zip、rpm等多种安装方式。在windows下开发建议使用ZIP解压方式安装,Linux下推荐使用tar.gz解压方式安装。

3、同时也支持docker方式安装。详情参见官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html

1.2. 下载ElasticSearch

最新版本需要访问 ElasticSearch 官网下载: https://www.elastic.co/cn/downloads/elasticsearch
其他版本见Elastic 中文社区,地址:https://elasticsearch.cn/download
我这里下载的是:ElasticSearch-7.4.2,分别有Linux和Windows版本
Windows:elasticsearch-7.4.2-windows-x86_64.zip
Linux:elasticsearch-7.4.2-linux-x86_64.tar.gz
官网下载可能有些慢,因此一般采用国内镜像或者是其他人下载好上传到网盘的版本,这里将我使用的挂出来,百度网盘链接:https://pan.baidu.com/s/1_hpK03HaFA2xxlUWDU2RUQ,提取码:gblk

2. Windows下安装

将下载elasticsearch的Windows版,指定位置解压缩。会得到如下所示文件和文件夹目录结构。
在这里插入图片描述
bin:脚本目录,包括:启动、停止等可执行脚本
config:配置文件目录
data:索引目录,存放索引文件的地方
jdk:内置的jdk
lib:依赖的jar,类库
logs:日志目录
modules:模块目录,包括了es的功能模块
plugins:插件目录,es支持插件机制(用于扩展,常见的有集成分词器ik等)

2.1. 启动ES

在bin目录下找到elasticsearch.bat,双击运行。
在这里插入图片描述
启动成功,界面输出默认访问的端口号,分别是http访问的9200端口和java程序通信的tcp访问端口:9300如示。
在这里插入图片描述
浏览器验证,地址栏输入:http://127.0.0.1:9200,显示如下内容表示ES安装完成。

在这里插入图片描述

3. Linux下安装

3.1. ES安装文件上传

1、首先选择下服务器的上传目录,例如在/usr/apps/ elasticsearch(此目录为我这里放置es的目录),使用ftp工具上传文件包(例如我这里使用的是Xftp,他和Xshell一般用于连接服务器)。
在这里插入图片描述

扫描二维码关注公众号,回复: 12870495 查看本文章

2、解压压缩包,命令行:tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz
目录树如下所示。
在这里插入图片描述

3.2. 运行 Elasticsearch

前台启动命令bin/elasticsearch
启动可能的错误:future versions of Elasticsearch will require Java 11; your Java version from [/usr/apps/java/jdk1.8.0_221/jre] does not meet this requirement
[2020-09-12T22:52:06,657][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [192.168.235.129] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
信息如示。
在这里插入图片描述

原因:1、说明这个版本对应的jdk应该是java11。但是我们服务器安装环境中jdk是java8。而新版的es是自带jdk的,于是和机器环境变量的冲突了(但是这个不是主因,因为他使用的是自带的jdk)。
2、错误的真正原因是:es在Linux下启动时不能使用root用户,因此需要额外添加用户解决这个问题

3.3. 添加用户

由于Elasticsearch5.0之后,不能使用root账户启动,因此需要创建一个es用户。
添加命令useradd esuser
赋权命令chown -R esuser:esuser /usr/apps/elasticsearch/elasticsearch-7.4.2
再次启动(前台启动命令):bin/elasticsearch,结果信息显示有“Security is disabled”表示启动完成,如下图所示。
在这里插入图片描述
推荐使用后台启动的方式。命令:bin/elasticsearch -d
验证启动,命令:curl 'http://127.0.0.1:9200',显示信息如示。表示可以正常使用

在这里插入图片描述

3.4. 修改核心配置文件elasticearch.yml

elasticearch.yml文件中主要定义以下内容:
1、集群名称;
2、当前的es节点名称;
3、data数据保存地址和日志数据保存地址;
4、绑定es网络ip;
5、集群节点修改为之前的节点名称

第一步、添加集群名称和节点名称(ES支持进行集群搭建,它自身对集群自定义实现,可以快速搭建),若是仅使用单机版(此步骤可不用设置)
在这里插入图片描述
第二步、添加es的 data数据保存地址和日志数据保存地址
(可能需要创建对应位置的data目录,手动创建的目录需要添加到esuser用户所属)
在这里插入图片描述
第三步、添加es的映射外部访问的ip和端口号
在这里插入图片描述
注意配置:network.host: 0.0.0.0表示根据机器的网络自动绑定(某些云可能无法绑定公网,例如阿里云,这里就可使用此方式)

第四步、设置节点名称和主节点数据(单机版主节点设置为1,节点名称采用易于记忆的名称,如:记录在Node位置配置名称)
在这里插入图片描述
第五步、设置是否可以通过正则或者_all删除或者关闭索引库,默认true表示必须需要显式指定索引库名称
在这里插入图片描述
elasticsearch.yml的其它可配置信息:

属性名 说明
cluster.name 配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。
node.name 节点名,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
path.conf 设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch
path.data 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开
path.logs 设置日志文件的存储路径,默认是es根目录下的logs文件夹
path.plugins 设置插件的存放路径,默认是es根目录下的plugins文件夹
bootstrap.memory_lock 设置为true可以锁住ES使用的内存,避免内存进行swap
network.host 设置bind_host和publish_host,设置为0.0.0.0允许外网访问
http.port 设置对外服务的http端口,默认为9200。
transport.tcp.port 集群结点之间通信端口
discovery.zen.ping.timeout 设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些
discovery.zen.minimum_master_nodes 主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2

3.5. 配置内存设置文件jvm.options

内存容量较小时修改默认配置:-Xms1g -Xmx1g为-Xms512m -Xmx512m。
在这里插入图片描述
备注:配置好内存大小以及es所需各项参数后。启动报错:

ERROR: [3] bootstrap checks failed

在这里插入图片描述
解决方法:需要切换到root用户修改配置。
1、修改/etc/security/limits.conf 文件
添加内容如下所示。

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

在这里插入图片描述
在这里插入图片描述
2、修改 /etc/sysctl.conf 文件。增加 vm.max_map_count=262145
在这里插入图片描述
修改完成使用命令:sysctl -p 刷新使用
在这里插入图片描述
注意点:
1、机器内存可能不够,就需要修改 JVM 参数,配置文件路径为 config/jvm.options,ES V7.1 版本默认为 1g, 老版本为2g,可自行修改。
2、Xmx 和Xms 数值请设置相同;
3、Xmx 不要超过机器内存的 50%;
4、内存总量不要超过 30GB, 参见官方文档 https://www.elastic.co/cn/blog/a-heap-of-trouble;

3.6. 开启防火墙的访问端口

1、添加端口

firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent

2、重启防火墙firewall-cmd --reload
3、查看开放端口firewall-cmd --list-port
在这里插入图片描述
4、外部访问地址(ip+端口),例如:192.168.235.129:9200
1)查看前台方式(bin/elasticsearch)启动结果
在这里插入图片描述
外部访问看到信息:
在这里插入图片描述
2)后台启动结果(bin/elasticsearch -d或者到bin目录下执行./elasticsearch -d
在这里插入图片描述
查看日志信息,命令:cat logs/my-elasticsearch.log(其中:my-elasticsearch表示配置的集群名称)
最后的结果如下:
在这里插入图片描述
浏览器访问如示。
在这里插入图片描述
5、Linux访问地址(curl ip+端口),例如:curl 192.168.235.129:9200
在这里插入图片描述

以上单机版安装就此结束,已经可以正常使用es了。

猜你喜欢

转载自blog.csdn.net/rao991207823/article/details/108558616