安装 Elasticsearch
一、创建普通用户
ES 不能使用 root 用户来启动,必须使用普通用户来安装启动。这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等。
创建一个 es 专门的用户(必须)
使用 root 用户在三台机器执行以下命令
useradd lanson
passwd lanson
复制代码
二、为普通用户添加 sudo 权限
为了让普通用户有更大的操作权限,我们一般都会给普通用户设置 sudo 权限,方便普通用户的操作
三台机器使用 root 用户执行 visudo 命令然后为 es 用户添加权限
visudo
# 第100行
lanson ALL=(ALL) ALL
复制代码
三、上传压缩包并解压
以下操作 使用 root 用户 es 的相关的目录, 三台虚拟机都需要创建
# 在node1、node2、node3创建es文件夹,并修改owner为lanson用户
mkdir -p /export/server/es
chown -R lanson:lanson /export/server/es
复制代码
将 es 的安装包下载并上传到 node1.服务器的/export/software 路径下,然后进行解压
使用 lanson 用户来执行以下操作,将 es 安装包上传到 node1 服务器,并使用 es 用户执行以下命令解压。
# 解压Elasticsearch
cd /export/software/
tar -zvxf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /export/server/es/
复制代码
四、修改配置文件
1、修改 elasticsearch.yml
node1 服务器使用 lanson 用户来修改配置文件
cd /export/server/es/elasticsearch-7.6.1/config
mkdir -p /export/server/es/elasticsearch-7.6.1/log
mkdir -p /export/server/es/elasticsearch-7.6.1/data
rm -rf elasticsearch.yml
vim elasticsearch.yml
cluster.name: lanson-es
node.name: node1
path.data: /export/server/es/elasticsearch-7.6.1/data
path.logs: /export/server/es/elasticsearch-7.6.1/log
network.host: node1
http.port: 9200
discovery.seed_hosts: ["node1", "node2", "node3"]
cluster.initial_master_nodes: ["node1", "node2"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
复制代码
2、修改 jvm.option
修改 jvm.option 配置文件,调整 jvm 堆内存大小
node1 使用 lanson 用户执行以下命令调整 jvm 堆内存大小,每个人根据自己服务器的内存大小来进行调整。
cd /export/server/es/elasticsearch-7.6.1/config
vim jvm.options
-Xms2g
-Xmx2g
复制代码
五、将安装包分发到其他服务器上面
node1 使用 lanson 用户将安装包分发到其他服务器上面去
cd /export/server/es/
scp -r elasticsearch-7.6.1/ node2:$PWD
scp -r elasticsearch-7.6.1/ node3:$PWD
复制代码
六、node2 与 node3 修改 es 配置文件
node 与 node3 也需要修改 es 配置文件
node2 使用 lanson 用户执行以下命令修改 es 配置文件
cd /export/server/es/elasticsearch-7.6.1/config
mkdir -p /export/server/es/elasticsearch-7.6.1/log
mkdir -p /export/server/es/elasticsearch-7.6.1/data
vim elasticsearch.yml
cluster.name: lanson-es
node.name: node2
path.data: /export/server/es/elasticsearch-7.6.1/data
path.logs: /export/server/es/elasticsearch-7.6.1/log
network.host: node2
http.port: 9200
discovery.seed_hosts: ["node1", "node2", "node3"]
cluster.initial_master_nodes: ["node1", "node2"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
复制代码
node3 使用 lanson 用户执行以下命令修改配置文件
cd /export/server/es/elasticsearch-7.6.1/config
mkdir -p /export/server/es/elasticsearch-7.6.1/log
mkdir -p /export/server/es/elasticsearch-7.6.1/data
vim elasticsearch.yml
cluster.name: lanson-es
node.name: node3
path.data: /export/server/es/elasticsearch-7.6.1/data
path.logs: /export/server/es/elasticsearch-7.6.1/log
network.host: node3
http.port: 9200
discovery.seed_hosts: ["node1", "node2", "node3"]
cluster.initial_master_nodes: ["node1", "node2"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
复制代码
七、修改系统配置,解决启动时候的问题
由于现在使用普通用户来安装 es 服务,且 es 服务对服务器的资源要求比较多,包括内存大小,线程数等。所以我们需要给普通用户解开资源的束缚
1、普通用户打开文件的最大数限制
问题错误信息描述:
max file descriptors 4096 for elasticsearch process likely too low, increase to at least 65536
ES 因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除 linux 系统当中打开文件最大数目的限制,不然 ES 启动就会抛错
三台机器使用 lanson 用户执行以下命令解除打开文件数据的限制
sudo vi /etc/security/limits.conf
添加如下内容: 注意*不要去掉了
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
复制代码
此文件修改后需要重新登录用户,才会生效
2、普通用户启动线程数限制
问题错误信息描述
max number of threads 1024 for user es likely too low, increase to at least 4096
修改普通用户可以创建的最大线程数
max number of threads 1024 for user es likely too low, increase to at least 4096
原因:无法创建本地线程问题,用户最大可创建线程数太小
解决方案:修改 90-nproc.conf 配置文件。
三台机器使用 lanson 用户执行以下命令修改配置文件
Centos6
sudo vi /etc/security/limits.d/90-nproc.conf
Centos7
sudo vi /etc/security/limits.d/20-nproc.conf
复制代码
找到如下内容:
* soft nproc 1024
#修改为
* soft nproc 4096
3、普通用户调大虚拟内存
错误信息描述:
max virtual memory areas vm.max_map_count 65530 likely too low, increase to at least 262144
调大系统的虚拟内存
原因:最大虚拟内存太小
每次启动机器都手动执行下。
三台机器执行以下命令
第一种调整: 临时调整, 退出会话 重新登录 就会失效的 (测试环境下配置)
sudo sysctl -w vm.max_map_count=262144
复制代码
第二种: 永久有效 (生产中配置)
sudo vim /etc/sysctl.conf
复制代码
在最后添加一行
备注:以上三个问题解决完成之后,重新连接 secureCRT 或者重新连接 xshell 生效
八、启动 ES 服务
三台机器使用 lanson 用户执行以下命令启动 es 服务
nohup /export/server/es/elasticsearch-7.6.1/bin/elasticsearch 2>&1 &
启动成功之后 jsp 即可看到 es 的服务进程,并且访问页面
http://node1:9200/?pretty
http://node2:9200/?pretty
http://node3:9200/?pretty
能够看到 es 启动之后的一些信息
注意:如果哪一台机器服务启动失败,那么就到哪一台机器的
/export/server/es/elasticsearch-7.6.1/log
这个路径下面去查看错误日志
评论