【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群

Elasticsearch7.X的源码部署

第一步. 下载ES:你要把ES安装到哪个路径就在那个路径下执行如下命令,通过linux命令来下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz.sha512
# 如果安装了perl-Digest-SHA可以忽略这条命令,主要为下面命令服务的
yum install perl-Digest-SHA
shasum -a 512 -c elasticsearch-7.16.2-linux-x86_64.tar.gz.sha512 
tar -xzf elasticsearch-7.16.2-linux-x86_64.tar.gz
cd elasticsearch-7.16.2/```

如果要下载安装包,再导入到linux,请到这个地址:https://www.elastic.co/guide/en/elastic-stack/7.2/index.html

要以自己下载安装包的形式安装ES请看下面教程,直接用命令下载安装的请忽略
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第1张图片


【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第2张图片


【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第3张图片

【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第4张图片

【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第5张图片

第二步. 下载完成解压后,进入config目录下,打开elasticsearch.yml文件

全量复制如下内容,替换掉源文件内容(记得备份一份原文件)

这里我准备了3台服务器。如果是1台服务器实现3节点,注意端口要改一下9200,9201,9202,内部节点沟通端口要是9300,9400,9500,总之端口不要一样就行

# 集群名称(所有集群中的节点,名字要相同)
cluster.name: es-application

# 节点名称(每个节点不要一样), 第二个和第三个节点可以起【node-2, node-3】
node.name: node-1

# 是否有资格成为主节点
node.master: true

# 是否存储数据
node.data: true

# 最大集群节点数(集群有多少节点,这就写多少)
node.max_local_storage_nodes: 3

# 网关地址(服务器的ip)【注意这里,不同节点这里是不同的,写自己节点所在服务器的ip地址,要内网ip】
network.host: 172.31.13.102

# 端口
http.port: 9200

# 内部节点之间沟通端口
transport.tcp.port: 9300

# 写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["172.31.13.102:9300", "172.28.124.76:9300","172.31.13.103:9300"]

# 初始化一个新的集群时需要此配置拍选举master
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

# 数据和存储路径(这个路径就写你想把数据和日志存到路径即可,但是要切记,一定要把该路径赋予写权限 )
path.data: /software/es/data
path.logs: /software/es/logs

第三步. 赋予配置文件中/software/es/data和/software/es/logs路径权限,都是在es目录下,所以直接把es赋予权限
chmod -R 777 /software/es

第四步. 进入ES的bin目录

输入启动命令:
sh elasticsearch

【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第6张图片
咦,报了个错!
错误原因: 意思就是启动ES不能通过root账号来启动
解决方案:

(1).创建一个用户
adduser esUser

(2).创建用户密码,会让你需要输入两次,这里我也输入的是esUser, 他会报BAD PASSWORD, 无须理会,两次输入一样即可
passwd esUser

(3).将对应文件夹权限赋予用户(路径指定到你的ES目录即可), 我直接把es目录赋予权限了,即es文件夹内所有文件都有权限了 格式:chown -R 用户名 授权路径
chown -R esUser /software/es

(4). 切换至esUser 用户
su esUser

(5). 再次进入bin目录下
sh elasticsearch

【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第7张图片
哎,又报错
问题原因:明显是最大内存设置不足导致的
解决方案:

(1). 切换至root用户
su root
(2). 修改sysctl.conf 文件
vi /etc/sysctl.conf
(3). 在sysctl.conf中添加下面的配置
vm.max_map_count=655360
(4). 执行命令
sysctl -p
(5). 切换回esUser用户
su esUser
(6). 再次启动
sh elasticsearch

【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第8张图片
出现started表示启动成功,终于启动成功了,太难了!!!!!

我这里报错,但是如果你们的环境没有报错,可以忽略这两个错误

第五步. 以同样的方式启动另两个节点

温馨提示:大家跟着我一起启动【第一个节点】的时候会把所有的坑都踩完,如果大家跟我一样会报上述的两个错误,那么启动第二,第三个节点的时候基本也会出同样的问题,所以大家在启动第二,第三个节点的时候,要注意,先授权es目录写权限,在配置sysctl.conf最大内存, 再创建用户,再切换用户,最后再启动,这样就避免二次踩坑浪费时间

都启动后的效果
分别访问3台服务器的 http://ip:9200
再访问 http://ip:9200/_cat/health?v 来查看这3个节点是否真的在一个集群里
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第9张图片


【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第10张图片

【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第11张图片


如下图,显示3,确实再同一个集群http://ip:9200/_cat/health?v
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第12张图片
启动成功,至此,源码部署ES集群完成,大家以后再安装遇到上述两个异常,就不要慌了,直接干掉他

第六步:安装kibana(更直观,如果不需要可以不安装)

依然通过linux命令直接下载安装(kibana的版本要和ES的完全一致)

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-linux-x86_64.tar.gz.sha512
shasum -a 512 -c kibana-7.16.2-linux-x86_64.tar.gz.sha512 
tar -xzf kibana-7.16.2-linux-x86_64.tar.gz
cd kibana-7.16.2/ 

进入到config目录执行

vim kibana.yml

把下面这3条配置前面的#去掉,

server.port: 5601
server.host: "172.31.13.102"
elasticsearch.hosts: ["http://172.31.13.102:9200","http://172.28.124.76:9200","http://172.31.13.103:9200"]

server.port: 5601 默认5601,直接解开#即可

server.host 默认localhost,改成你的ip地址,如果使用阿里云服务器,这里一定要写内网ip,不要写公网的ip

elasticsearch.hosts 默认http://localhost:9200, 改成你自己ES的访问地址,如果配置kibana的服务器可以和ES服务器进行内网通信。这里可以写内网地址,否则写公网地址。集群就把多台机器ip通过","隔开都写上。

【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第13张图片

如果配置了ES的安全认证用户名和密码,需要解开如下俩配置
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第14张图片

进入bin目录执行

sh kibana

执行成功去浏览器访问http://ip:5601
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第15张图片
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第16张图片
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第17张图片
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第18张图片

停掉master节点后刷新一下
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第19张图片
再次启动node-2
【HBZ分享】Elasticsearch7.X的集群搭建从0开始(源码部署方式),跟着一步步做就能搭建完整的集群_第20张图片

你可能感兴趣的:(elasticsearch,搜索引擎,big,data)