在啟動訪問es的過程中遇到了各種的奇葩問題。
1.網上各種版本的啟動方式讓人眼花繚亂不知如何啟動。簡單粗暴——到es的bin目錄下直接 執行
./elasticsearch //顯示啟動,ctrl+c可停止,如要操作,換個終端 ./elasticsearch -d 后台啟動,可在當前終端繼續操作 //后台啟動,如要停止執行 kill -9 pid //哈哈,直接殺掉進程 //搜索es進程pid可以醬紫 ps aux | grep elasticsearch //注意,不確定那個是pid的話多執行幾遍這個命令,看執行結果里不變的那個數字就是啦~
成功后會看到醬紫的信息
然后測試一下
curl ‘http://localhost:9200’
正常的話會出現醬紫的輸出
好,目前為止一切正常,然后用ip訪問的話卻不通。我這是虛擬機,我在本機可以ping通虛擬機,但是無法訪問es,在虛擬機里用ip訪問也不行,提示 connection refused。
具體錯誤看圖:
解決辦法:找到es的config文件夾的elasticsearch.yml文件,編輯
vim config/elasticsearch.yml
找到network.host,冒號:后面跟一個空格,然后改成0.0.0.0
然后把最開頭的#去掉,#是注釋的意思最終變成醬紫
此處引用自:http://www.jianshu.com/p/658961f707d8 感謝作者愛跑咪
OK,保存后重新啟動es
嗯這時可能會報錯。常見的比如
ERROR: [2] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
一般出現在這些位置
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]解決辦法 此處引用自:http://blog.csdn.net/u012371450/article/details/51776505 感謝原作者分享寶貴經驗
另開一個終端用root操作 //輸入密碼.... [root@localhost ~]# cp /etc/security/limits.conf /etc/security/limits.conf.bak [root@localhost ~]# cat /etc/security/limits.conf | grep -v "esadmin" > /tmp/system_limits.conf [root@localhost ~]# echo "esadmin hard nofile 65536" >> /tmp/system_limits.conf [root@localhost ~]# echo "esadmin soft nofile 65536" >> /tmp/system_limits.conf [root@localhost ~]# mv /tmp/system_limits.conf /etc/security/limits.conf
記得換成自己的es用戶名,我的esadmin
最后問你要不要保存,輸入yes
然后在你執行es的用戶終端,退出你這個es用戶,然后重新進入一下。不然更改不會生效!
//比如 su root //輸入密碼... su esadmin
然后驗證
ulimit -Hn
65536//輸出這個就算對了
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144] 解決辦法 此處引用自:http://www.cnblogs.com/sloveling/p/elasticsearch.html。感謝原作者分享寶貴經驗
切換到root用戶修改配置sysctl.conf vi /etc/sysctl.conf 添加下面配置: vm.max_map_count=655360 並執行命令: sysctl -p 然后,重新啟動elasticsearch,即可啟動成功。
ok,現在重啟es,如果成功了,基本就搞定了。
用localhost和ip分別訪問。
哈哈,es! you,know,for Search !