首页 > 其他分享 >elasticsearch安装部署(单机和集群)

elasticsearch安装部署(单机和集群)

时间:2023-12-28 21:48:09浏览次数:30  
标签:node 单机 ## 192.168 9400 集群 elasticsearch es

一、单机模式

1、单机模式,下载对应es包,此次使用版本为7.8.0版本并解压

-rw-r--r--. 1 root root 319112561 12月 28 15:39 elasticsearch-7.8.0-linux-x86_64.tar.gz
mkdir es_standalone
mv elasticsearch-7.8.0-linux-x86_64.tar.gz es_standalone 

2、因安全限制,linux中不允许使用root用户启动es服务,需单独建用户

##新增用户es
adduser es
##设置es密码
passwd es
##将权限给es用户
chown -R es:es es_standalone

3、修改配置文件

##将以下配置,追加在 config/elasticsearch.yml 末尾
cluster.name: elasticsearch
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
##修改es的jvm参数 config/jvm.options
-Xms512m
-Xmx512m

4、启动es

su es
./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]
ERROR: Elasticsearch did not exit normally - check the logs at /data/es_standalone/es/logs/elasticsearch.log

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /data/es_standalone/es/logs/elasticsearch.log

5、修改 /etc/security/limits.conf  和 /etc/sysctl.conf  修改后如果还在终端用 ulimit -Hn ulimit -Sn 去查会发现还是旧值,关闭终端重新打开一个终端,会发现查询已经是新值

##/etc/security/limits.conf 追加
* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096

##/etc/sysctl.conf 追加
vm.max_map_count = 655360
vm.swappiness = 1

 6、启动es成功,并用工具验证创建索引、文档正常。

二、集群模式

7、分别复制3份es服务,分别为node-9400、node-9500、node-9600,分别修改 elasticsearch.yml,config/jvm.options(跟单机一样,配置内存大小即可)

(9200做为http协议,用于外部通讯,比如postman用)

(9300作为Tcp协议,jar之间通过tcp协议通讯,ES集群之间通过9300通讯,Springboot连接ES也是用9300)

##config/elasticsearch.yml 追加如下内容
cluster.name: cluster-es #节点名称,每个节点名称不能重复 node.name: node-9400 #节点所在主机名称,或者localhost network.host: zjk ## 此处设置成了主机名,需要在/etc/hosts 中配置解析关系 #是不是有资格为主节点 node.master: true node.data: true
##对外端口默认为9200 http.port: 9400
##集群中互相通信端口 默认为9300
transport.tcp.port: 9401 #head插件需要打开这两个配置 http.cors.allow-origin: "*" http.cors.enabled: true http.max_content_length: 200mb #es7.x之后新增的配置,初始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["node-9400","node-9500","node-9600"] #es7.x之后新增的配置,节点发现 discovery.seed_hosts: ["zjk:9401","zjk:9501","zjk:9601"] gateway.recover_after_nodes: 2 network.tcp.keep_alive: true network.tcp.no_delay: true transport.tcp.compress: true #集群内同时启动的数据任务个数,默认是2个 cluster.routing.allocation.cluster_concurrent_rebalance: 16 #添加或删除节点及负责均衡时并发恢复的线程个数,默认4个 cluster.routing.allocation.node_concurrent_recoveries: 16 #初始化数据恢复时,并发恢复线程的个数,默认4个 cluster.routing.allocation.node_initial_primaries_recoveries: 16

8、启动一个9400成功后无误,通过请求查看集群状态

[2023-12-28T19:12:24,907][INFO ][o.e.c.s.ClusterApplierService] [node-9400] master node changed {previous [], current [{node-9400}{SAqVtiq6RvqF3jrLxT2-7w}
{VxxwgptaQSqip_Ni3EDdaw}{zjk}{192.168.23.131:9300}{dilmrt}{ml.machine_memory=8181792768, xpack.installed=true, transform.node=true, ml.max_open_jobs=20}]}, 
term: 1, version: 1, reason: Publication{term=1, version=1}
[2023-12-28T19:12:25,241][INFO ][o.e.h.AbstractHttpServerTransport] [node-9400] publish_address {zjk/192.168.23.131:9400}, bound_addresses {192.168.23.131:9400}
[2023-12-28T19:12:25,242][INFO ][o.e.n.Node               ] [node-9400] started

请求 
http://192.168.23.131:9400/_cat/nodes
返回: 
192.168.23.131 17 57 2 0.01 0.10 0.13 dilmrt * node-9400

9、启动9500、9600,可能会报如下错误

master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and this node must discover master-eligible nodes 
解决办法:
1、有可能是把单机的直接拷贝过来做的集群,里面有data会影响,把data删掉重新启动
2、有可能是transport.tcp.port配错了

最终调用返回
192.168.23.131 29 91 41 0.70 0.44 0.31 dilmrt - node-9600
192.168.23.131 46 91 11 0.70 0.44 0.31 dilmrt * node-9400
192.168.23.131 19 91 11 0.70 0.44 0.31 dilmrt - node-9500
此时通过一下3个端口都可以访问集群信息
192.168.23.131:9400
192.168.23.131:9500
192.168.23.131:9600
至此,ES Cluster集群搭建完毕

10、集群开机自启 autoRun.sh,稍显简陋(已验证)

