在centos7使用docker搭建elasticsearch集群


一 、docker的安裝

https://www.cnblogs.com/ghostdot/p/12410242.html

二、創建相關映射文件

cd /home/
mkdir node
cd node
mkdir es_node1 es_node2 es_node2 plugins
cd es_node1
mkdir data 
touch elastisearch.yml
cd /home/node
cd es_node2
mkdir data 
touch elastisearch.yml
cd /home/node
cd es_node3
mkdir data 
touch elastisearch.yml


三、編寫elasticsearch.yml配置文件

vim /home/node/es_node1/elasticsearch.yml

cluster.name: elasticsearch-cluster  #集群唯一名稱,所有節點一致
node.name: es_node1                     #節點名稱
network.bind_host: 0.0.0.0              #設置可以訪問的ip,默認為0.0.0.0,這里全部設置通過
network.publish_host: 192.168.2.2       #設置其它結點和該結點交互的ip地址
http.port: 9200                     #設置對外服務的http端口,默認為9200
transport.tcp.port: 9300           #設置節點之間交互的tcp端口,默認是9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true           #配置該結點是否有資格被選舉為主結點(候選主結點),為了防止腦裂,配置奇數個候選主結點
node.data: true              #配置該結點是數據結點,用於保
discovery.zen.ping.unicast.hosts: ["192.168.2.2:9300","192.168.2.2:9301","192.168.2.2:9302"] #集群個節點IP地址
discovery.zen.minimum_master_nodes: 2  #自動發現master節點的最小數
indices.query.bool.max_clause_count: 10240

vim /home/node/es_node2/elasticsearch.yml

cluster.name: elasticsearch-cluster  #集群唯一名稱,所有節點一致
node.name: es_node2                    #節點名稱
network.bind_host: 0.0.0.0              #設置可以訪問的ip,默認為0.0.0.0,這里全部設置通過
network.publish_host: 192.168.2.2       #設置其它結點和該結點交互的ip地址
http.port: 9201                     #設置對外服務的http端口,默認為9200
transport.tcp.port: 9301           #設置節點之間交互的tcp端口,默認是9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true           #配置該結點是否有資格被選舉為主結點(候選主結點),為了防止腦裂,配置奇數個候選主結點
node.data: true              #配置該結點是數據結點,用於保存
discovery.zen.ping.unicast.hosts: ["192.168.2.2:9300","192.168.2.2:9301","192.168.2.2:9302"] #集群個節點IP地址
discovery.zen.minimum_master_nodes: 2  #自動發現master節點的最小數
indices.query.bool.max_clause_count: 10240

vim /home/node/es_node3/elasticsearch.yml

cluster.name: elasticsearch-cluster  #集群唯一名稱,所有節點一致
node.name: es_node3                    #節點名稱
network.bind_host: 0.0.0.0              #設置可以訪問的ip,默認為0.0.0.0,這里全部設置通過
network.publish_host: 192.168.2.2       #設置其它結點和該結點交互的ip地址
http.port: 9202                    #設置對外服務的http端口,默認為9200
transport.tcp.port: 9302           #設置節點之間交互的tcp端口,默認是9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true           #配置該結點是否有資格被選舉為主結點(候選主結點),為了防止腦裂,配置奇數個候選主結點
node.data: true              #配置該結點是數據結點,用於保存數據
discovery.zen.ping.unicast.hosts: ["192.168.2.2:9300","192.168.2.2:9301","192.168.2.2:9302"] #集群個節點IP地址
discovery.zen.minimum_master_nodes: 2  #自動發現master節點的最小數
indices.query.bool.max_clause_count: 10240

四、修改宿主機相關配置文件

# 關閉防火牆
systemctl status firewalld
systemctl stop firewalld.service  
systemctl disable firewalld.service
# 修改limits.conf
vim /etc/security/limits.conf
# 在最后添加: *表示所用用戶
*                hard    nofile          65536
*                soft    nofile          65536
*                soft    nproc           65536
*                hard    nproc           65536
# 修改sysctl.conf
vim /etc/sysctl.conf
# 在最后添加
vm.max_map_count=262144
# 關閉selinux
vim /etc/sysconfig/selinux
# 將 SELINUX=enforcing 改為 SELINUX=disabled

五、ES插件的安裝

如果不需要插件,這個步驟可以省略

 # 下載地址:
 # https://github.com/medcl/elasticsearch-analysis-ik/releases
 # 拷貝到plugins下
 #  tar -zxvf 下載文件
 # 解壓后將原文件刪除
 # 建議chmod -R 777 包名

六、啟動ES集群

   docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9200:9200 -p 9300:9300 -v /home/node/es_node1/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/node/es_node1/data:/usr/share/elasticsearch/data -v /home/node/plugins:/usr/share/elasticsearch/plugins --name ES01 elasticsearch:5.1.1
   docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9201:9201 -p 9301:9301 -v /home/node/es_node2/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/node/es_node2/data:/usr/share/elasticsearch/data -v /home/node/plugins:/usr/share/elasticsearch/plugins --name ES02 elasticsearch:5.1.1
   docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d -p 9202:9202 -p 9302:9302 -v /home/node/es_node3/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/node/es_node3/data:/usr/share/elasticsearch/data -v /home/node/plugins:/usr/share/elasticsearch/plugins --name ES03 elasticsearch:5.1.1


訪問 http://宿主機ip:9200/_cat/nodes

七、寫在最后

ES_JAVA_OPTS="-Xms512m -Xmx512m"
512m為其內存,可以自己根據尋求就行分配,內存越高es的效率也就越高
elasticsearch:5.1.1 
版本可以自己根據需要進行選擇
如果出現權限不足或者報錯,可以嘗試
cd /home
chmod -R 777 node
chown -R 777 node
插件選擇時版本應該和ES版本相對應

給出集群創建后的tree,各節點中data下,在創建前是沒有內容的,圖片中為節點生成后,docker內部映射出來的文件,如果需要重新創建請刪除data中的內容,以免影響集群的創建成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM