主配置文件 elasticsearch.yml
https://www.bilibili.com/video/BV1nF411F75k/?p=12
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,表示所有主机均可访问。
#ES开启远程访问
network.host: 0.0.0.0
http.port
配置当前 ES 节点对外提供服务的 http 端口,默认值 9200
discovery.seed_hosts
配置参与集群节点发现过程的主机列表,说白一点就是集群中所有节点所在的主机列表,可以是具体的 IP 地址,也可以是可解析的域名。
cluster.initial_master_nodes
配置 ES 集群初始化时参与 master 选举的节点名称列表,必须与 node.name 配置的一致。
ES 集群首次构建完成后,应该将集群中所有节点的配置文件中的 cluster.initial_master_nodes 配置项移除,重启集群或者将新节点加入某个已存在的集群时切记不要设置该配置项。
修改 JVM 配置
修改 config/jvm.option 配置文件,调整 JVM 堆内存大小
-Xms4g
-Xmx4g
配置的建议
- Xms 和 Xmx 设置成一样
- Xmx 不要超过机器内存的 50%
- 不要超过 30GB —— https://www.elastic.co/cn/blog/a-heap-of-trouble
启动 ElasticSearch 服务
Windows
直接运行 elasticsearch.bat
Linux(CentOS 7)
ES 不允许使用 root 账号启动服务,如果当前是 root,则需要创建一个专有账户
非 root 用户
bin/elasticsearch
root
ES 默认不能用 root 用户启动,添加 -Des.insecure.allow.root=true 允许 root 启动,-d 后台启动
bin/elasticsearch -Des.insecure.allow.root=true -d