ElasticSearch学习(三):配置与集群

本文介绍了如何配置ElasticSearch实现外网访问及分布式部署。通过更改cluster.name、node.name和network.host等参数,设置不同端口,创建了两个ElasticSearch实例模拟分布式。在遇到文件描述符和虚拟内存限制时,通过调整系统参数解决。最后,成功启动的两个节点显示在同一个集群中,可从外部进行访问和监控。

在上一篇我们说到了ElasticSearch的下载与运行,但是目前只有一个实例在运行,并且只能本地访问。那么本章将会说到如何配置实现外网访问以及分布式。

关闭之前运行的ElasticSearch,进入ElasticSearch下载目录

cd ~/elasticSearch/

可以看到之前解压出来的文件,由于手上只有一只服务器,所以就用一台服务器来模拟分布式了。

为了方便管理,先把elasticsearch-6.5.4目录改名为elasticsearch1

mv elasticsearch-6.5.4/ elasticsearch1

然后将elasticsearch1复制一份,并改名为elasticsearch2

cp -r elasticsearch1 elasticsearch2

OK,现在有elasticsearch1和elasticsearch2两个了,分别给他们配置不同的端口。

先配置第一个

vim ./elasticsearch1/config/elasticsearch.yml 

我们关注的是Cluster、Node、Network三个配置。其中Cluster是集群配置,cluster.name相同的elasticsearch会加入到同一个集群中,实现分布式;Node是当前节点,node.name在集群中拥有唯一性,可以理解为服务器的名称;Network为网络配置,主要配置端口等。

 # ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-application-dev

将cluster.name前面的#去掉,将cluster.name设置为my-application-dev 

# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
 

将node.name设置为node-1 

 # ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#
http.port: 9201
 

将network.host设置为:0.0.0.0,表示所有的IP都可以访问。将http.port设置为9201,即网络访问的端口号。 

设好第一个后,同样设置第二个

vim ./elasticsearch2/config/elasticsearch.yml 

cluster.name要跟第一个保持一致,node.name设置为"node-2",network.host跟第一个一样,http.port设置为"9202",如下图所示

两个都设置好了之后,就分别启动两个ElasticSearch了。首先启动第一个

./elasticsearch1/bin/elasticsearch

 然后发现,报错了~~~

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

 可能会出现上面两个错误,也可能只出现一个或者不出现错误,根据实际情况来。

针对错误一:max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

sudo vim etc/security/limits.conf

在文件的后面加上: * - nofile 65536            * - memlock unlimited 两行,如下图

针对错误二:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

sudo vim /etc/sysctl.conf

在文件的最后一行添加以下语句:vm.max_map_count=262144

然后 执行下面命令,不用重启服务器。

sudo sysctl -p

修改完之后,重新启动第一个

./elasticsearch1/bin/elasticsearch

新建个窗口,启动第二个

./elasticsearch2/bin/elasticsearch

 不出意外的话,可以在另外一台电脑的浏览器上输入"服务器ip:9201"和"服务器ip:9202",分别查看到两个ElasticSearch

{
  "name" : "node-1",
  "cluster_name" : "my-application-dev",
  "cluster_uuid" : "MwHYQNWXSfyTv4ImCCKNJw",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
{
  "name" : "node-2",
  "cluster_name" : "my-application-dev",
  "cluster_uuid" : "MwHYQNWXSfyTv4ImCCKNJw",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

可以看到,两台ElasticSearch的cluster_name跟cluster_uuid是一样的,表示两个节点都加入了同一个集群中 。如何证明呢,在浏览器中输入"[ip]:9201/_cat/nodes?v",就可以看到下面的信息了:

浏览器输入"[ip]:9201/_cat/health?v",可以看到集群的健康情况及节点总数 。

 可以看到集群的状态为"green",绿色的健康状态,节点有2个。

到此为止,我们已经实现了ElasticSearch的运行与集群,ElasticSearch现在处于可以使用的状态了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值