elasticsearch安装-集群
下载安装包
国内镜像,速度非常快
https://mirrors.huaweicloud.com/elasticsearch/
https://mirrors.huaweicloud.com/kibana/
wget https://mirrors.huaweicloud.com/elasticsearch/7.9.3/elasticsearch-7.9.3-linux-x86_64.tar.gz
安装
准备3台机器:
1、安装目录:
/usr/local/elasticsearch-7.9.3
2、解压
tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz -C /usr/local
3、解决es强依赖jdk问题
由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行,报错如下:
warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_291/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
注:如果Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错
解决办法:
修改elasticsearch启动脚本
vim /usr/local/elasticsearch-7.9.3/elasticsearch
在
source "`dirname "$0"`"/elasticsearch-env
这句后面追加以下
############## 添加配置解决jdk版本问题 ##############
# 将jdk修改为es中自带jdk的配置目录
export JAVA_HOME=/usr/local/elasticsearch-7.13.2/jdk
export PATH=$JAVA_HOME/bin:$PATH
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/elasticsearch-7.13.2/jdk/bin/java"
else
JAVA=`which java`
fi
4、新增专用用户并授权
#新增专用用户
useradd user-es
#为用户授权目录:
chown user-es:user-es -R /usr/local/elasticsearch-7.9.3
es用户拥有的内存权限太小,至少需要262144
切换到root用户,执行命令
vim /etc/sysctl.conf
文件最后添加 vm.max_map_count=262144
5、设置集群和节点, 启动
# 10.10.1.11机器的配置
vim /usr/local/elasticsearch-7.9.3/config/elasticsearch.yml
cluster.name: testes
node.name: es-node0
network.host: 10.10.1.11
discovery.seed_hosts: ["10.10.1.11","10.10.1.12","10.10.1.13"]
cluster.initial_master_nodes: ["es-node0","es-node1","es-node2"]
# 10.10.1.12机器的配置
vim /usr/local/elasticsearch-7.9.3/config/elasticsearch.yml
cluster.name: testes
node.name: es-node1
network.host: 10.10.1.12
discovery.seed_hosts: ["10.10.1.11","10.10.1.12","10.10.1.13"]
cluster.initial_master_nodes: ["es-node0","es-node1","es-node2"]
# 10.10.1.13机器的配置
vim /usr/local/elasticsearch-7.9.3/config/elasticsearch.yml
cluster.name: testes
node.name: es-node2
network.host: 10.10.1.13
discovery.seed_hosts: ["10.10.1.11","10.10.1.12","10.10.1.13"]
cluster.initial_master_nodes: ["es-node0","es-node1","es-node2"]
启动
su user-es
前台运行:
/usr/local/elasticsearch-7.9.3/bin/elasticsearch
后台运行:
/usr/local/elasticsearch-7.9.3/bin/elasticsearch -d
跟踪日志tail -100f /usr/local/elasticsearch-7.9.3/logs/testes.log
出现started为正常
6、可能遇到的问题
6.1 可能遇到 max file descriptors [4096]问题
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
切换到root用户,执行命令
vi /etc/security/limits.conf
文件最后添加
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
重启linux
6.2 可能遇到 max number of threads [2048] for user [user-es] is too low, increase to at least [4096]
切换到root用户,执行命令
vi /etc/security/limits.conf
文件最后添加
user-es - nproc 65535
重启linux