本文來自我的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
