打開官網,下載ElasticSearch壓縮包,解壓以後運行bin目錄中的elasticsearch.bat文件html
如上圖所示時,ElasticSearch啓動成功,瀏覽器訪問:127.0.0.1:9200便可看到ElasticSearch的相關信息node
注意:如果在Linux中安裝會遇到意料不到的不少問題,這裏我作一下在centos7中安裝es的踩坑記錄linux
步驟:git
Ⅰ. es 規定 root 用戶不能啓動 es,因此須要建立一個用戶來啓動 esgithub
# 建立用戶名爲 es 的用戶 useradd es # 設置 es 用戶的密碼 passwd es # 建立 es 的 data 和 logs 目錄 mkdir elasticsearch-6.2.2/data mkdir elasticsearch-6.2.2/logs #將elasticsearch文件夾拷貝到其餘目錄,如:/usr/local/elasticsearch-6.2.2下,由於新建的es用戶 對root目錄沒有訪問權限,放在/root下當切換爲es用戶時沒法去啓動elasticsearch。 # 將 /usr/local/elasticsearch/elasticsearch-6.2.2 的擁有者設置爲 es chown -R es:es /usr/local/elasticsearch/elasticsearch-6.2.2Ⅱ. 編輯配置文件 config/elasticsearch.yml,綁定服務器ip以便其餘機器訪問web
network.host: 你本身的服務器ip http.port: 9200Ⅲ. 防火牆中開啓9200端口(這一步容易被忽視,致使其餘機器訪問時出現問題)npm
vi /etc/sysconfig/iptables #打開配置文件加入以下語句: -A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT #以後重啓防火牆,修改完成Ⅳ. 切換到 es 用戶,啓動 esbootstrap
su es sh bin/elasticsearch # -d是後臺啓動,第一次不建議後臺啓動,前臺啓動能夠直觀的看到日誌信息 #bin/elasticsearch -dⅤ. 啓動以後,其餘機器瀏覽器輸入10.2.1.155:9200(ip是安裝es的服務器ip),出現久違的畫面vim
這過程當中遇到的錯誤:centos
Ⅰ. ERROR: [1] bootstrap checks failed...
解決方法:在配置文件 elasticsearch.yml 加一句:
bootstrap.system_call_filter: falseⅡ. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解決方法:
#切換到root用戶修改 vim /etc/security/limits.conf # 在最後面追加下面內容 es hard nofile 65536 es soft nofile 65536修改後從新登陸es用戶,使用以下命令查看是否修改爲功
ulimit -Hn 65536Ⅲ. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決方法:提升 vm.max_map_count 的大小
# 切換到root用戶 vim /etc/sysctl.conf # 在最後面追加下面內容 vm.max_map_count=262144 # 使用 sysctl -p 查看修改後的結果 sysctl -pⅣ. 參考資料:
http://www.cnblogs.com/xxoome/p/6663993.html(文中包含更多可能出現的錯誤以及解決辦法,詳細全面,實踐中主要參考了此文)
http://www.imooc.com/article/20336(文中介紹了一些可能出現的問題,還介紹了產生問題的緣由)
安裝head插件,head插件提供了友好的web頁面,幫咱們解決了界面的問題,同時他還實現了基本信息的查看,REST請求的模擬,以及數據的基本檢索。
注意:使用此方法須要先安裝node環境,關於linux如何安裝node環境請參考:
項目地址:https://github.com/mobz/elasticsearch-head
Ⅰ. 先將zip包下載到linux本地:
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
Ⅱ. 再使用「unzip master.zip」 命令將其解壓,解壓後以下圖:
Ⅲ. 使用"node-v"檢查node版本是否知足要求:
Ⅳ. 進入解壓後的文件夾,執行 npm install(注意是在 elasticsearch-head-master 目錄中執行該命令,而不是在node的安裝目錄中執行,本身試驗的時候由於搞錯了目錄出現了一堆的問題)
npm是node的包安裝工具,若 npm install 執行到最後報錯/安裝失敗,可使用淘寶的cnpm來代替
npm install -g cnpm --registry=https://registry.npm.taobao.org
包安裝成功後,運行 npm run start ,出現以下結果,證實插件啓動成功了
Ⅴ. 從圖上能夠看出服務啓動在9100端口,咱們在瀏覽器中輸入"10.2.1.48:9100" (ip爲服務器當前ip),能夠看到以下界面:
(360瀏覽器顯示異常的,把核心切換到「極速模式」就正常了,若仍是不能顯示,多是linux的9100端口未打開,須要修改一下iptables的規則)
Ⅵ. 由於es和head插件自己是屬於兩個獨立的進程,它們之間的訪問是有跨域的問題,所以這裏須要進行一些跨域問題的配置修改:
首先用ctr+c結束掉head插件的進程,而後進入到elasticsearch的目錄中(注意不是head插件的目錄,不要進錯了;而且須要注意此時當前的用戶不能爲root,由於root用戶沒法啓動es)
使用 vim config/elasticsearch.yml,在配置文件的末尾加上下面兩句,注意冒號後面的空格:
http.cors.enabled: true http.cors.allow-origin: "*"保存退出後,在後臺啓動elasticsearch:bin/elasticsearch -d
接着就從新啓動head插件,在head插件目錄內運行:npm run start
在圖中的地址欄填入ip+端口 點鏈接,右上角就變綠了,這就證實es服務在正常的運行。
Ⅰ. head插件保持開啓,進入es目錄編輯配置文件:
vim config/elasticsearch.yml #在配置文件末尾添加下面三行 cluster.name: xzf #集羣的名字 node.name: master #指揮官的名字 node.master: true #是否爲指揮官,此處單詞不要錯拼成了ture
Ⅱ. 殺掉es的進程,從新啓動es
ps -ef | grep elastic #查找進程 kill 1551 #殺掉進程 ./bin/elasticsearch -d #後臺啓動es
Ⅲ. 刷新head界面
節點名字已經變成了master,接下來按照類似的步驟配置隨從節點
Ⅳ. 將es的安裝包複製到/usr/local/es_slave,並解壓,以後將解壓出來的安裝包分別複製一份到/usr/local/es_slave1和/usr/local/es_slave2中,就像這樣:
Ⅴ. 使用 chown -R es:es es_slave1 將es_slave1的用戶和用戶組改爲普通用戶es,而後修改其配置文件
vim ./config/elastisearch.yml #在配置文件中添加以下 cluster.name: xzf #此處和master一致 node.name: slave1 #給節點起名字 network.host: 10.2.1.31 http.port: 8200 #默認es監聽端口爲9200,此處爲防止和master衝突,改成8200 discovery.zen.ping.unicast.hosts: ["10.2.1.31"] #用於找到master,不然處於集羣以外
保存並退出。
Ⅵ. 後臺啓動es服務,在head頁面刷新後,便可看到如下效果,能夠看出slave1已經加入到集羣中了
同理,slave2也按照上面的步驟進行(誤,可能出現問題,具體往下看)。
注:有時候es服務啓動過程當中可能會出現一些錯誤,而在後臺啓動的模式中是看不到錯誤信息的,若實踐過程當中出現了異常,能夠經過 ps -ef | grep elastic 查看es服務是否啓動,也可結合es的前臺啓動模式查看具體報錯信息
踩過的坑:
通過屢次實驗發現,一臺主機中好像只能同時開啓兩個es服務,當要開啓第三個es服務的時候(如上面的「一主兩從」),發現會隨機擠掉某個已經開啓的服務,被擠掉的服務立即下線,使用ip+端口訪問瀏覽器會返回「拒絕訪問」的錯誤信息。
若擠掉的是master節點,head界面中的節點列表都會消失。
緣由:
如圖示,提示內存不足,如果在虛擬機中運行的linux,能夠關閉虛擬機後調大內存
es的更多配置項詳解能夠參看:http://www.cnblogs.com/hupengcool/p/4028685.html