在網上有不少那種ES步驟和問題的解決 方案的,不過沒有一個詳細的整合,和問題的梳理;我就想着閒暇之餘,來記錄一下本身安裝的過程以及碰到的問題和心得;有什麼不對的和問題但願及時拍磚。javascript
第一步:環境java
linux 系統 Java 1.8.0_151 elasticsearch-5.6.3node
第二步:下載linux
2.1 JDK的下載能夠去官網上直接下載,再次聲明一下不要下載最新版本 JAVA 9 版本本人在次已經踩過坑了git
2.2 ES 去官網直接下載,本人使用的是 5.6.3 版本;由於版本的不一樣安裝head插件的時候安裝步驟不一樣;好像是從5.0 之後的版本安裝head 插件的步驟就不同了;下面會詳細介紹。github
第三步:安裝npm
3.1安裝JDK環境vim
前提:查看該系統是否安裝過Java 環境,若是安裝過將其卸載安裝最新的版本,更換Java 的版本也能夠這樣去操做。 安全
3.1.1 執行命令 rpm -qa|grep jdk 若是安裝過將會列出相應的版本,若是沒有什麼都不會輸出。若是安裝過使用rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64 使用這個命令須要注意的就是,列出多少個版本插件就要卸載幾個插件;執行完成後;在使用 rpm -qa|grep jdk 去查看一下是否有遺漏的插件沒有卸載。bash
3.1.2 直接將下載好的jdk-8u151-linux-x64.rpm 安裝包 ;上傳到本身建立好的JAVA文件下;cd 命令進入到JAVA文件下使用rpm 命令進行安裝 rpm -ivh jdk-8u131-linux-x64.rpm 安裝完成後執行 java -version 命令查看安裝是否成功
3.1.3 查看安裝目錄命令,
命令一:which java
命令二:ls -lrt /usr/bin/java
命令三:ls -lrt /etc/alternatives/java
最後將會得出這樣的目錄 /usr/java/jdk1.8.0_151/jre/bin/java
3.1.4 配置環境變量,執行命令 vi /etc/profile;而後進入編輯模式,在文件的最後添加下面的配置,如圖
JAVA_HOME=/usr/javajdk1.8.0_151
JRE_HOME=/usr/java/jdk1.8.0_151/jre
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
修改完配置後,使用Esc 鍵退出,輸入:wq 保存並退出
3.1.5 執行命令 source /etc/profile 使用環境變量生效
3.1.6 驗證環境變量是否生效,分別執行下面的命令echo $JAVA_HOME echo $CLASSPATH echo $PATH
OK,JDK就這樣安裝好了。
3.2安裝ES
3.2.1 下載ES安裝包elasticsearch-5.6.3.zip 在usr 目錄下建立了es文件夾,將安裝包上傳到裏面,解壓 unzip elasticsearch-5.6.3.zip cd 進入 elasticsearch-5.6.3 文件裏面
3.2.2 建立ES用戶和組(建立elsearch用戶組及elsearch用戶),由於使用root用戶執行ES程序,將會出現錯誤;因此這裏須要建立單獨的用戶去執行ES 文件;命令以下:
命令一:groupadd elsearch
命令二:useradd elsearch -g elsearch
命令三:chown -R elsearch:elsearch elasticsearch-5.6.3 該命令是更改該文件夾下所屬的用戶組的權限
3.2.3 修改host 文件,執行命令 vi /etc/hosts ,如圖
3.2.4 建立ES數據文件和日誌文件,直接在root用戶根目錄一下建立就能夠了
執行命令:mkdir /data
命令二:chown -R elsearch:elsearch /data/
命令三:su - elsearch 切換用戶
命令四:mkdir -p es/data
命令五:mkdir -p es/logs
3.2.5 修改ES配置文件,使用cd命令進入到config 文件下,執行 vi elasticsearch.yml 命令,如圖所示,本人沒有配置集羣,只是簡單的配置了一下;詳細說明能夠參考官網;
關於上面的警告都忽略了,而後直接就執行命令
3.2.6 執行ES文件,進入到bin 目錄下執行 ./elasticsearch 命令就能夠了,執行 ./elasticesrarch -d 是後臺運行
若是沒有什麼問題話,就能夠安全生成了;而後執行curl 'http://本身配置的IP地址:9200/' 命令,就出現下面的結果
第四步:問題
4.1 1.[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 意思是說你的進程不夠用了
解決方案: 切到root 用戶:進入到security目錄下的limits.conf;執行命令 vim /etc/security/limits.conf 在文件的末尾添加下面的參數值:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
前面的*符號必須帶上,而後從新啓動就能夠了。執行完成後可使用命令 ulimit -n 查看進程數
第五步:安裝head 插件
5.1 下載head安裝包,下載地址:https://github.com/mobz/elasticsearch-head/archive/master.zip 這是接從git 上下載下來 ,而後上傳到虛擬機上的;因爲head 插件不能放在elasticsearch-5.6.3 文件夾裏,head 插件須要單獨放,單獨去執行; 所 以在elasticsearch-5.6.3 同級目錄下解壓了 head 插件;解壓出來的文件名字,如圖
5.2 執行head 插件,須要node.js 的支持,因此,下面先安裝一node.js
5.2.1 執行命令一:curl -sL https://rpm.nodesource.com/setup_8.x | bash -
命令二:yum install -y nodejs
OK,執行完成後,可使用命令 node -v 驗證是否安裝成功,同時npm 也安裝成功了;執行命令 npm -v 也是能夠驗證的。
5.3 安裝grunt ,因爲head 插件的執行文件是有grunt 命令來執行的,因此這個命令必須安裝
5.3.1 安裝命令一:npm install grunt --save-dev
命令二:npm install
5.3.2 修改配置文件,cd 進入elasticsearch-head-master 文件夾下,執行命令vim Gruntfile.js文件:增長hostname屬性,設置爲*;如圖:
5.3.3 修改 vim _site/app.js 文件:修改head的鏈接地址:,如圖所示:
5.3.4 最後一個命令: grunt server & 執行完成後就OK了
5.3.5 涉及到的問題,在網頁上沒法正常訪問;查看防火牆是否關閉
5.3.5.1 執行命令service iptables status 查看狀態 ;直接將防火牆關閉就行了 執行命令service iptables stop
最後執行的結果是這樣的,我沒有配置集羣: 注意下面使用的端口號,不在是9200 了 而是head 插件中的 9100 了
看到上面的出現的健康值了嗎,說明的鏈接仍是有問題的,解決方案是修改 cd 命令進入到elasticsearch-5.6.3 /config 文件中 vi elasticsearch.yml
文件下添加 :
http.cors.enabled: true
http.cors.allow-origin: "*"
而後從新執行ES ./elasticsearch 成功起來就能夠了,執行結果就是這樣的
安裝ik插件:
$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.6/elasticsearch-analysis-ik-5.5.6.zip