elasticsearch集羣搭建手冊

elasticsearch集羣搭建手冊java

1 系統環境node

OS: CentOS 6.5 x64
JAVA: JDK 1.8 x64
編輯
1.1 安裝準備:linux

ElasticSearch(簡稱ES)由java語言實現,運行環境依賴java。ES 2.x版本,官方須要至少使用jdk1.8的環境,推薦使用Oracle JDK version 1.8.0_25。瀏覽器

ES集羣統一使用JRE 1.8 環境app

編輯2 安裝elasticsearch

編輯2.1 安裝JAVA 環境tcp

JDK下載URL:http://xxx/soft/java/jdk-8u65...
安裝: # rpm -ivh jdk-8u65-linux-x64.rpm
編輯
2.2 安裝ES測試

1) 安裝ESspa

ES下載地址:http://xxx/soft/elasticsearch...
安裝軟件包: # rpm -ivh elasticsearch-2.1.1.rpm插件

2) 配置ES

ES服務目錄: /usr/share/elasticsearch
配置文件目錄:/etc/elasticsearch/
配置文件1: /etc/elasticsearch/elasticsearch.yml

配置文件說明:

集羣名稱,默認爲elasticsearch, 命名規則爲 es-產品名-ES版本

cluster.name: es-app-2.1.1

節點名稱,es啓動時會自動建立節點名稱,但你也可進行配置

node.name: es-1

設置索引的分片數

index.number_of_shards: 5

設置索引的副本數

index.number_of_replicas: 1

是否爲主節點,一個集羣中建議只配置一個主節點

node.master: false

數據存儲位置

path.data: /data1/elasticsearch/data

這個參數是用來同時設置bind_host和publish_host上面兩個參數 v2.0以上默認是127.0.0.1

network.host: 0.0.0.0

設置對外服務的http端口,默認爲9200

http.port: 9200

設置節點間交互的tcp端口,默認是9300

transport.tcp.port: 9300

index.version.created : 2010199index.max_result_window: 1500000

這是一個集羣中的主節點的初始列表,當節點(主節點或者數據節點)啓動時使用這個列表進行探測

discovery.zen.ping.unicast.hosts: ["ip:9300", "ip:9300"]

因爲阿里禁止廣播,建議關閉廣播

discovery.zen.ping.multicast.enabled: false

ping 的超時時間

discovery.zen.ping_timeout: 10s

ping 的超時時間 Fault Detection

discovery.zen.fd.ping_timeout: 10s

ping 重試的次數

discovery.zen.fd.ping_retries: 6

ping 的間隔

discovery.zen.fd.ping_interval: 5s

cache 的最大佔比

indices.fielddata.cache.size : 50%

線程池的配置

threadpool: search:

type: fixed
  size: 7
  queue: 1000
  # reject_policy: caller

threadpool: index:

type: fixed
  size: 3
  queue: 200
  # reject_policy: caller

threadpool: bulk:

type: fixed
  size: 2
  queue_size: 50

ps : sysctl -p 確保 vm.max_map_count=262144

配置文件2: /etc/sysconfig/elasticsearch 文件說明:

ES服務目錄

ES_HOME=/usr/share/elasticsearch

ES配置文件目錄

CONF_DIR=/etc/elasticsearch

ES 數據目錄

DATA_DIR=/data1/elasticsearch/data

ES 日誌目錄

LOG_DIR=/var/log/elasticsearch

ES 進程PID文件位置

PID_DIR=/var/run/elasticsearch

ES_HEAP_SIZE表示JVM參數的-Xms and -Xmx設置,默認256M,建議設置內存的50%,可是不能超過31g

ES_HEAP_SIZE=4g

打開文件數

MAX_OPEN_FILES=65535配置文件3 : /usr/share/elasticsearch/bin/elasticsearch.in.sh

ES 的內存配置

if [ "x$ES_MIN_MEM" = "x" ]; then

ES_MIN_MEM=5g

fiif [ "x$ES_MAX_MEM" = "x" ]; then

ES_MAX_MEM=6g

內存設置超過6G時, 須要聯繫開發,測試使用新的GC回收機制

