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 地址,也可以是可解析的域名。