一.话题背景
上回做了es的基本介绍跟PHP版客户端的使用,不久后某平台里有人私信我说,兄弟,能否讲讲服务端的安装,坑老多了。。。
对于这位仁兄我也是深感同情,毕竟俺也是过来人呀!
之前写过 ‘迅搜’ 这款搜索引擎的介绍,其优点主要有 :资源占用少,配置坑少,有自带、开箱即用的数据导入工具。。等,缺点嘛,先不说了,不是本文重点,而它这些优点,本人觉得,恰好是ES的缺点了!
首先,ES就是个吃货,吃内存,吃硬盘存储,硬盘方面还好,一般能管够!至于内存。。。哎!妥妥的内存吃货!跟应用部署在同一服务器真不推荐,官方也建议--最好单独部署在一台机子上!那么,怎么部署服务端,部署过程中有哪些坑呢?
二.部署
1.配置:阿里云一核2G , centos 7.6 , 普通硬盘40G。
2.步骤:
1)创建文件 elasticsearch.repo,放到 /etc/yum.repos.d/ 目录下,内容如下:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
保存退出后执行 sudo yum install --enablerepo=elasticsearch elasticsearch 。
系统会默认安装最新版的es到你服务器里。
2)设置开机启动并启动软件。sudo chkconfig --add elasticsearch,然后就可以运行 sudo -i service elasticsearch start 启动ES 了。如果ES不能启动,控制台没有看到 OK 两个字母,可以查看 /var/log/elasticsearch/ 这里面的log文件,另外,为了确保开机运行,还会继续执行 以下代码
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
运行后,便可 使用命令
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service
来开关ES服务了。随后,我们验证一下,命令行窗口输入 curl localhost:9200,回车。
如果 看到类似以下画面,就代表服务端安装成功了~
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "7.7.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "f27399d",
"build_date" : "2020-06-10T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"}
至此,ES安装已经完成了80%了! 但就是这最后的20%的配置,可能就决定了你今天能否按时下班,哈哈。
三.配置。
主要是配置这两个文件~
elasticsearch.yml 和 jvm.options (其他的如分布式等这里先不说),文件位于 /etc/elasticsearch里面。
vim /etc/elasticsearch/jvm.options
这里新安装时,Xms和Xmx默认是1g的,我服务器内存少,设为256m了(无奈,阿里云服务器就是有点贵)这个得看实际情况了,服务器配置不高的话,一般得设,如果启动不了,就再设低一点,这算是第一个坑了,一般独占一台服务器,2G内存的话,设个512M就够了,至于那些土豪机子,请随意。
然后就到重头戏了,打开同目录下的elasticsearch.yml,
设置
cluster.name : 你的集群名 ,
node.name : 你的节点名字 ,
path.data 和path.logs 默认就行,
network.host : 0.0.0.0,
http.port : 9200
cluster.initial_master_nodes : ["你的节点名"],
以上都要先去掉前面的# 号再设置。
然后,坑 来了,以上设置的 : 左右都要留一个空格 ,否则,你分分钟会遇到
类似这样的错误。
设置完:wq 保存退出,重启服务端 sudo systemctl restart elasticsearch.service
浏览器访问 你的IP :9200 就能看到 刚才类似的文档信息了,只是name 字段变成了你设的节点名字,cluster_name 也变了。
至此,大功告成!开始你愉快的 Elasticsearch 之旅吧!