內存配置6G一下的GC

if [ "x$ES_GC_OPTS" = "x" ]; then
ES_GC_OPTS="$ES_GC_OPTS -XX:+UseParNewGC"
ES_GC_OPTS="$ES_GC_OPTS -XX:+UseConcMarkSweepGC"
ES_GC_OPTS="$ES_GC_OPTS -XX:CMSInitiatingOccupancyFraction=75"
ES_GC_OPTS="$ES_GC_OPTS -XX:+UseCMSInitiatingOccupancyOnly"
fi

內存配置6G以上的的GC

if [ "x$ES_GC_OPTS" = "x" ]; then

ES_GC_OPTS="$ES_GC_OPTS -XX:+UseG1GC"

ES_GC_OPTS="$ES_GC_OPTS -XX:MaxGCPauseMillis=200"

fi

編輯3) 啓動ES

注:啓動服務前請確保數據目錄和插件目錄,用戶elasticsearch 擁有寫權限,不要使用777附權限 
添加開機啓動項: # chkconfig –add elasticsearch;chkconfig elasticsearch on 
啓動/中止/重啓: # service elasticsearch start/stop/restart

編輯4) 檢查

瀏覽器訪問 http://ip:9200

查看分配的創建狀況,ES的健康度爲綠色 http://ip:9200/_plugin/head/

編輯

  1. 插件安裝

插件目錄:/usr/share/elasticsearch/plugins1) 插件:head

  1. 下載插件包
    下載地址: http://xxx/soft/elasticsearch...

解壓縮插件包: # unzip elasticsearch-head-master.zip移動插件包目錄 # mv elasticsearch-head-master /usr/share/elasticsearch/plugins/head

  1. 驗證插件插件安裝完成後,請重啓elasticsearch服務

在瀏覽器輸入地址訪問: http://ip:9200/_plugin/head/

能夠看到當前集羣下的全部節點

2) 插件:bigdesk

  1. 下載插件包
    下載地址: http://xxx/soft/elasticsearch...

解壓縮插件包: # unzip bigdesk-master.zip移動插件包目錄 # mv bigdesk-master /usr/share/elasticsearch/plugins/bigdesk

  1. 驗證插件插件安裝完成後,請重啓elasticsearch服務

在瀏覽器輸入地址訪問: http://ip:9200/_plugin/bigdesk/

分詞包插件( 專屬elasticseach 2.1)安裝:

/usr/share/elasticsearch/plugins

修改啓動文件:

[root@es-46-68-76 bin]# pwd
/usr/share/elasticsearch/bin
修改 elasticsearch.in.sh

ES_CLASSPATH=「$ES_HOME/lib/elasticsearch-2.1.1.jar:$ES_HOME/lib: $ES_HOME/lib/*」

使啓動時,能添加lib目錄。

修改配置文件 
/etc/elasticsearch
修改elasticsearch.yml

此處參考「2) 配置ES」

上傳分詞包: 
上傳hanlp文件
此地存放分詞包,並進行受權。

[root@es-46-68-76 elasticsearch]# pwd
/etc/elasticsearch
[root@es-46-68-76 elasticsearch]# ll -tr
total 32
-rwxr-x— 1 root elasticsearch 2571 Oct 21 2015 logging.yml
-rw-r–r– 1 root root 13654 Dec 14 14:01 elasticsearch.yml.rpmsave
drwxr-x— 2 root elasticsearch 4096 Dec 15 21:37 scripts
drwxr-xr-x 3 root elasticsearch 4096 Apr 21 15:09 hanlp
-rwxr-x— 1 root elasticsearch 4011 Apr 27 14:54 elasticsearch.yml

重啓elasticsearch,便可使用。

編輯
Notes
對於單主節點的ES,能夠把主配置爲非數據節點,保證主節點的穩定性
能夠配置 indices.fielddata.cache.size屬性,防止內存溢出

能夠使用值:eg:50mb 或者 30%(節點 node heap內存量),默認是:unbounded

indices.fielddata.cache.size: unbounded

相關文章
相關標籤/搜索