Elasticsearch 集群部署搭建笔记

本贴最后更新于 2185 天前,其中的信息可能已经时异事殊

ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
下面介绍 Elasticsearch 的集群部署的过程。

环境

  |     服务器    | 可以成为主节点 | 可以成为数据节点 |
  | 10.211.55.10 |      √       |      √        |
  | 10.211.55.11 |      √       |      √        |
  | 10.211.55.12 |      √       |      √        |
  | 10.211.55.13 |      √       |      √        |

软件版本

Elasticsearch 6.5.4
JDK 1.8

详细步骤

JDK 安装

JDK 的下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解压 JDK 压缩包到:/usr/local/,重命名为 jdk1.8,jdk 的完整路径就是:/usr/local/jdk1.8
配置 JDK 环境变量:

vi /etc/profile 

export JAVA_HOME=/usr/local/jdk1.8 
export PATH=${JAVA_HOME}/bin:$PATH  

source /etc/profile

Elasticsearch 安装

Elasticsearch 下载地址:https://www.elastic.co/downloads/elasticsearch

下载 Linux 版本解压到 /usr/local/elasticsearch-6.5.4 目录。

由于 Elasticsearch 不能用 root 用户启动,所以创建一个叫 es 的用户,命令如下:
adduser es

修改密码:
passwd es
回车后输入 es 的密码。

更改目录权限:
sudo chmod 777 -R /usr/local/elasticsearch-6.5.4

更改文件:

vi /etc/security/limits.conf

* hard nofile 65536
* soft nofile 65536

vi /etc/sysctl.conf

vm.max_map_count=655360

更新完上面两个文件后执行以下命令更新:
sysctl -p

修改 Elasticsearch 的配置文件:

vi elasticsearch-6.5.4/config/elasticsearch.yml

network.host: 10.211.55.10 #对应机器的IP
http.port: 9200

切换到 es 用户,cd 到 Elasticsearch 的 bin 目录下,后台模式启动 Elasticsearch:
./elasticsearch -d

在浏览器访问:http://ip:9200/
出现 Elasticsearch 相关信息就说明 Elasticsearch 已经正确启动了。

其他节点都照着这个步骤搭建,把每台机的环境搭建起来。

配置集群信息

编辑 elasticsearch-6.5.4/config/elasticsearch.yml 文件,配置如下:

vi elasticsearch-6.5.4/config/elasticsearch.yml


#集群的名称
cluster.name: es6.5
#节点名称,其余两个节点分别为node-2 和node-3
node.name: node-1  #其他节点请改名为node-N
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#索引数据的存储路径
path.data: /usr/local/elasticsearch-6.5.4/data
#绑定的ip地址
network.host: 10.211.55.10  #其他节点改为对应的服务器IP
#设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300 
transport.tcp.port: 9300
#配置单播发现的主节点ip地址,其他从节点要加入进来,就得去询问单播发现机制里面配置的主节点我要加入到集群里面了,主节点同意以后才能加入,然后主节点再通知集群中的其他节点有新节点加入,这个是各个节点不同的配置,反正就是配置上排除自己再外的其他节点
discovery.zen.ping.unicast.hosts: ["192.168.8.101:9300", "192.168.8.103:9300", "192.168.8.104:9300"]
#这个参数控制的是,一个节点需要看到的具有master节点资格的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量(我们的情况是4,因此这个参数设置为3,但对于只有2个节点的情况,设置为2就有些问题了,一个节点DOWN掉后,你肯定连不上2台服务器了,这点需要注意)。
discovery.zen.minimum_master_nodes: 3

在各个节点都配置好后,切换到 es 用户进行启动,进入/usr/local/elasticsearch-6.5.4/bin,执行命令:
./elasticsearch -d
在浏览器输入 http://10.211.55.10:9200/
可以看到:
imagepng

说明集群部署已经成功了。是不是很简单?!






扫一扫有惊喜: [![imagepng](http://itechor.top/solo/upload/bb791a58c3a84193b7f643b6849482c5_image.png) ](http://ym0214.com)
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 208 关注
  • 搜索
    19 引用 • 118 回帖
  • 集群
    29 引用 • 65 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...