一.話題背景
上回做了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?之旅吧!