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

posted @ 2023-12-12 17:08  笨功夫才是真功夫  阅读(8)  评论(0编辑  收藏  举报