#!/bin/bash
#chkconfig:2345 61 61
###########################使用办法#################################
####1、将此文件放在/etc/rc.d/init.d/下,赋予执行权限################
####2、执行 chkconfig --add autoRun.sh 将自启文件加入系统服务 ######
####3、执行 chkconfig autoRun.sh on 将此命令设置为自启##############
####################################################################
su es <<!
/data/es_cluster/node-9400/bin/elasticsearch -d -p pid
/data/es_cluster/node-9500/bin/elasticsearch -d -p pid
/data/es_cluster/node-9600/bin/elasticsearch -d -p pid
!

11、网上摘录版(未验证),其中安装路径均需按自己要求修改

#!/bin/sh
# chkconfig: - 85 15
#description: elasticsearch
export ES_HOME=/opt/software/elasticsearch-7.6.1
case "$1" in
start)
    su es<<!
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
!
    echo "elasticsearch startup"
    ;;
stop)
    kill -9 `cat $ES_HOME/pid`
    echo "elasticsearch stopped"
    ;;
restart)
    kill -9 `cat $ES_HOME/pid`
    echo "elasticsearch stopped"
    su july<<!
    cd $ES_HOME
    ./bin/elasticsearch -d -p pid
!
    echo "elasticsearch startup"
    ;;
*)
    echo "start|stop|restart"
    ;;
esac
exit $?

标签:node,单机,##,192.168,9400,集群,elasticsearch,es
From: https://www.cnblogs.com/lansetuerqi/p/17933144.html

相关文章

  • Kubernetes-集群卸载Rook-Ceph
    删除storageclass和pvc(卸载卷、删除卷声明等,根据实际情况修改)kubectldelete-frook/deploy/examples/csi/cephfs/pod.yamlkubectldelete-frook/deploy/examples/csi/cephfs/pvc.yamlkubectldelete-nrook-cephcephblockpoolreplicapoolkubectldelete-frook/deploy/......
  • RocketMQ系统性学习-RocketMQ领域模型及Linux下单机安装
    欢迎关注公众号【11来了】,发送笔记可领取Redis、JVM等系列完整pdf!MQ之间的对比三种常用的MQ对比,ActiveMQ、Kafka、RocketMQ性能方面:三种MQ吞吐量级别为:万,百万,十万消息发送时延:毫秒,毫秒,微秒可用性:主从,分布式,分布式扩展性方面:水平伸缩能力:均支持技术栈:Java,Java/Scala,Java功能......
  • 记录一次 OpenStack 集群在创建虚机后无法获取 IP 的问题
    现象所有的组件状态都是正常工作的,DHCP服务正常工作,在个个虚拟网络设备端口抓包,发现OpenVSwitch上DHCP包可以通行,虚机获取DHCPDiscover请求可以正常发出,但是无法收到回包。抓包命令tcpdump-ieth0udpport67orport68-vvv抓包点网络节点上对应的网络空间的的......
  • 阿里云 ACK 云上大规模 Kubernetes 集群高可靠性保障实战
    作者:贤维马建波古九五花刘佳旭引言2023年7月,阿里云容器服务ACK成为首批通过中国信通院“云服务稳定运行能力-容器集群稳定性”评估的产品,并荣获“先进级”认证。随着ACK在生产环境中的采用率越来越高,稳定性保障已成为基本诉求。本文基于ACK稳定性保障实践经验,帮助用......
  • 阿里云 ACK 云上大规模 Kubernetes 集群高可靠性保障实战
    作者:贤维马建波古九五花刘佳旭引言2023年7月,阿里云容器服务ACK成为首批通过中国信通院“云服务稳定运行能力-容器集群稳定性”评估的产品,并荣获“先进级”认证。随着ACK在生产环境中的采用率越来越高,稳定性保障已成为基本诉求。本文基于ACK稳定性保障实践经验,帮助......
  • 使用容器快速在阿里云 ECS 多节点上搭建 Citus 12.1 集群
    阿里云ECS机器节点这里我们使用两台同一区域的ECS机器。机器配置:2核2G。(ps:阿里云99元一年的活动)一台安装coordinator(协调器),这里内网IP为172.18.60.11一台安装worker,这里内网IP为172.18.60.12操作系统两台机器分别安装了厂商的AlibabaCloudLinu......
  • 死锁、内部碎片、外部碎片、多进程/多线程、服务器高并发、集群
    死锁:两个(多个)线程互相等待对方数据的过程1.死锁产生条件(解决办法):......
  • 06-redis的cluster集群
    一、介绍Redis集群是一个可以在多个Redis节点之间进行数据共享的设施(installation)。Redis集群不支持那些需要同时处理多个键的Redis命令,因为执行这些命令需要在多个Redis节点之间移动数据,并且在高负载的情况下,这些命令将降低Redis集群的性能,并导致不可预测的行为......
  • elasticsearch安装
    #!/bin/bash###############################################################FileName:install_redis.sh#Version:V1.0#Author:junwang#Organization:#CreatedTime:2021-04-1517:12:54#Description:###############################################......
  • Elasticsearch简明学习(第一天)
    工作相关和扩展核心能力的需要,采用较为简单的方法来学习Elasticsearch,作相关记录备查。一、采用Docker安装sudodockerpullelasticsearch:7.7.0sudodockerimagessudodockerrun--nameelasticsearch-d-eES_JAVA_OPTS="-Xms512m-Xmx512m"-e"discovery.type=single-node"......