elasticsearch2.3.3集群搭建踩到的坑


本文來自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn

摘要:

  • 作者原來搭建的環境是0.95版本
  • 現在升級到2.3.3版本,變了很多,也踩了很多坑

root權限啟動問題
版本升級到2.2后,必須建一個單獨的賬號用於啟動elasticsearch,不可以使用root賬號進行啟動,否則會報以下錯誤

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.

也可以這樣解決:
在bin目錄修改elasticsearch.in.sh文件,填加如下配置項:

JAVA_OPTS="$JAVA_OPTS -Des.insecure.allow.root=true"
這樣就可以用root用戶啟動elasticsearch了,當然還是建議大家創建其他用戶使用。

訪問地址
如果需要通過ip進行訪問es集群,必須修改elasticsearch.yml中的network.host節點。es 0.9版本的默認配置是 “0.0.0.0”,所以不綁定ip也可訪問,但是es 2.3版本如果采用默認配置,只能通過 localhost 和 “127.0.0.1”進行訪問。
network.host節點可以配置多個值,如下:

network.host: 192.168.10.145
集群節點IP配置
es0.9 版本的集群的discovery默認采用的是組播(multicast)模式,但是在es2.3版本中已去除該模式,雖然提供了multicast的插件,但是官方說不建議采用multicast的模式,故我們只能采用單播(unicast)模式:
discovery.zen.ping.unicast.hosts: ["192.168.10.145", "192.168.10.168"]  
關於節點“discovery.zen.ping.unicast.hosts”的值可以是單值也可以是多值,在不同的服務器之間部署es節點可以不指明ip端口,但是在同一服務器中部署,ip最好是加上檢測的端口號,否則可能檢測不到要加入的節點,如下配置:
discovery.zen.ping.unicast.hosts: ["192.168.10.145:9300"]
啟動
es0.9版本直接./elasticsearch就后台啟動了,而es2.3必須./elasticsearch -d才是后台啟動,否則是前台啟動:

插件安裝
es0.9插件安裝是./plugin -install xxx,而es2.3插件安裝沒有減號./plugin install xxx

IK插件安裝
es0.9版本直接下載IK,mvn clean package 打包后拷貝target目錄下的jar到plugins目錄下新建的IK文件夾下即可;
但是es2.3是mvn clean package 打包后,到target/release目錄下,有一個zip文件,直接unzip解壓,然后把解壓的內容拷貝到plugins目錄下的ik文件下下,否則會報如下錯誤:

 
Exception in thread "main" java.lang.IllegalStateException: Could not load plugin descriptor for existing plugin [analysis-ik]. Was the plugin built before 2.0?
Likely root cause: java.nio.file.NoSuchFileException: /home/es/es2/plugins/analysis-ik/plugin-descriptor.properties

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM