安装elasticsearch7.2集群 节点 IP 系统 功能 CPU 内存 硬盘 node1 10.80.10.1 centos7.9 elasticsearch 4核心 8GB 20GB node2 10.80.10.2 centos7.9 elasticsearch 4核心 8GB 20GB node3 10.80.10.3 centos7.9 elasticsearch 4核心 8GB 20GB
node1、node2、node3
卸载系统自带java,安装新java:
1 2 3 # rpm -qa | grep java # rpm -e --nodeps xxxxxx # yum install -y java-1.8.0-openjdk-devel
下载安装elasticsearch:
下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-2-1
1 2 3 4 5 # cd /usr/local/src/ # wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.1-linux-x86_64.tar.gz # tar -xzvf elasticsearch-7.2.1-linux-x86_64.tar.gz # mv elasticsearch-7.2.1 /usr/local/elasticsearch # cp /usr/local/elasticsearch/config/elasticsearch.yml{,.bak}
node1
修改配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # vim /usr/local/elasticsearch/config/elasticsearch.yml #集群名称(此名称在任何节点的配置文件下都是一致的) cluster.name: my-es #节点名称(这里需要修改,第一个节点是node-1,配置第二个节点的时候就是node-2) node.name: node-1 #是不是有资格主节点 node.master: true #是否存储数据 node.data: true #最大集群节点数 node.max_local_storage_nodes: 3 #网关地址 network.host: 0.0.0.0 #端口 http.port: 9200 #内部节点之间沟通端口 transport.tcp.port: 9300 #es7.x之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点 #部署在一个服务器用于测试的的伪分布式就用不同的端口,真分布式的话自行修改ip地址 discovery.seed_hosts: ["10.80.10.1","10.80.10.2","10.80.10.3"] #es7.x之后新增的配置,初始化⼀个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-1", "node-2","node-3"] #数据和存储路径 path.data: /usr/local/elasticsearch/data path.logs: /usr/local/elasticsearch/logs
node2
修改配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # vim /usr/local/elasticsearch/config/elasticsearch.yml #集群名称(此名称在任何节点的配置文件下都是一致的) cluster.name: my-es #节点名称(这里需要修改,第一个节点是node-1,配置第二个节点的时候就是node-2) node.name: node-2 #是不是有资格主节点 node.master: true #是否存储数据 node.data: true #最大集群节点数 node.max_local_storage_nodes: 3 #网关地址 network.host: 0.0.0.0 #端口 http.port: 9200 #内部节点之间沟通端口 transport.tcp.port: 9300 #es7.x之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点 #部署在一个服务器用于测试的的伪分布式就用不同的端口,真分布式的话自行修改ip地址 discovery.seed_hosts: ["10.80.10.1","10.80.10.2","10.80.10.3"] #es7.x之后新增的配置,初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-1", "node-2","node-3"] #数据和存储路径 path.data: /usr/local/elasticsearch/data path.logs: /usr/local/elasticsearch/logs
node3
修改配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # vim /usr/local/elasticsearch/config/elasticsearch.yml #集群名称(此名称在任何节点的配置文件下都是一致的) cluster.name: my-es #节点名称(这里需要修改,第一个节点是node-1,配置第二个节点的时候就是node-2) node.name: node-3 #是不是有资格主节点 node.master: true #是否存储数据 node.data: true #最大集群节点数 node.max_local_storage_nodes: 3 #网关地址 network.host: 0.0.0.0 #端口 http.port: 9200 #内部节点之间沟通端口 transport.tcp.port: 9300 #es7.x之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点 #部署在一个服务器用于测试的的伪分布式就用不同的端口,真分布式的话自行修改ip地址 discovery.seed_hosts: ["10.80.10.1","10.80.10.2","10.80.10.3"] #es7.x之后新增的配置,初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-1", "node-2","node-3"] #数据和存储路径 path.data: /usr/local/elasticsearch/data path.logs: /usr/local/elasticsearch/logs
node1、node2、node3
修改jvm使用内存,默认1g,暂不修改:
1 2 3 # vim /usr/local/elasticsearch/config/jvm.options -Xms1g -Xmx1g
最小堆内存和最大堆内存设置相同,防止内存抖动。 最大堆内存不超过32g。 创建用户,root不能登录:
1 2 # adduser test # echo '123456' | passwd --stdin test
修改目录权限:
1 # chown -R test /usr/local/elasticsearch/
启动elasticsearch,第一次启动建议前台启动:
1 # su - test /usr/local/elasticsearch/bin/elasticsearch
报错:ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
优化服务器参数配置,新建终端生效:
1 2 3 4 5 6 # vim /etc/security/limits.conf # 尾行,添加配置 * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
1 2 3 # vim /etc/sysctl.conf # 尾行,添加配置 vm.max_map_count = 262145
再次启动,后台启动:
1 2 # su test $ /usr/local/elasticsearch/bin/elasticsearch -d
查看日志:
1 $ tail -f /usr/local/elasticsearch/logs/my-es.log
访问测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 $ curl http://10.80.10.1:9200 { "name" : "node-1", "cluster_name" : "my-es", "cluster_uuid" : "KRC0W8tGRsKQVEVnsQE3ng", "version" : { "number" : "7.2.1", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "fe6cb20", "build_date" : "2019-07-24T17:58:29.979462Z", "build_snapshot" : false, "lucene_version" : "8.0.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } now, for Search" } $ curl http://10.80.10.1:9200/_cat/nodes?v ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 10.80.10.2 20 40 5 0.26 0.14 0.08 mdi * node-2 10.80.10.1 29 40 4 0.10 0.08 0.06 mdi - node-1 10.80.10.3 27 40 4 0.15 0.13 0.07 mdi - node-3 $ curl http://10.80.10.1:9200/_cat/health?v epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 1701589315 07:41:55 my-es green 3 3 0 0 0 0 0 0 - 100.0%