Elasticsearch的进阶之路 - 第二章之Elasticsearch目录结构及核心配置文件介绍

栏目: 后端 · 发布时间: 6年前

内容简介:Elasticsearch的官方下载网址为https://www.elastic.co/cn/downloads/elasticsearch,可以看到有适合Windows、Linux和MacOS等不同操作系统的版本,如下图示:其中WINDOWS、LINUX和MACOS是Elasticsearch的压缩包,下载后解压缩到电脑上就可以使用,DEB包和RPM包是已经编译好适合于Linux环境的安装包,MSI是Windwos环境下的安装包,Docker是Docker容器环境的安装包。请根据自己的操作系统环境,下载适
    1. Elasticsearch集群环境搭建
      1. 下载

Elasticsearch的官方下载网址为https://www.elastic.co/cn/downloads/elasticsearch,可以看到有适合Windows、 Linux 和MacOS等不同操作系统的版本,如下图示:

Elasticsearch的进阶之路 - 第二章之Elasticsearch目录结构及核心配置文件介绍

其中WINDOWS、LINUX和MACOS是Elasticsearch的压缩包,下载后解压缩到电脑上就可以使用,DEB包和RPM包是已经编译好适合于Linux环境的安装包,MSI是Windwos环境下的安装包,Docker是 Docker 容器环境的安装包。请根据自己的操作系统环境,下载适合的文件,笔者电脑是Linux Ubuntu,下载的就是适合Linux的压缩包。

      1. 目录介绍

下载完成后将其解压缩,可以看到Elasticsearch如下的目录结构:

Elasticsearch的进阶之路 - 第二章之Elasticsearch目录结构及核心配置文件介绍

Eleasticsearch 目录介绍

bin

可执行文件的存放目录,包含关键命令如下:

elasticsearch :Elasticsearch的启动命令,Linux下加”-d”参数以服务的形式后台运行。

elasticsearch-certutil :用于生成与Elastic Stack一起使用的证书

elasticsearch-migrate :用于将基于文件的用户和角色,迁移到native realm

elasticsearch-node :该命令可以在当前节点关闭的时候,在该节点执行某些不安全的操作, 此命令可以用于调整当前节点在集群中的角色,并且可以在灾难发生后用于恢复某些数据。

elasticsearch-saml-metadata :该命令用于生成SAML 2.0服务提供者(SP)元数据文件。

elasticsearch-setup-passwords :用于给x-pack内置用户(如elastic、kibana、logstash_system、beats_system等)设置密码,此命令仅在初始配置Elasticsearch安全功能期间使用。

elasticsearch-shard :该命令用于在Lucene索引或translog的分片拷贝发生损坏、且无法自动恢复分片时,用于删除分片的损坏部分,然后恢复对未受影响的段中任何剩余数据的访问,使用该命令前必须停止Elasticsearch。

elasticsearch-syskeygen :该命令用于在elasticsearch配置目录中创建系统密钥文件,可以使用生成的系统密钥文件对敏感数据进行对称加密。

elasticsearch-users :该命令用于管理基于文件的用户身份验证,它可以添加和删除用户、分配用户角色以及管理密码。

详细的功能及使用,后续的章节会谈到。

config

配置文件的存放目录,包括elasticsearch.yml和jvm.options等关键配置文件。

data

默认的数据存放目录(注:该目录默认不存在,当Elasticsearch通过默认的配置参数启后,该目录才会被创建)。

jdk

存放的是适合当前Elasticsearch版本的jdk,避免用户使用不兼容的JDK版本或者单独下载JDK,真正做到解压缩后就可以使用,不过也增加了下载包体的大小,达到了325M,该目录在7.x中才引入。

lib

引用的相关库的存放目录,elasticsearch.jar本身也放于该目录。

logs

默认的日志存放目录。

modules

功能模块的存放目录,如aggs、reindex、geoip、xpack、eval,详细如下所示:

详细的功能及使用,后续的章节会谈到。

plugins

插件是Elasticsearch中非常重要的模块,让Elasticsearch的功能可以灵活定制,更方便使用, 每个插件都将包含在一个子目录中,默认不包含任何插件,用户自己的情况进行下载,插件的下载方式,通过命令:

bin/elasticsearch-plugin install [plugin_name]

Elasticsearch分类以下几大类:

API扩展插件 :API扩展插件通过添加新的API或功能,扩展Elasticsearch的搜索或映射等功能;

告警插件 :告警插件提供了索引监视功能,并在警报阈值时触发警报;

分析插件 :分析插件提供新的字段分析器(Analyzers)、分词器(tokenizer)、分词过滤器(token filters)或字符过滤器来扩展Elasticsearch的功能;

发现插件 :插件提供了对Amazon EC2、Microsoft Azure Classic、GCE(Google Compute Engine)和Kubernate的搭建了搜索服务的节点的发现功能;

数据预处理插件:提供从附件(如PPT、XLS和PDT)中抽取数据、GeoIP信息处理、用户客户端信息提取等;

管理功能插件 :插件提供了对Elasticsearch执行管理的功能或者交互功能的UI,如X-PACK;

映射插件 :映射插件允许向Elasticsearch增加新的字段数据类型,如mapper-size插件提供_size元字段,当启用该字段时,索引原始_source字段的字节大小;

安全插件 :为Elasticsearch增加了一层安全层,可以轻松地为其弹性堆栈添加企业级安全性,让Elasticsearch更加安全;

数据快照或数据还原插件 :用于支持将数据存放到云存储或者分布式文件系统中,或者从云存储或者分布式文件系统进行数据恢复,支持包持Amazon S3、Microsoft Azure、HDFS、Google云存储以及Openstack等

存储插件:提供了除基于Lucene默认存储的额外存储方式的更多选择;

