es出新版了,雖然公司里還是用的老版本,但是本地還是有必要自己安裝了玩玩
下載地址:https://www.elastic.co/cn/downloads/elasticsearch
那么一般來說還是建議安裝到linux里,當然選擇在win和mac也ok,我們這里以linux安裝為主
下載完畢以后上傳到linux中:
安裝es之前,務必安裝jdk1.8以上,官方說到openjdk也可以,但是沒試過,大家可以自行嘗試,以下就是官方的依賴說明,怎么安裝jdk的,不多說了。。應該都會
解壓es的tar包:
隨后進入解壓后es的目錄,如下:
依次說一下目錄結構吧:
bin:可執行文件在里面,運行es的命令就在這個里面
config:配置文件目錄
lib:依賴的jar
logs:日志
modules:模塊
plugins:可以自己開發的插件
data,這個目錄,沒有,自己新建一下:mkdir data,這個作為索引目錄
隨后進入conf目錄,使用vim 修改 elasticearch.yml
修改集群名稱,默認是elasticsearch,雖然目前是單機,但是也會有默認的
為當前的es節點取個名稱,名稱隨意,如果在集群環境中,都要有相應的名字
這是修改數據和日志的存儲目錄
設置綁定的ip,和redis一個道理,設置為0.0.0.0以后就可以讓任何計算機節點訪問到你了
設置在集群中的所有節點名稱,這個節點名稱就是之前所修改的,當然你也可以采用默認的也行,目前是單機,放入一個節點即可
修改完畢后,保存退出vim,隨后就准備啟動es了,進入到bin目錄,運行es:./elasticsearch
這個時候報了一個異常:
java.lang.RuntimeException: can not run elasticsearch as root
很明顯,提示說我們無法使用root用戶來運行es,這是es的設計,為了安全
那么這個時候就需要創建一個新用戶,並且為這個用戶添加es目錄的操作權限了
切換用戶以后,再次運行 ./elasticserch
此時又報錯,來看一下:
java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER
其實從異常可以看出是不支持的操作系統,主要是 seccomp,那么重新進入 conf 下去配置 elasticsearch.yml
增加下面這一行配置,用於禁用seccomp
回到bin目錄再次啟動es,又發現如下3個錯誤:
ERROR: [3] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] [2]: max number of threads [1024] for user [lee] is too low, increase to at least [4096] [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
那么依次去修改,不過得重新切換到root用戶, su root
修改如下文件
添加如下:
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
vim /etc/security/limits.d/90-nproc.conf 修改此文件
改為4096
改完以后重新切換到非root用戶lee下,運行es
這個時候發現已經成功啟動了,如下是es的相關信息:
那么現在是前台啟動方式,我們需要改為后台啟動方式來運行es,這樣會更好
能看懂吧?不多說了哈
那么安裝到此完畢!