ElasticSearch 安装运行
https://www.bilibili.com/video/BV1nF411F75k/?p=11
环境准备
- 运行 Elasticsearch,需安装并配置 JDK
- 设置 $JAVA_HOME
- 各个版本对 Java 的依赖 https://www.elastic.co/support/matrix#matrix_jvm
- Elasticsearch 5 需要 Java 8 及以上版本
- Elasticsearch 从 6.5 开始支持 Java 11
- 7.0 开始,内置了 Java 环境
- ES 比较耗内存,建议虚拟机4G或以上内存,JVM 1G 以上的内存分配
可以参考 es 的环境文件 %ES_HOME%\bin\elasticsearch-env.bat
if defined ES_JAVA_HOME (
set JAVA="%ES_JAVA_HOME%\bin\java.exe"
set JAVA_TYPE=ES_JAVA_HOME
) else if defined JAVA_HOME (
rem fallback to JAVA_HOME
echo "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2
set JAVA="%JAVA_HOME%\bin\java.exe"
set "ES_JAVA_HOME=%JAVA_HOME%"
set JAVA_TYPE=JAVA_HOME
) else (
rem use the bundled JDK (default)
set JAVA="%ES_HOME%\jdk\bin\java.exe"
set "ES_JAVA_HOME=%ES_HOME%\jdk"
set JAVA_TYPE=bundled JDK
)
ES 的 JDK 环境生效的优先级配置 ES_JAVA_HOME > JAVA_HOME > ES_HOME
Windows 上“此电脑”→“属性”→“高级系统设置”→“高级”→“环境变量”→“系统变量”新增 ES_JAVA_HOME 项参数
下载并解压 Elasticsearch
下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
选择版本:7.17.3
Elasticsearch 文件目录结构
目录 | 描述 |
---|---|
bin | 脚本文件,包括启动 elasticsearch ,安装插件,运行统计数据等 |
config | 配置文件目录,如 elasticsearch 配置、角色配置、jvm配置等 |
jdk | java运行环境 |
data | 默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境需要修改 |
lib | elasticsearch 依赖的 Java 类库 |
logs | 默认的日志文件存储路径,生产环境需要修改 |
modules | 包含所有的 Elasticsearch 模块,如 Cluster、Discovery、Indices 等 |
plugins | 已安装插件目录(比如分词器插件就放这里) |
https://www.bilibili.com/video/BV1nF411F75k/?p=12
主配置文件 elasticsearch.yml
cluster.name
当前节点所属集群名称,多个节点如果要组成同一个集群,那么集群名称一定要配置成相同。
默认值 elasticsearch,生产环境建议根据 ES 集群的使用目的修改成合适的名字。
node.name
当前节点名称,默认值当前节点部署所在机器的主机名,所以如果一台机器上要起多个 ES 节点的话,需要通过配置该属性明确指定不同的节点名称。
path.data
配置数据存储目录,比如索引数据等,默认值 $ES_HOME/data,生产环境下强烈建议部署到另外的安全目录,防止 ES 升级导致数据被误删除。
path.logs
配置日志存储目录,比如运行日志和集群健康信息等,默认值 $ES_HOME/logs,生产环境下强烈建议部署到另外的安全目录,防止 ES 升级导致数据被误删除。
bootstrap.memory_lock
配置 ES 启动时是否进行内存锁检查,默认值 true。
ES 对于内存的需求比较大,一般生产环境建议配置大内存,如果内存不足,容易导致内存交换到磁盘,严重影响 ES 的性能。
所以默认启动时进行相应大小内存的锁定,如果无法锁定则会启动失败。
network.host
配置能够访问当前节点的主机,默认值为当前节点所在机器的本机回环地址 127.0.0.1 和 [::1],这就导致默认情况下只能通过当前节点所在主机访问当前节点。
可以配置为 0.0.0.0,表示所有主机均可访问。
http.port
配置当前 ES 节点对外提供服务的 http 端口,默认值 9200
discovery.seed_hosts
配置参与集群节点发现过程的主机列表,说白一点就是集群中所有节点所在的主机列表,可以是具体的 IP 地址,也可以是可解析的域名。