首先要確保有java8的環境,安裝方法以下(centos)java
1 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm 2 rpm -ivh jdk-8u161-linux-x64.rpm
https://www.baidu.com/link?url=cn60GecIBvDt9OvD_nQK9CR0TwbwxLM2DtpYNIptUGtNMG89ELhbPCNFg0xDlT205HcG88QVruw1Zgte5Nim620OPshtt3hKq1zACpJQ3WTCSwtKUO2sdnVzpUjrbuQ2&wd=&eqid=e3cf42960002cb16000000055bee8e9f 這個地址就是官網的jdk下載地址,
環境安裝完畢,下載elesticsearch,這裏若是須要其餘版本直接改末尾的版本號就能夠下載其餘版本的node
1 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.zip
解壓elasticsearch-5.5.2.ziplinux
1 unzip elasticsearch-5.5.2.zip
2 mv elasticsearch-5.5.2 elasticsearch
若是沒有unzip這個命令的話能夠先運行git
1 yum install unzip
elasticsearch不能直接用root帳戶運行,因此須要建立一個用戶,並且須要將elasticsearch文件夾屬主修改成新建立的這個用戶,否則的話啓動的時候會有一些權限引發的錯誤github
由於這時候並不知道root的密碼,因此先給root建立一個密碼bootstrap
1 passwd root vim
而後輸入密碼centos
接着建立用戶並修改文件夾屬主和屬組服務器
groupadd elasticsearch
useradd elasticsearch -g elasticsearch
passwd elasticsearch
chown -R elasticsearch:elasticsearch elasticsearch
打開位於elasticsearch文件夾中/conifg目錄下的 elasticsearch.yml配置文件修改配置cookie
cluster.name: elas_cluster 集羣的名字
node.name: node-q1 節點的名稱
node.master: true
node.data: true
配置文件中給出了三種配置高性能集羣拓撲結構的模式,以下:
1. 若是你想讓節點從不選舉爲主節點,只用來存儲數據,可做爲負載器
node.master: false
node.data: true
2. 若是想讓節點成爲主節點,且不存儲任何數據,並保有空閒資源,可做爲協調器
node.master: true
node.data: false
3. 若是想讓節點既不稱爲主節點,又不成爲數據節點,那麼可將他做爲搜索器,從節點中獲取數據,生成搜索結果等
node.master: false
node.data: false
默認狀況是兩個都是true,若是沒幾臺服務器的話就用默認的就能夠了。
network.host: 192.168.0.1 綁定的ip,設置爲0.0.0.0後能夠用外網訪問
network.publish_host: 192.168.0.1 指定elasticsearch節點對外的監聽地址,就是外網地址,搭建集羣的時候最好指定一下,不然可能集羣沒辦法啓動,默認應該是去監聽內網地址的
node.attr.rack: r2 給節點添加額外屬性,這個暫時沒發現什麼用處
path.data: /path/to/data 數據保存的目錄
path.logs: /path/to/logs 日誌保存的目錄
bootstrap.memory_lock: true 禁止內存交換,最好設置爲false,否則很是影響性能,若是由於這個啓動的時候報錯,能夠去修改limits.conf,配置下面有說
http.port:9200 路由地址端口
transport.tcp.port:9300 TCP協議轉發地址端口,像java使用這個端口去操做
注:ES默認的HTTP監聽端口是9200,若是當前被佔用,則在9200~9300範圍內遞增;另外TCP的默認監聽端口是9300,若是當前被佔用,則再9300~9400範圍內遞增。因此單機少許節點,不配置具體端口的話,也是能夠運行的。
discovery.zen.ping.unicast.hosts: ["192.168.36.130", "192.168.36.132:9300"] 單播的地址,配置集羣中其餘節點的ip,新加入的節點經過這些ip同步到集羣,這裏的端口應該使用transport.tcp.port端口
discovery.zen.minimum_master_nodes: 2 master節點是選取出來的,一個集羣只能有一個,以上node.master: true配置是說該節點具備被選舉的權利,而如今這個配置就是告訴 Elasticsearch 當沒有足夠 master 候選節點的時候,就不要進行 master 節點選舉,等 master 候選節點足夠了才進行選舉。(由於你是一臺臺去啓動服務器的) 這樣是爲了防止集羣中同時存在兩個master,這個數值應該配置爲 ( master 候選節點個數 / 2) + 1。因此要高可用的話至少三臺以上有被選舉權。
gateway.recover_after_nodes: 2 通俗來講就是等集羣有幾個節點啓動起來了再來選舉master,分配分片數據什麼的,這裏配得很差可能有的問題就是啓動的時候可能會多耗點性能
index.number_of_shards: 5 設置索引的分片數,默認爲5 分片的意思就是一整個索引文檔,分紅5個部分去保存
index.number_of_replicas: 1 設置索引的副本數,默認爲1 1個副本至關於一個備份
配置一下
敲命令
sysctl -w vm.max_map_count=655360
這時候可能會由於服務器內存緣由遇到一個錯誤 Cannot allocate memory
在elasticsearch目錄下執行 vim config/jvm.options
修改內存
-Xms256m
-Xmx256m
(根據本身服務器內存設置)
一切就緒後啓動
切換到elasticsearch用戶,不然root用戶下啓動會拋異常
su elasticsearch
elasticsearch目錄下bin中運行 ./elasticsearch
啓動的時候發現報錯,並且可能一次又一次,一次好幾個錯,錯誤這裏就不說了,主要都是由於帳戶權限,內存線程什麼引發的,網上的解決方法不少,隨便貼幾個連接
https://blog.csdn.net/gongpulin/article/details/78568595
https://blog.csdn.net/u013083576/article/details/78499884
單個成功訪問ip地址加端口後,端口是http.port端口
集羣健康查看 ip加端口加上/_cluster/health
若是須要安裝ik分詞器的,能夠在 https://github.com/medcl/elasticsearch-analysis-ik/releases 找到對應的版本 elasticsearch-analysis-ik-x.x.x.zip 下載解壓,最後將解壓後的文件拷貝到 elasticsearch文件夾的 /plugin/ 文件夾中,啓動es就ok了