目录
Elasticsearch单机双节点集群部署
首页 php教程 php手册 如何理解Elasticsearch单机双节点集群部署

如何理解Elasticsearch单机双节点集群部署

Sep 14, 2018 pm 04:03 PM
es

   这篇文章,我们还是做些基础的学习,在Elasticsearch如何进行CRUD。

Elasticsearch单机双节点集群部署

环境:CentOS 7.2       JDK 1.8.0_74
登录后复制


一、安装第一个ElasticSearch(主节点)

1、创建es用户,启动es不能使用root用户

useradd es
passwd es
登录后复制

root用户进入/home/es目录下

2、获取ElasticSearch安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.2.tar.gz
登录后复制

3、解压、改名(方便集群时区别另一个ES)

tar xf elasticsearch-6.1.2.tar.gzmv elasticsearch-6.1.2.tar.gz elasticsearch-node2
登录后复制

4、修改配置文件

vi elasticsearch-node2/config/elasticsearch.yml
登录后复制

修改内容如下:

cluster.name: my-application      
  各节点此名称必须一致node.name: node-2           
        节点名称,不能与其他节点相同        
         network.host: ***.***.***.***   
        自己的服务器IPhttp.port: ****         
           访问端口transport.tcp.port: ****  
    集群各节点间的通讯端口 discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"]
登录后复制

文件最后追加以下内容,以便连接head显示健康值(注意每行代码前面不要有空格)

http.cors.enabled: truehttp.cors.allow-origin: "*"
登录后复制
登录后复制
登录后复制

5、启动

sh elasticsearch-node2/bin/elasticsearch
登录后复制
[2018-01-24T15:36:41,990][INFO ][o.e.n.Node               ] [KMyyO-3] started
[2018-01-24T15:36:41,997][INFO ][o.e.g.GatewayService     ] [KMyyO-3] recovered [0] indices into cluster_state
登录后复制

启动成功,浏览器中输入 IP:访问端口

网页显示以下内容,说明部署成功

{
  "name" : "node-2",
  "cluster_name" : "my-application",
  "cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",    
  "version" : {
    "number" : "6.1.2",
    "build_hash" : "5b1fea5",
    "build_date" : "2018-01-10T02:35:59.208Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"}
登录后复制

6、报错及其处理
【类型一】

Caused by: java.lang.RuntimeException: can not run elasticsearch as root
登录后复制

该问题是因为运行es不能使用root用户,因此要切换es用户再次启动

chown -R es:es elasticsearch-node2/su - es
sh elasticsearch-node2/bin/elasticsearch
登录后复制

【类型二】

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
登录后复制

解决方法,换回root用户,修改配置文件

vi /etc/security/limits.conf#在最后面追加下面内容es hard nofile 65536es soft nofile 65536
登录后复制

【类型三】

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
登录后复制

解决方法,换回root用户,修改配置文件

vi /etc/sysctl.conf 
#在最后面追加下面内容vm.max_map_count=655360#执行命令:sysctl -p
登录后复制

二、安装第二个ElasticSearch(辅节点)
安装方法与第一个一致,注意修改配置文件
root用户进入/home/es目录下

1、解压、改名

tar xf elasticsearch-6.1.2.tar.gzmv elasticsearch-6.1.2.tar.gz elasticsearch-node3
登录后复制

2、修改配置文件

vi elasticsearch-node3/config/elasticsearch.yml
登录后复制

修改内容如下:

cluster.name: my-application      
  各节点此名称必须一致node.name: node-3      
               节点名称,不能与其他节点相同network.host: ***.***.***.***   
                   自己的服务器IPhttp.port: ****          
                              访问端口(注意不要与第一个端口重复)                              transport.tcp.port: ****            集群各节点间的通讯端口(注意不要与第一个端口重复)discovery.zen.ping.unicast.hosts: ["主节点IP:通讯端口","辅节点IP:通讯端口"]
登录后复制

文件最后同样追加下面代码

http.cors.enabled: truehttp.cors.allow-origin: "*"
登录后复制
登录后复制
登录后复制

3.启动

sh elasticsearch-node3/bin/elasticsearch
登录后复制

浏览器,浏览器中输入 IP:访问端口
网页显示以下内容,说明第二个部署成功

{
  "name" : "node-3",
  "cluster_name" : "my-application",
  "cluster_uuid" : "j2aJ7CsRSuSo0G8Bgky2Ww",
  "version" : {
    "number" : "6.1.2",
    "build_hash" : "5b1fea5",
    "build_date" : "2018-01-10T02:35:59.208Z",
    "build_snapshot" : false,
    "lucene_version" : "7.1.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"}
登录后复制

三、安装Elasticsearch-head插件
1、安装head插件之前需要安装node.js

curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y nodejs
登录后复制

安装完成后执行命令查看node与npm版本

[root@host]# node -vv8.12.0[root@host]# npm -v6.4.1
登录后复制

2、从git获取head插件

wget https://github.com/mobz/elasticsearch-head/archive/master.zip
登录后复制

3、解压安装包(可以改名,方便操作)

unzip master.zip
mv elasticsearch-head-master/ head
登录后复制

4、修改配置文件

vi head/Gruntfile.js
登录后复制

更改head端口号

connect: {          server: {
                   options: {
                              port: ****,    改为head访问端口
                              base: '.',
                              keepalive: true                             }
                    }
          }
登录后复制
vi head/_site/app.js
登录后复制

更改head链接地址

init: function(parent) {
                        this._super();                        this.prefs = services.Preferences.instance();                        this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://主节点IP:访问端口";
登录后复制

5、启动head

nohup npm run start > ../head.log 2>&1 &
登录后复制

6、浏览器登录head
20180914135055785.png

URL输入服务器IP:head访问端口
链接地址输如主节点的访问地址
7、安装head常见错误
【类型一】启动成功,但是网页不能访问
解决方法
关闭服务器防火墙

service iptables stop
登录后复制

【类型二】集群健康值未连接
在elasticsearch.yml里追加下列代码(注意代码前面不要有空格)

http.cors.enabled: truehttp.cors.allow-origin: "*"
登录后复制
登录后复制
登录后复制

问:为什么es节点用node2、node3?
答:因为之前用node1搭建了一套未集群的ES,所以后面集群就用2和3了

相关推荐:

Yii2-elasticsearch 怎么用啊?

Elasticsearch中的CRUD


以上是如何理解Elasticsearch单机双节点集群部署的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)