1、安裝第一個ElasticSearch(主節點)java
一、建立es用戶,啓動es不能使用root用戶node
useradd esgit
passwd es12github
root用戶進入/home/es目錄下npm
2、獲取ElasticSearch安裝包瀏覽器
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gzbash
三、解壓、更名(方便集羣時區別另外一個ES)服務器
tar xf elasticsearch-6.1.2.tar.gz微信
mv elasticsearch-6.1.2.tar.gz elasticsearch-node212架構
四、修改配置文件
vi elasticsearch-node2/config/elasticsearch.yml1
修改內容以下:
cluster.name: my-application 各節點此名稱必須一致
node.name: node-2 節點名稱,不能與其餘節點相同
network.host: ***.***.***.*** 本身的服務器IP
http.port: **** 訪問端口
transport.tcp.port: **** 集羣各節點間的通信端口
discovery.zen.ping.unicast.hosts: ["主節點IP:通信端口","輔節點IP:通信端口"] 123456
文件最後追加如下內容,以便鏈接head顯示健康值(注意每行代碼前面不要有空格)
http.cors.enabled: true
http.cors.allow-origin: "*"12
五、啓動
sh elasticsearch-node2/bin/elasticsearch1
[2018-01-24T15:36:41,990][INFO ][o.e.n.Node ] [KMyyO-3] started
[2018-01-24T15:36:41,997][INFO ][o.e.g.GatewayService ] [KMyyO-3] recovered [0] indices into cluster_state12
啓動成功,瀏覽器中輸入 IP:訪問端口
網頁顯示如下內容,說明部署成功
{
"name" : "node-2",
"cluster_name" : "my-application",
"cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}123456789101112131415
六、報錯及其處理
【類型一】
Caused by: java.lang.RuntimeException: can not run elasticsearch as root1
該問題是由於運行es不能使用root用戶,所以要切換es用戶再次啓動
chown -R es:es elasticsearch-node2/
su - es
sh elasticsearch-node2/bin/elasticsearch123
【類型二】
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]1
解決方法,換回root用戶,修改配置文件
vi /etc/security/limits.conf
#在最後面追加下面內容
es hard nofile 65536
es soft nofile 655361234
【類型三】
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]1
解決方法,換回root用戶,修改配置文件
vi /etc/sysctl.conf
#在最後面追加下面內容
vm.max_map_count=655360
#執行命令:
sysctl -p12345
2、安裝第二個ElasticSearch(輔節點)
安裝方法與第一個一致,注意修改配置文件
root用戶進入/home/es目錄下
一、解壓、更名
tar xf elasticsearch-6.1.2.tar.gz
mv elasticsearch-6.1.2.tar.gz elasticsearch-node312
二、修改配置文件
vi elasticsearch-node3/config/elasticsearch.yml1
修改內容以下:
cluster.name: my-application 各節點此名稱必須一致
node.name: node-3 節點名稱,不能與其餘節點相同
network.host: ***.***.***.*** 本身的服務器IP
http.port: **** 訪問端口(注意不要與第一個端口重複)
transport.tcp.port: **** 集羣各節點間的通信端口(注意不要與第一個端口重複)
discovery.zen.ping.unicast.hosts: ["主節點IP:通信端口","輔節點IP:通信端口"]123456
文件最後一樣追加下面代碼
http.cors.enabled: true
http.cors.allow-origin: "*"12
3.啓動
sh elasticsearch-node3/bin/elasticsearch1
瀏覽器,瀏覽器中輸入 IP:訪問端口
網頁顯示如下內容,說明第二個部署成功
{
"name" : "node-3",
"cluster_name" : "my-application",
"cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
"version" : {
"number" : "6.1.2",
"build_hash" : "5b1fea5",
"build_date" : "2018-01-10T02:35:59.208Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}123456789101112131415
3、安裝Elasticsearch-head插件
一、安裝head插件以前須要安裝node.js
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y nodejs12
安裝完成後執行命令查看node與npm版本
[root@host]# node -v
v8.12.0
[root@host]# npm -v
6.4.1
12345
二、從git獲取head插件
wget https://github.com/mobz/elasticsearch-head/archive/master.zip1
三、解壓安裝包(能夠更名,方便操做)
unzip master.zip
mv elasticsearch-head-master/ head12
四、修改配置文件
vi head/Gruntfile.js1
更改head端口號
connect: {
server: {
options: {
port: ****, 改成head訪問端口
base: '.',
keepalive: true
}
}
}
12345678910
vi head/_site/app.js 1
更改head連接地址
init: function(parent) {
this._super();
this.prefs = services.Preferences.instance();
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://主節點IP:訪問端口";
12345
五、啓動head
nohup npm run start > ../head.log 2>&1 &1
六、瀏覽器登陸head
URL輸入服務器IP:head訪問端口
連接地址輸如主節點的訪問地址
七、安裝head常見錯誤
【類型一】啓動成功,可是網頁不能訪問
解決方法
關閉服務器防火牆
service iptables stop
【類型二】集羣健康值未鏈接
在elasticsearch.yml裏追加下列代碼(注意代碼前面不要有空格)
http.cors.enabled: truehttp.cors.allow-origin: "*"
問:爲何es節點用node二、node3?
答:由於以前用node1搭建了一套未集羣的ES,因此後面集羣就用2和3了。
---------------------------------------------
推薦閱讀: