Elasticsearch-7.8.0集群安装教程(附集群脚本)

1.下载地址:

https://www.elastic.co/products/elasticsearch  

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0

安装过程:直接tar -zxvf解压放在:opt/module/ 下,文件夹命名es7(位置可以自行选择,后续注意修改) 

2.安装ES 

  1. 上传安装包,将 elasticsearch 安装包上传到 /export/servers/software/目录下
  2. 将ES解压到opt/modlue目录下,并将ES重命名
    tar -zxvf elasticsearch-7.8.0.tar.gz -C /opt/module/
    cd /opt/module/
    mv elasticsearch-7.8.0 es7
    
    
  3. 修改 ES 配置文件 elasticsearch.yml
    #进入es7目录下
    cd config/
    vim elasticsearch.yml
    
    #修改以下文件
    (1)集群名称,同一集群名称必须相同
    cluster.name: my-es
    (2)单个节点名称,不同节点名称不能一样,例如:node-1,node-2,node-3
    node.name: node-1
    (3)把 bootstrap 自检程序关掉
    bootstrap.memory_lock: false
    (4)网络部分
    # 允许任意 ip 访问
    network.host: 0.0.0.0
    # 数据服务端口
    http.port: 9200 
    # 集群间通信端口
    transport.tcp.port: 9301
    (5)自发现配置:新节点向集群报到的主机名
    #集群的”介绍人”节点
    discovery.seed_hosts: ["spark01:9301", "spark02:9301"]
    #默认候选 master 节点
    cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
    #集群检测的超时时间和次数
    discovery.zen.fd.ping_timeout: 1m
    discovery.zen.fd.ping_retries: 5
    (6)修改 yml 配置的注意事项:每行必须顶格,不能有空格 “:” 后面必须有一个空格
    
  4. 分发ES到各个机器上,接着修改各台机器的节点名称:node.name:node-2 、node.name:node-3

3.修改配置参数

elasticsearch 是单机访问模式。但是我们会设置成允许应用服务器通过网络方式访问,而且生产环境也是这种方式。我们需要把服务器的一些限制打开,这样可以能支持更多并发

3.1修改系统允许 Elasticsearch 打开的最大文件数需要修改成 65536。

[root@spark01 es7]$ sudo vim /etc/security/limits.conf
#在文件最后添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 65536
#分发文件
[root@spark01 es7]$ scp -r /etc/security/limits.conf spark02:/etc/security/
[root@spark01 es7]$ scp -r /etc/security/limits.conf spark03:/etc/security/

 3.2 修改一个进程可以拥有的虚拟内存区域的数量。

[root@spark01 es7]$ sudo vim /etc/sysctl.conf 
#在文件最后添加如下内容
vm.max_map_count=262144
#分发文件
[root@spark01 es7]$ scp -r /etc/sysctl.conf spark02:/etc/
[root@spark01 es7]$ scp -r /etc/sysctl.conf spark03:/etc/

 3.3 修改允许最大线程数为 4096(如果系统为CentOS7.x 不用改,跳过此步骤)

[root@spark01 es7]$ sudo vim /etc/security/limits.d/20-nproc.conf 
#修改如下内容
* soft nproc 4096
#分发文件
[root@spark01 es7]$ scp -r /etc/security/limits.d/20-nproc.conf spark02:/etc/security/limits.d/
[root@spark01 es7]$ scp -r /etc/security/limits.d/20-nproc.conf spark03:/etc/security/limits.d/

3.4 重启linux使配置生效(三台机器)

4.启动es

elasticsearch为了安全,不允许使用root用户启动,由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,需要创建一个单独的用户用来运行ElasticSearch。否则启动报:can not run elasticsearch as root

方法可以给user赋权限或者创建用户组和用户,本人使用的是第二种方法:在modlue下:

#创建用户组和用户
groupadd es
useradd es -g es -p codingwhy
#更改 es7文件夹及内部文件的所属用户及组为es
chown -R es:es es7

切换用户:su es并启动 elasticsearch

在bin目录下前台启动,

./elasticsearch
#使用ctrl + c 可以停止elasticsearch服务

#后台启动,需要停止服务的话就用kill命令了
./elasticsearch -d

查看进程jps

命令行进行测试:curl http://spark01:9200

 在浏览器地址栏中输入: http://spark01:9200 进行访问也可以得到上面结果

5.集群启动

创建脚本:es.sh 输入下面内容:

#!/bin/bash

case "$1" in
start)
	for i in spark01 spark02 spark03
		do
		ssh $i su es -c "/opt/module/es7/bin/elasticsearch >/dev/null 2>&1 &"
		echo "es start............"
	done
;;
stop)
	for i in spark01 spark02 spark03
	do
    	ssh $i su es -c "jps | grep Elasticsearch | awk '{print \$1}' | xargs -n1 kill"
    		echo "es stopped........"
	done
    ;;
*)
    echo "error choice ! please input start or stop"
	exit
    ;;
esac

循序各台机器使用su  es -c "命令", 这个表示脚本内切换es用户一次,并执行-c后面文本的命令,然后退出es普通用户到当前用户

其中14行代码首先jps出es的端口号,接着再停掉,ssh过去的时候如果没有全局变量java,就会报错,执行不了jps,可以改成/export/servers/jdk/bin/jps,直接定义到java的安装绝对路径地址。

授权

chmod u+x es.sh

启动,查看进程,接着命令行测试:curl http://spark01:9200/_cat/nodes?v 同理:在浏览器地址栏中输入 http://spark01:9200/_cat/nodes?v 进行访问。

 成功运行,master可以是任意节点。

6.完成

本文章如果写的不好请指正,文明交流,如果对你有帮助,一起努力学习大数据,谢谢!!!

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值