一. Elasticsearch7.7.0 安装与集群配置

Elasticsearch 安装与集群配置

一、软件版本

操作系统:CentOS Linux release 7.6.1810 (Core)

ES版本:7.7.0

主机:192.168.3.120 docker0

主机: 192.168.3.121 docker1

主机: 192.168.3.122 docker2

二、部署环境规划:

需求:jdk:open-jdk.1.8

# java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)

下载解压安装即可:

# cd /opt/
# tar zxvf elasticsearch-7.7.0-linux-x86_64.tar.gz

创建用户及组

# useradd elastic

# passwd elastic

具体配置:

# cd config/
# vim elasticsearch.yml

配置解析:

集群名称(各节点相同):

cluster.name: es-log

节点名称:    

node.name: log-1 ##各节点保持唯一性。

数据和日志存放目录:        

path.data: /path/to/data
path.logs: /path/to/logs ##默认当前目录下,可以修改(注意权限)

广播配置:

discovery.zen.ping.unicast.hosts: ["192.168.63.242", "192.168.63.247"]
##集群个节点IP地址,也可以使用els、els.shuaiguoxia.com等名称,需要各节点能够解析

discovery.zen.minimum_master_nodes: 2
##为了避免脑裂,最少为 半数+1

集群master引导:

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

JVM配置

由于Elasticsearch是Java开发的,所以可以通过elasticsearch/config/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
不过其中还是有两项最重要的-Xmx1g与-Xms1gJVM的最大最小内存。如果太小会导致Elasticsearch刚刚启动就立刻停止。太大会拖慢系统本身。

-Xms1g
-Xmx1g
 # JVM最大、最小使用内存

其他相关系统设置:

Vim /etc/sysctl.conf
vm.max_map_count= 262144
sysctl –p

系统打开文件数配置:

# vim /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536

修改用户打开的线程数,因为es 的段要经常打开文件控制索引:

# vim /etc/security/limits.d/90-nproc.conf
*          soft    nproc     2048

切换到普通用户启动:

# su – elastic
$ ./bin/elasticsearch

#####要是提示,报一些没有启动的目录,直接创建即可,但是想写入日志和数据必须是普通用户有写入权限#####

后台运行ES

可以加入-p 命令 让es在后台运行, -p 参数 记录进程ID为一个文件

设置后台启动:
# ./bin/elasticsearch -p /tmp/elasticsearch-pid -d

启动之后:测试有如下显示表示已经安装成功。

# curl -i "http://192.168.3.120:9200"
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 523

{
  "name" : "node-1",
  "cluster_name" : "my-es",
  "cluster_uuid" : "QA0Kp9ORTG6tMcE7ewrw3g",
  "version" : {
    "number" : "7.7.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "81a1e9eda8e6183f5237786246f6dced26a10eaf",
    "build_date" : "2020-05-12T02:01:37.602180Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

集群启动设置:

集群需满足配置文件定义的最小节点数: discovery.zen.minimum_master_nodes: 2
一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,它们具有相同的cluster.name,它们协同工作,分享数据和负载。
当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。

我们查看一下集群当前的状态:

# curl http://192.168.3.120:9200/_cluster/health?pretty
{
  "cluster_name" : "my-es",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 1,
  "active_shards" : 2,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

主要看一下集群的几个状态:

green 所有主要分片和复制分片都可用
yellow 所有主要分片可用,但不是所有复制分片都可用
red 不是所有的主要分片都可用

我们已经启动了集群,我们可以现在创建一条索引

# curl -H "Content-Type: application/json" -XPOST ‘192.168.3.120:9200/text/name/1‘ -d ‘
{
 "name":"Laoluo"
}‘

创建一条test的索引,type为name,id=1

我们在192.168.3.121上面查看一下我们刚刚创建的数据看:

# curl -XGET ‘192.168.3.121:9200/text/name/1?pretty‘
{
  "_index" : "text",
  "_type" : "name",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 1,
  "_primary_term" : 5,
  "found" : true,
  "_source" : {
    "name" : "Laoluo"
  }
}

可以看到数据已经被复制到192.168.3.121上面了。

文章来自:https://blog.51cto.com/cstsncv/2499830
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3