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一般用于连接服务器)。
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数据保存地址和日志数据保存地址
第三步、添加es的映射外部访问的ip和端口号
第四步、设置节点名称和主节点数据(单机版主节点设置为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
- 1
解决方法:需要切换到root用户修改配置。
1、修改/etc/security/limits.conf 文件
添加内容如下所示。
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
- 1
- 2
- 3
- 4
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
- 1
- 2
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
表示配置的集群名称)
最后的结果如下:
浏览器访问如示。
以上单机版安装就此结束,已经可以正常使用es了。