Centos7安裝Elasticsearch6.3及ik分詞器,設置開機自啟


參考Elasticsearch 在CentOs7 環境中開機啟動

建議虛擬機的內存大小為4G

1. 新建一個用戶john

出於安全考慮,elasticsearch默認不允許以root賬號運行。

創建用戶:

useradd john

設置密碼:

passwd john

切換用戶:

su - john

2. 上傳安裝包,並解壓

我們將安裝包上傳到:/home/john目錄

tar zxf elasticsearch-6.3.0.tar.gz
mv elasticsearch-6.3.0 elasticsearch

3. 修改配置

cd elasticsearch/config/

# 編輯jvm.options:
vim jvm.options

默認配置如下:

-Xms1g
-Xmx1g

內存占用太多了,我們調小一些:

-Xms512m
-Xmx512m

  1. elasticsearch.yml
vim elasticsearch.yml
  • 修改數據和日志目錄:
path.data: /home/john/elasticsearch/data # 數據目錄位置
path.logs: /home/john/elasticsearch/logs # 日志目錄位置

# 默認只允許本機訪問,修改為0.0.0.0后則可以遠程訪問
network.host: 0.0.0.0 # 綁定到0.0.0.0,允許任何ip來訪問

我們把data和logs目錄修改指向了elasticsearch的安裝目錄。但是這兩個目錄並不存在,因此我們需要創建出來。

進入elasticsearch的根目錄,然后創建:

mkdir data
mkdir logs

設置 max_map_count

  1. 切換到root用戶修改配置sysctl.conf
vi /etc/sysctl.conf 
  1. 添加下面配置:
vm.max_map_count=655360

並執行命令:

sysctl -p

目前我們是做的單機安裝,如果要做集群,只需要在這個配置文件中添加其它節點信息即可。

elasticsearch.yml的其它可配置信息:

屬性名 說明
cluster.name 配置elasticsearch的集群名稱,默認是elasticsearch。建議修改成一個有意義的名稱。
node.name 節點名,es會默認隨機指定一個名字,建議指定一個有意義的名稱,方便管理
path.conf 設置配置文件的存儲路徑,tar或zip包安裝默認在es根目錄下的config文件夾,rpm安裝默認在/etc/ elasticsearch
path.data 設置索引數據的存儲路徑,默認是es根目錄下的data文件夾,可以設置多個存儲路徑,用逗號隔開
path.logs 設置日志文件的存儲路徑,默認是es根目錄下的logs文件夾
path.plugins 設置插件的存放路徑,默認是es根目錄下的plugins文件夾
bootstrap.memory_lock 設置為true可以鎖住ES使用的內存,避免內存進行swap
network.host 設置bind_host和publish_host,設置為0.0.0.0允許外網訪問
http.port 設置對外服務的http端口,默認為9200。
transport.tcp.port 集群結點之間通信端口
discovery.zen.ping.timeout 設置ES自動發現節點連接超時的時間,默認為3秒,如果網絡延遲高可設置大些
discovery.zen.minimum_master_nodes 主結點數量的最少值 ,此值的公式為:(master_eligible_nodes / 2) + 1 ,比如:有3個符合要求的主結點,那么這里要設置為2

4. 運行

su john
cd  /home/john/elasticsearch/bin
./elasticsearch

表明elasticserarch初步啟動成功

# 設置后台啟動
./elasticsearch -d

5. 設置開機自啟

一:先查看當前的開機啟動服務;

chkconfig --list

二:創建es 的系統啟動服務文件,進入到 cd /etc/init.d 目錄;

cd /etc/init.d      【進入到目錄】
vi elasticsearch    【創建es系統啟動服務文件】

三:編寫啟動腳本;

#!/bin/bash
#chkconfig: 345 63 37
#description: elasticsearch
#processname: elasticsearch-5.4.0

export ES_HOME=/home/john/elasticsearch/     【這個目錄是你Es所在文件夾的目錄】  

case $1 in
        start)
                su john<<!        【es 這個是啟動es的賬戶,如果你的不是這個記得調整】
                cd $ES_HOME
                ./bin/elasticsearch -d -p pid
                exit
!
                echo "elasticsearch is started"
                ;;
        stop)
                pid=`cat $ES_HOME/pid`
                kill -9 $pid
                echo "elasticsearch is stopped"
                ;;
        restart)
                pid=`cat $ES_HOME/pid`
                kill -9 $pid
                echo "elasticsearch is stopped"
                sleep 1
                su john<<!     【es 這個是啟動es的賬戶,如果你的不是這個記得調整】
                cd $ES_HOME
                ./bin/elasticsearch -d -p pid
                exit
!
                echo "elasticsearch is started"
        ;;
    *)
        echo "start|stop|restart"
        ;;  
esac
exit 0

記得 刪除筆者的[中文提示]
保存退出

四:修改文件權限;

chmod 777 elasticsearch

五:添加和刪除服務並設置啟動方式;

chkconfig --add elasticsearch    #【添加系統服務】
chkconfig --del elasticsearch    #【刪除系統服務】

六:關閉和啟動服務;

service elasticsearch start     #【啟動】
service elasticsearch stop      #【停止】
service elasticsearch restart     #【重啟】

七:設置服務是否開機啟動;

chkconfig elasticsearch on      #【開啟】
chkconfig elasticsearch off       #【關閉】

驗證是否已啟動命令:

ps -ef | grep elasticsearch    #【查看是否有es的進程】

結束進程命令用kill -9 進程ID;

6. 安裝ik分詞器

cd /home/john/
unzip elasticsearch-analysis-ik-6.3.0.zip  -d ik-analyzer
mv ik-analyzer/ elasticsearch/plugins/
service elasticsearch restart

測試分詞器是否安裝成功
在kibana中輸入如下

POST _analyze
{
  "analyzer": "ik_max_word",
  "text":     "我是中國人"
}


常見錯誤

錯誤1:內核過低

使用的是centos6,其linux內核版本為2.6。而Elasticsearch的插件要求至少3.5以上版本。不過沒關系,我們禁用這個插件即可。

修改elasticsearch.yml文件,在最下面添加如下配置:

bootstrap.system_call_filter: false

然后重啟

錯誤2:文件權限不足

再次啟動,又出錯了:

[1]: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

我們用的是leyou用戶,而不是root,所以文件權限不足。

首先用root用戶登錄。

然后修改配置文件:

vim /etc/security/limits.conf

添加下面的內容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 4096

* hard nproc 4096

錯誤3:線程數不夠

剛才報錯中,還有一行:

[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

這是線程數不夠。

繼續修改配置:

vim /etc/security/limits.d/90-nproc.conf 

修改下面的內容:

* soft nproc 1024

改為:

* soft nproc 4096

錯誤4:進程虛擬內存

[3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

vm.max_map_count:限制一個進程可以擁有的VMA(虛擬內存區域)的數量,繼續修改配置文件, :

vim /etc/sysctl.conf 

添加下面內容:

vm.max_map_count=655360

然后執行命令:

sysctl -p

5.重啟終端窗口

所有錯誤修改完畢,一定要重啟你的 Xshell終端,否則配置無效。


免責聲明!

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



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