elasticsearch簡單的安裝以及集群配置詳解
首先要確保有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 wgethttps://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簡單的安裝以及集群配置詳解