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

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

内容简介: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


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

查看所有标签

猜你喜欢:

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

JavaScript实战手册

JavaScript实战手册

David Sawyer McFarland / 李强 / 机械工业出版社 / 2009 / 89.00元

在《JavaScript实战手册》中,畅销书作者David McFarland教你如何以高级的方式使用JavaScript,即便你只有很少或者没有编程经验。一旦掌握了这种语言的结构和术语,你将学习如何使用高级的JavaScript工具来快速为站点添加有用的交互,而不是一切从头开始编写脚本。和其他的Missing Manuals图书不同,《JavaScript实战手册》清楚、精炼,手把手地讲解。 ......一起来看看 《JavaScript实战手册》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具