1. 程式人生 > >elasticsearch簡單的安裝以及集群配置詳解

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

nod image acl down IE rec 外網地址 imu 集群

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

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 npm -ivh  jdk-8u161-linux-x64.rpm

環境安裝完畢,下載elesticsearch

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

解壓elasticsearch-5.5.2.zip

1 unzip elasticsearch-5.5.2.zip

如果沒有unzip這個命令的話可以先運行

1 yum install unzip

elasticsearch不能直接用root賬戶運行,所以需要創建一個用戶,而且需要將elasticsearch文件夾屬主修改為新創建的這個用戶,不然的話啟動的時候會有一些權限引起的錯誤

因為這時候並不知道root的密碼,所以先給root創建一個密碼

1 passwd root

然後輸入密碼

接著創建用戶並修改文件夾屬主和屬組

groupadd elasticsearch
useradd elasticsearch
passwd elasticsearch chown -R elasticsearch:elasticsearch elasticsearch

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

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=262144 報存後退出

敲命令

sysctl -w vm.max_map_count=262144

一切就緒後啟動

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

技術分享圖片

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