环境准备
1.虚拟机CentOS7.6
2.elasticsearch7.8.0:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0
将tar包解压到指定目录
配置文件
1.Linux环境安装了jdk的,会和es自带jdk冲突,需要指定使用自带jdk,修改es的bin目录下elasticsearch如下:
# ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch
#=======添加配置解决jdk版本问题=====
export JAVA_HOME=/app/software/elasticsearch/elasticsearch-7.8.0-target/jdk
export PATH=$JAVA_HOME/bin:$PATH
#============
source "`dirname "$0"`"/elasticsearch-env
ES_JAVA_OPTS=`export ES_TMPDIR; "$JAVA" "$XSHARE" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_PATH_CONF"`
#=======添加配置解决jdk版本问题=====
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/app/software/elasticsearch/elasticsearch-7.8.0-target/jdk/bin/java"
else
JAVA=`which java`
fi
#============
# manual parsing to find out, if process should be detached
2.如果机器内存不够用,需要调小启动内存,在es的config目录下jvm.options文件:
默认配置如下:
-Xms2g
-Xmx2g
默认的配置占用内存太多了,调小一些:
-Xms256m
-Xmx256m
3.创建启动用户:es不允许用root启动,创建一个user-es用户:
①useradd user-es
②chown user-es:user-es -R /app/software/elasticsearch/elasticsearch-7.8.0
4.修改属性值:在config目录下的elasticsearch.yml
①path.data和path.log不指定会默认在es目录下
②network.host: 0.0.0.0
③cluster.name: elasticsearch
node.name: node1
cluster.initial_master_nodes: [“node1”]
④http.port: 9200
启动Elasticsearch
①切换到user-es:su user-es
②进入es的bin目录,./elasticsearch启动es,观察启动日志
遇到的两个错误:
1.ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法:在 /etc/sysctl.conf 文件最后添加如下内容,即可永久修改
切换到root用户
执行命令:su root
执行命令
vim /etc/sysctl.conf
添加如下内容
vm.max_map_count=262144
保存退出,刷新配置文件
sysctl -p
切换user-es用户,继续启动
su user-es
启动es服务
./bin/elasticsearch
2.[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决方法:切换到root用户,执行命令:
vi /etc/security/limits.conf
#<domain> <type> <item> <value>
#
#* soft core 0
#* hard rss 10000
* soft nofile 65536
* hard nofile 65536
#@student hard nproc 20
reboot重启服务器,再./bin/elasticsearch重启es
浏览器访问http://虚拟机ip:9200/后看到类似如下信息,表示ES启动成功文章来源:https://www.toymoban.com/news/detail-600297.html
{
"name": "node1",
"cluster_name": "elasticsearch",
"cluster_uuid": "SRwJX4sYQ8el4N5wj4tOmA",
"version": {
"number": "7.8.0",
"build_flavor": "default",
"build_type": "tar",
"build_hash": "4d960a0733be83dd2543ca018aa4ddc42e956800",
"build_date": "2021-06-10T21:01:55.251515791Z",
"build_snapshot": false,
"lucene_version": "8.8.2",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
集群搭建
1.克隆两台机器,将刚刚的es压缩包解压到相同路径
2.修改配置文件:
①cluster.name: elasticsearch7.8.0(三个节点名字要相同)
②node.name: node1(各不相同)
③节点类型node.master负责调度,node.data负责存储数据,正式环境一般主节点不要存储数据,每个节点单一功能整体效率更高。我的三个配置:
第一台
node.master: true
node.data: false
node.ingest: false
第二台
node.master: true
node.data: true
node.ingest: false
第三台
node.master: true
node.data: true
node.ingest: false
④写入候选主节点:discovery.seed_hosts: [“192.168.32.1”, “192.168.32.2”,“192.168.32.3”]
⑤初始化集群选举master:cluster.initial_master_nodes: [“node2”]
配置完逐台重启即可。我是启动es单独一个窗口,要退出直接ctrl+c,其他操作在新的窗口。
连接linux推荐SSH工具:MobaXterm,开源免费,相当于xshell和xftp的合体,操作命令时能同时传输文件,功能十分强大。
验证:浏览器访问http://192.168.32.2:9200/_cat/nodes?v(任意集群节点),出现类似以下信息则证明集群搭建完成文章来源地址https://www.toymoban.com/news/detail-600297.html
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.32.1 19 71 2 29.07 10.51 4.49 lmr - node1-source
192.168.32.2 8 61 0 7.07 2.58 0.99 dlmrt * node2-source
192.168.32.3 8 96 1 0.04 0.04 0.05 dlmrt - node3-source
到了这里,关于Linux搭建ElasticSearch单节点及集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!