安裝和啟動ElasticSearch服務遇到的幾個問題


首先安裝和啟動服務的教程是參考文章:ES入門之一 安裝ElasticSearch

然后在最后的啟動es服務時遇到了幾個小問題,因此在這里記錄一下。

因為我對linux並不是很熟悉,因此文中如果有說錯的或者是使用了笨拙的方式的,歡迎指出。

 

1、內存不足問題
  因為練手使用的是aliyun,內存只有1GB,而es默認設置jvm最少需要1GB的堆內存,因此在啟動時會報一個內存分配錯誤,具體的錯誤截圖沒保留,因此就不貼了。
  解決方法:修改config/jvm.options里面的-Xms和-Xmx的值為合適大小。

2、can not run elasticsearch as root
   看網上的文章說是不能用root用戶啟動,需要換其它用戶。
  解決方法:我是執行adduser命令新增了一個esuser用戶,再把es的文件夾移動到home/esuser下面,再更改es文件夾的擁有者sudo chown -R esuser es文件夾,su esuser然后再執行腳本啟動成功。
 
3、es啟動是在前台
  啟動es后,啟動信息都顯示在前台,無法切換出去,用ctrl+c會把es的進程關掉
  解決方法:我是用sh ./ bin/elasticsearch -d 來后台啟動es的。

4、在aliyun啟動服務后,無法在自己的瀏覽器上訪問es服務

  就像開頭那個文章鏈接里說的,服務啟動成功后要訪問下127.0.0.1:9200來看看服務啟動成功沒 ,但是在aliyun啟動后,ssh里訪問127.0.0.1:9200是沒問題的,但是我PC瀏覽器上無法訪問。

  這里有兩個問題,1是沒把9200端口添加到aliyun后台的安全組規則白名單里面,2是es啟動默認只監聽127.0.0.1(本地環回)

  針對阿里雲的安全組規則白名單我就不細說了,網上都有文章的,我這里只說說修改es只監聽本地環回問題

  解決方法:修改config/elasticsearch.yml,把network.host前面的注釋符號去掉,並把值改為0.0.0.0;把discovery.seed_hosts前面的注釋符號去掉,並把值改為0.0.0.0,修改完之后重啟服務,然后就能在自己的PC瀏覽器上訪問9200端口了。

  改成0.0.0.0的一個弊端就是公網任何IP段都能直接訪問你這個es的端口服務了,這個問題自己斟酌。

        

 

5、當把es監聽從本地環回改為0.0.0.0之后,會觸發es的啟動檢查,然后可能會報出如下圖的錯誤(max virtual memory area vm.max_map_count [65530] is too low)

  其中第二條我已經在第4步提前處理了,所以正確執行第4步的是不會出現第2條的。

  至於第一條是因為esUser用戶的權限問題,稍微調整一下就行了

  解決方法(針對第1條):先執行sysctl -w vm.max_map_count=262144(具體的值可以根據服務器配置修改下,2的n次方),然后在/etc/sysctl.conf文件最后添加一行vm.max_map_count=262144,使永久生效。

      

 


免責聲明!

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



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