ES(elasticsearch)搜索引擎集群安装

1. 三台centos7虚拟机:

地址:192.168.143.11,192.168.143.22,192.168.143.33

教程:VMwave安装多个Linux(centos)虚拟机

2. 安装java环境

教程:Linux下安装jdk8步骤

3. 安装项目管理工具软件maven

教程:Linux下安装maven

wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

4. 安装elasticSearch

本文使用的v1.7.5版本

  • 下载压缩包
wget https://codeload.github.com/elastic/elasticsearch/tar.gz/v1.7.5
  • 解压到指定目录
# 我是放在/fxx/目录下
var -zxvf v1.7.5
  • 使用mvn构建项目
# 进入解压的目录执行
mvn clean package -DskipTests  # 耗时十分钟左右,三太虚拟机同时执行
  • 安装项目
# 构建完成后会在目录下生成target/releases目录
# 进入目录
cd target/releases/

# 可以看到有一个编译好的压缩包(类似于elasticsearch-1.7.5.zip这样的文件)
# 解压该压缩包到/fxx/目录
unzip elasticsearch-1.7.5.zip -d /fxx/  # 到这一步就安装好了
  • 启动项目
cd /fxx/elasticsearch1.7.5/
./bin/elasticsearch -d  # 后台启动完成
  • 测试一下

测试时,我在阿里云服务器上使用 curl -X GET http://localhost:9200 能正常响应

但是在虚拟机上测试的时候,一直报“curl: (7) Failed connect to localhost:9200; 拒绝连接”错误

开始一直以为是端口没有开导致拒绝连接,可输入netstat -nltp 查看时端口时确是开启的

而输入 curl -X GET http://192.168.143.11:9200 也能正常响应

然后索性修改了hosts文件(vi /etc/hosts),加了一行 “192.168.143.11  localhost” 后, http://localhost:9200 能正常响应

netstat -nltp 查看时端口时,阿里云的是:

Proto   Recv-Q   Send-Q      Local Address           Foreign Address         State       PID/Program name
tcp                         0            0 0.0.0.0:9200                    0.0.0.0:*            LISTEN         16611/java

而虚拟机的是:

Proto   Recv-Q Send-Q       Local Address             Foreign Address         State       PID/Program name
tcp6       0             0         192.168.143.11:9200                  :::*                  LISTEN      6956/java

看Proto/Local Address/Foreign Address可以看出差别,一个是ipv4,一个是ipv6,我猜是ipv6没有正常解析这个“localhost”

hosts里添加映射之后就好了

*注:如果想在postman或者浏览器里输入路由访问的话需要开9200端口,执行下面命令:

firewall-cmd --zone=public --add-port=9200/tcp --permanent

firewall-cmd --reload

# es通过HTTP协议收发数据,可以用curl命令来给它发命令,默认监听9200端口
curl -X GET http://localhost:9200/
# 响应如下:
{
  "status" : 200,
  "name" : "Gaia",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.7.5",
    "build_hash" : "${buildNumber}",
    "build_timestamp" : "2019-03-20T08:28:00Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

遇到的问题:

1. 三个虚拟机上的es无法查找到对方,没能构建出集群,配置了“discovery.zen.ping.unicast.hosts”没有效果,但三个虚拟机的网络都能ping通,第一台虚拟机(192.168.143.11)也能使用“curl http://192.168.143.22:9200”访问第二台虚拟机;

2. 在用一台虚拟机上启动两个es,会自动分配端口,比如启动一个es时端口是9200,再启动一个会自动分配9201端口,这两个es可以组成集群,集群中两个节点的名称是一样的,即便在“discovery.zen.ping.unicast.hosts”这里没有配置9201这个端口也能自动发现它;

3. 把es的目录复制一份,并修改配置,改掉节点名和端口,相当于在同一台虚拟机上启动两个es,不用额外配置“discovery.zen.ping.unicast.hosts”,它们依然可以组成集群(2.3.3版本可以,1.7.5不行);

反正用虚拟机还没配成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值