Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据
更多信息可以参考官网:https://www.elastic.co/cn/what-is/elasticsearch/
不同版本的Elasticsearch需要不同版本的JDK
支持详情见:https://www.elastic.co/cn/support/matrix#matrix_jvm
我下载了linux的7.11.0版本,这个版本需要JDK11支持
版本列表见:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
在opt目录下解压安装直接解压安装即可
在elasticsearch的config目录下有个elasticsearch.yml文件,将IP配置为本机IP,端口使用默认端口,配置localhost会导致外部无法访问
network.host: 10.116.8.56
此外,elasticsearch无法在root权限下运行,要单独建立一个用户,这里建立用户组es,然后在这个组下建立用户es,密码为elasticsearch,然后将elasticsearch的文件目录权限分配给es用户
group add es
useradd es -g es -p elasticsearch
chown -R es:es /opt/elasticsearch-7.11.0
linux默认一个进程最大打开文件数为4096个,es运行需要修改这个配置,设置每个线程最少可以打开65535个文件
通过 ulimit -Hn、ulimit -Sn
可以查看当前的设置的预警值和报错值
在 /etc/security/limits.conf
中添加下列两个参数进行配置
* soft nofile 65536
* hard nofile 65536
soft表示预警值(超过这个值系统就告警),hard表示报错的值(超过这个值系统就报错)
除此之外,还要对linux的VMA进行配置,它限制了一个进程最多能拥有的VMA(虚拟内存区域)的数量,es最低要求为262144,系统默认65530
通过 sysctl -a|grep vm.max_map_count
可以查看当前设置的值
在 /etc/sysctl.conf
中添 vm.max_map_count=262144
,然后执行 sysctl -p
使其生效
启动可能会报以下错误
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
意思就是 discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes
三个配置中最少配置一项
这里添加下列配置(就是设置当前节点为主节点),seed_hosts和initial_master_nodes都是自己
cluster.name: my-application
node.name: node-1
discovery.seed_hosts: ["10.116.8.56"]
cluster.initial_master_nodes: ["node-1"]
在bin目录下执行sh ./elasticsearch即可启动,后台运行请使用nohup