elasticsearch 單機及集羣配置

elasticsearch搜索引擎

簡介:
ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,是基於java語言編寫。

部署環境:
JDK 1.8
elasticsearch 6.2.2

下載鏈接:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.tar.gz
wget https://github.com/medcl/elasticsearch-analysis-ik (需要與elasticsearch的版本相對應)

單機部署:(必須在非root下部署,否則無法運行)
解壓安裝包:
mkdir data # 新建數據文件夾
修改配置文件:
[es@CentOS6 config]$ sed "/^#/d" elasticsearch.yml
#----------------- Paths ---------------------
path.data: /home/es/elasticsearch/data
path.logs: /home/es/elasticsearch/logs
#---------------- Memory --------------
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

#--------------- Network -------------
network.host: 0.0.0.0
http.port: 9200
修改內存配置文件:
[es@CentOS6 config]$ vim jvm.options
-Xms512m
-Xmx512m

修改系統參數
1、vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=65536
2、vi /etc/security/limits.conf
* soft nofile 819200
* hard nofile 819200
* soft nproc 2048
* hard nproc 4096
3、vi /etc/security/limits.d/90-nproc.conf
* soft nproc 1024
#修改爲
* soft nproc 4096

安裝中文分詞插件:
git clone https://github.com/medcl/elasticsearch-analysis-ik
下載完切換到相應版本:git checkout tags/v6.2.2
進入elasticsearch-analysis-ik文件夾內執行:mvn clean package命令打包編譯。
將target/releases文件夾內的elasticsearch-analysis-ik-6.2.2.zip copy到es的plugins文件夾內
解壓後修改文件夾名稱爲analysis-ik

啓動:
修改完以後重新登陸es用戶
啓動程序
./elasticsearch -d
編寫腳本以實現其他用戶可以正常啓動:
runuser -l es -c '/usr/myapp/elasticsearch-6.2.2/bin/elasticsearch -d'

安裝head插件:
在https://github.com/mobz/elasticsearch-head上下載head插件,並解壓到/usr/local/elasticsearch-6.2.2/

必須要有node環境,沒有的話需要安裝:
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz

添加環境變量:
NODE_HOME=/usr/local/node-v4.4.7-linux-x64
PATH=$PATH:$NODE_HOME/bin
NODE_PATH=$NODE_HOME/lib/node_modules
export NODE_HOME PATH NODE_PATH

node -v

安裝grunt-cli
npm install -g grunt-cli
grunt -version

修改文件Gruntfile.js,在第93行添加一行:
hostname: '0.0.0.0',

在/usr/local/elasticsearch-6.2.2/elasticsearch-head下執行:
npm install
安裝完成後會生成一個node_modules的文件夾

修改elasticsearch.yml配置文件,添加兩行:
http.cors.enabled: true
http.cors.allow-origin: "*"

執行命令啓動head服務:
grunt server

需要開啓防火牆限制
http://ip:9100

測試數據導入:
下載測試數據:https://github.com/bly2k/files/blob/master/accounts.zip?raw=true
測試數據導入:
curl -H "Content-Type: application/json" -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary "@accounts.json"

elasticsearch集羣部署配置:

這裏使用3臺,修改elasticsearch.yml
cluster.name: lcc-application # 必須一樣
node.name: node-191-168-10-173 # 必須不一樣

path.data: /home/es/elasticsearch/elasticsearch-6.2.0_data/data/
path.logs: /home/es/elasticsearch/elasticsearch-6.2.0_data/logs/

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

network.host: 0.0.0.0
http.port: 9200
#集羣發現#集羣節點ip或者主機
discovery.zen.ping.unicast.hosts: ["192.168.10.173", "192.168.10.174","192.168.10.175"]
#這個參數決定了要選舉一個Master需要多少個節點。默認爲1,設置爲N/2+1
discovery.zen.minimum_master_nodes: 2

#下面兩行配置爲haad插件配置,三臺服務器一致。
http.cors.enabled: true
http.cors.allow-origin: "*"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章