Elasticsearch+Node.js環境搭建

Sailing發表於2019-02-16

文章用來開啟Node和Elasticsearch學習的新篇章,持續更新中…
來源:慕課網瓦力老師課程 http://www.imooc.com/learn/889

Elasticsearch官網:https://www.elastic.co/produc…
下載系統匹配版本,解壓即可。
elasticsearch-head外掛下載地址:https://github.com/mobz/elast…

說明:

  • 提前安裝好 Node.js 8.5.0
  • 版本:elasticsearch-5.6.1/elasticsearch-head-master 需要Node 6.0以上
  • 以下操作是在 Git Bash 下進行的…
# 開啟head外掛目錄
$ cd elasticsearch-head-master
# 下載 "package.json" 裡的依賴包
$ npm install
# 執行head外掛
$ npm start run
# 服務啟動成功,會顯示如下資訊:
Started connect web server on http://localhost:9100

此時瀏覽器訪問 http://localhost:9100, 顯示head外掛頁面,但狀態顯示未連線,原因是未啟動 Elasticsearch。Ctrl+c關掉服務,先啟動 Elasticsearch:

$ cd elasticsearch/bin
$ start elasticsearch

再啟動 Elasticsearch 之前,修改 elasticsearch.yml,原因是 head 外掛和 Elasticsearch 是兩個不同的執行緒,存在跨域問題。yml新增配置如下:

#允許跨域 連線head外掛
http.cors.enabled: true
http.cors.allow-origin: "*"

#叢集名
cluster.name: zhangyl
#節點名
node.name: master
#此節點是否為主節點
node.master: true

#本地網路地址
network.host: 127.0.0.1

訪問 http://localhost:9100 顯示叢集狀態,及節點master
http://localhost:9200 有更詳細的叢集名等資訊


npm小知識:
因為npm預設遠端倉庫地址在國外,下載包特別慢,修改如下:

# 將npm預設設定為淘寶映象地址
$ npm config set registry http://registry.npm.taobao.org/
# 檢視遠端倉庫 
$ npm config get registry
# 當你想釋出自己的包時,需要將地址修改回來
$ npm config set registry https://registry.npmjs.org

分散式安裝elasticsearch:
如上配合elasticsearch.yml,是主節點的配置資訊。然後拷貝兩份elasticsearch的解壓包,修改yml如下:

cluster.name: zhangyl
node.name: slave_1

network.host: 127.0.0.1
http.port: 9201

discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
cluster.name: zhangyl
node.name: slave_2

network.host: 127.0.0.1
http.port: 9202

discovery.zen.ping.unicast.hosts: ["127.0.0.1"]

cluster.name 叢集名要一致,http.port 不同,防止埠號衝突。
修改完成後,依次啟動elasticsearch主節點、兩個普通節點及head外掛,訪問http://localhost:9100,會顯示三個節點:master/slave_1/slave_2
分散式配置完成!