详细的功能及使用,后续的章节会谈到。

      1. 核心配置文件介绍

Elasticsearch核心配置文件

config/elasticsearch.yml

该文件是Elasticsearch的核心配置文件,里面涉及到集群名称、节点名称、日志存放路径、数据存放路径、所使用的IP地址和端口号、master节点、是否允许跨域访问等。

config/jvm.options

配置Elasticsearch使用的JVM参数,如堆的大小、单个线程的大小、所使用的垃圾收集的方式、是否开启JMX、GC日志的收集等。

        1. elasticsearch.yml

Elasticsearch.yml的默认配置

# ======================== Elasticsearch Configuration =========================

# 注:Elasticsearch使用很多合理的默认配置,该配置文件只列出了集群及当前节点配置需要调整的参数

#

# 更多的配置选项参看:

# https://www.elastic.co/guide/en/elasticsearch/reference/index.html

#

# ------------------------ Cluster(集群) -------------------------

# 集群名称配置,默认是elasticsearch

# cluster.name: my-application

#

# -------------------------- Node(节点) --------------------------

# 配置节点名称,默认为随机名称

# node.name: node-1

#

# 当前节点的自定属性:

# node.rack: r1

#

# ------------------------- Paths(路径) --------------------------

# 指定es的数据存储目录,默认为$es_home/data目录

# path.data: /path/to/data

#

# 指定es的日志存储目录,默认为$es_home/logs目录

# path.logs: /path/to/logs

#

# ------------------------- Memory(内存) -------------------------

#

# 锁定物理内存地址,防止es的内存被交换出去,避免使用swap交换分区,因为当系统进行内存交换的时候,

# es的性能表现会很差。当network.host配置为非127.0.0.1时,需要在Linux的/etc/security/limits.conf增

# 加允许应用对内存锁定的配置:

# * soft memlock unlimited

# * hard memlock unlimited

# bootstrap.memory_lock: true

#

# 确保ES_HEAP_SIZE参数设置为系统可用内存的一半左右,且执行ES进程的用户具有使用这些内存的权限

#

# ------------------------ Network(网络) -------------------------

#

# 为es设置绑定的ip,默认是127.0.0.1,设置为0.0.0.0允许绑定到该服务器的所有IP地址都可以访问

# network.host: 192.168.0.1

#

# 为es设置监听端口,默认是9200,transport.tcp.port的值为http.port加上100

# http.port: 9200

#

# 更多关于网络的配置,参看:

#

#

# ------------------------ Discovery(发现) ------------------------

#

# 初使服务器列表,当此节点时启动时会执行发现动作,如需要配置端口,则需要配置transport.tcp.port的值

# 默认列表为 ["127.0.0.1", "[::1]"]

#

#discovery.seed_hosts: ["host1", "host2"]

#

# 用于在集群启动时,选择master节点的节点,该值在network.host的值不为127.0.0.1时,且只有一个节点时,其值必须要填写:

#

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

#

# ------------------------ Gateway(网关) -------------------------

#

# 设置集群中需要指定个节点启动后,才进行数据恢复处理,其默认值是1

# gateway.recover_after_nodes: 3

#

# 更多信息:

#

#

# ------------------------ Various -------------------------

#

# 设置是否允许删除多个索引库,默认true表示必须需要显式指定索引库名称

# action.destructive_requires_name: true

        1. jvm.options

jvm.options的默认配置

## JVM配置

################################################################

## 重要: JVM堆大小

################################################################

##

## 为了使Elasticsearch避免频繁的发生Full GC,最大堆和最小堆的值,,

## 要设置为一样,如下设置为4G。Xms表示初使化堆的大小,Xms表示最大

## 的大小

## -Xms4g

## -Xmx4g

## 更多参看:

## https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html

##

################################################################

# 堆的默认值为1G

-Xms1g

-Xmx1g

################################################################

## 专业人员设置

################################################################

##

## 以下是JVM垃圾回收相关的设置,建意不懂JVM垃圾回收的人员不要随意

## 修改配置

##

################################################################

## 垃圾回收配置

-XX:+UseConcMarkSweepGC

-XX:CMSInitiatingOccupancyFraction=75

-XX:+UseCMSInitiatingOccupancyOnly

## 垃圾回收G1GC策略的配置,仅在JDK10及以上的版本支持

# 使用G1GC策略,将以下行的注释去掉

# 10-:-XX:-UseConcMarkSweepGC

# 10-:-XX:-UseCMSInitiatingOccupancyOnly

# 10-:-XX:+UseG1GC

# 10-:-XX:InitiatingHeapOccupancyPercent=75

# 显式设置每个线程堆栈的大小

-Xss1m

## heap dumps

# 当 Java 堆分配失败时,在当前工作目录中创建JVM的堆转储

-XX:+HeapDumpOnOutOfMemoryError

# 为堆转储指定备用路径,并确保该目录是存在的并且有足够的空间

-XX:HeapDumpPath=data

# 为JVM致命错误日志指定备用路径

-XX:ErrorFile=logs/hs_err_pid%p.log

......

在该配置文件中,主要的关注配置为JVM堆和单个线程堆栈大小的配置

# 堆的默认值为1G

-Xms1g

-Xmx1g

# 显式设置每个线程堆栈的大小

-Xss1m


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Art of Computer Programming, Volumes 1-3 Boxed Set

The Art of Computer Programming, Volumes 1-3 Boxed Set

Donald E. Knuth / Addison-Wesley Professional / 1998-10-15 / USD 199.99

This multivolume work is widely recognized as the definitive description of classical computer science. The first three volumes have for decades been an invaluable resource in programming theory and p......一起来看看 《The Art of Computer Programming, Volumes 1-3 Boxed Set》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具