天天看點

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

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

建議虛拟機的記憶體大小為4G

1. 建立一個使用者john

出于安全考慮,elasticsearch預設不允許以root賬号運作。

建立使用者:

useradd john
           

設定密碼:

passwd john
           

切換使用者:

su - john
           

2. 上傳安裝包,并解壓

我們将安裝包上傳到:

/home/john

目錄

Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟
tar zxf elasticsearch-6.3.0.tar.gz
mv elasticsearch-6.3.0 elasticsearch
           

3. 修改配置

cd elasticsearch/config/
           
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟
# 編輯jvm.options:
vim jvm.options
           

預設配置如下:

-Xms1g
-Xmx1g
           

記憶體占用太多了,我們調小一些:

-Xms512m
-Xmx512m
           
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟
  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來通路
           
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟

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

進入elasticsearch的根目錄,然後建立:

mkdir data
mkdir logs
           
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟

設定 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
           
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟

表明elasticserarch初步啟動成功

# 設定背景啟動
./elasticsearch -d
           

5. 設定開機自啟

一:先檢視目前的開機啟動服務;

chkconfig --list
           
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟

二:建立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":     "我是中國人"
}
           
Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟

常見錯誤

錯誤1:核心過低

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

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

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

bootstrap.system_call_filter: false
           

然後重新開機

錯誤2:檔案權限不足

再次啟動,又出錯了:

Centos7安裝elasticsearch6.3及ik分詞器,設定開機自啟
[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終端,否則配置無效。

繼續閱讀