elasticsearch簡單的安裝以及集羣配置詳解

首先要確保有java8的環境,安裝方法以下(centos)java

1  wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
2 rpm -ivh  jdk-8u161-linux-x64.rpm
https://www.baidu.com/link?url=cn60GecIBvDt9OvD_nQK9CR0TwbwxLM2DtpYNIptUGtNMG89ELhbPCNFg0xDlT205HcG88QVruw1Zgte5Nim620OPshtt3hKq1zACpJQ3WTCSwtKUO2sdnVzpUjrbuQ2&wd=&eqid=e3cf42960002cb16000000055bee8e9f 這個地址就是官網的jdk下載地址,

環境安裝完畢,下載elesticsearch,這裏若是須要其餘版本直接改末尾的版本號就能夠下載其餘版本的node

1 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.zip

解壓elasticsearch-5.5.2.ziplinux

1 unzip elasticsearch-5.5.2.zip

2 mv
elasticsearch-5.5.2 elasticsearch
 

 

若是沒有unzip這個命令的話能夠先運行git

1 yum install unzip

elasticsearch不能直接用root帳戶運行,因此須要建立一個用戶,並且須要將elasticsearch文件夾屬主修改成新建立的這個用戶,否則的話啓動的時候會有一些權限引發的錯誤github

由於這時候並不知道root的密碼,因此先給root建立一個密碼bootstrap

 1 passwd root vim

而後輸入密碼centos

接着建立用戶並修改文件夾屬主和屬組服務器

groupadd elasticsearch
useradd elasticsearch -g
elasticsearch
passwd elasticsearch 

chown -R elasticsearch:elasticsearch elasticsearch

打開位於elasticsearch文件夾中/conifg目錄下的 elasticsearch.yml配置文件修改配置cookie

cluster.name: elas_cluster   集羣的名字

node.name: node-q1   節點的名稱

node.master: true
node.data: true

 配置文件中給出了三種配置高性能集羣拓撲結構的模式,以下:

1. 若是你想讓節點從不選舉爲主節點,只用來存儲數據,可做爲負載器

       node.master: false

      node.data: true

2. 若是想讓節點成爲主節點,且不存儲任何數據,並保有空閒資源,可做爲協調器

       node.master: true

       node.data: false

3. 若是想讓節點既不稱爲主節點,又不成爲數據節點,那麼可將他做爲搜索器,從節點中獲取數據,生成搜索結果等

        node.master: false

       node.data: false

默認狀況是兩個都是true,若是沒幾臺服務器的話就用默認的就能夠了。

network.host: 192.168.0.1 綁定的ip,設置爲0.0.0.0後能夠用外網訪問

network.publish_host: 192.168.0.1  指定elasticsearch節點對外的監聽地址,就是外網地址,搭建集羣的時候最好指定一下,不然可能集羣沒辦法啓動,默認應該是去監聽內網地址的

node.attr.rack: r2  給節點添加額外屬性,這個暫時沒發現什麼用處

path.data: /path/to/data    數據保存的目錄
path.logs: /path/to/logs    日誌保存的目錄

bootstrap.memory_lock: true  禁止內存交換,最好設置爲false,否則很是影響性能,若是由於這個啓動的時候報錯,能夠去修改limits.conf,配置下面有說

http.port:9200     路由地址端口

transport.tcp.port:9300     TCP協議轉發地址端口,像java使用這個端口去操做

注:ES默認的HTTP監聽端口是9200,若是當前被佔用,則在9200~9300範圍內遞增;另外TCP的默認監聽端口是9300,若是當前被佔用,則再9300~9400範圍內遞增。因此單機少許節點,不配置具體端口的話,也是能夠運行的。

 

discovery.zen.ping.unicast.hosts: ["192.168.36.130", "192.168.36.132:9300"]      單播的地址,配置集羣中其餘節點的ip,新加入的節點經過這些ip同步到集羣,這裏的端口應該使用transport.tcp.port端口

discovery.zen.minimum_master_nodes: 2        master節點是選取出來的,一個集羣只能有一個,以上node.master: true配置是說該節點具備被選舉的權利,而如今這個配置就是告訴 Elasticsearch 當沒有足夠 master 候選節點的時候,就不要進行 master 節點選舉,等 master 候選節點足夠了才進行選舉。(由於你是一臺臺去啓動服務器的) 這樣是爲了防止集羣中同時存在兩個master,這個數值應該配置爲 ( master 候選節點個數 / 2) + 1。因此要高可用的話至少三臺以上有被選舉權。

gateway.recover_after_nodes: 2  通俗來講就是等集羣有幾個節點啓動起來了再來選舉master,分配分片數據什麼的,這裏配得很差可能有的問題就是啓動的時候可能會多耗點性能

index.number_of_shards: 5       設置索引的分片數,默認爲5    分片的意思就是一整個索引文檔,分紅5個部分去保存

index.number_of_replicas: 1      設置索引的副本數,默認爲1  1個副本至關於一個備份

 

配置一下

  1 vi /etc/security/limits.conf 
 
添加以下內容:
 *  soft nofile 65536
 * hard nofile 131072
 * soft nproc 2048
 * hard nproc 4096
 *  soft memlock unlimited
 * hard memlock unlimited
再敲個命令
  1 ulimit -l unlimited 
 
修改 /etc/sysctl.conf
文件末尾添加 vm.max_map_count=655360
 
報存後退出

 敲命令

sysctl -w vm.max_map_count=655360

 

這時候可能會由於服務器內存緣由遇到一個錯誤   Cannot allocate memory

在elasticsearch目錄下執行 vim  config/jvm.options

修改內存 

-Xms256m

-Xmx256m

(根據本身服務器內存設置)

 

 

一切就緒後啓動

切換到elasticsearch用戶,不然root用戶下啓動會拋異常

su elasticsearch

 

 

elasticsearch目錄下bin中運行  ./elasticsearch

啓動的時候發現報錯,並且可能一次又一次,一次好幾個錯,錯誤這裏就不說了,主要都是由於帳戶權限,內存線程什麼引發的,網上的解決方法不少,隨便貼幾個連接

https://blog.csdn.net/gongpulin/article/details/78568595

https://blog.csdn.net/u013083576/article/details/78499884

 

單個成功訪問ip地址加端口後,端口是http.port端口

 

集羣健康查看 ip加端口加上/_cluster/health

 

 

   若是須要安裝ik分詞器的,能夠在 https://github.com/medcl/elasticsearch-analysis-ik/releases 找到對應的版本  elasticsearch-analysis-ik-x.x.x.zip  下載解壓,最後將解壓後的文件拷貝到 elasticsearch文件夾的 /plugin/ 文件夾中,啓動es就ok了

相關文章
相關標籤/搜索