在 CentOS 7 下安装 Elasticsearch 7.3

关键字

CentOS, Elasticsearch, CentOS 7, Elasticsearch 7.3

背景概述

全文检索是普遍的需求,从最初 MySQL 支持中文全文索引后,十万级数据量 LIKE 查询方案到 Apache Lucene,到 Solr,然后基于 Lucene 的 Elasticsearch 给世界带来了更好的解决方案,它是目前全文搜索引擎首选。它可以快速储存、搜索和分析海量数据。Wikipedia、Stack Overflow、Github 等公司都用它支撑海量数据业务。

本文旨在指导你在 CentOS 7 下安装 Elasticsearch 7.3。本安装过程应已经过笔者反复测试,以确保成功。

如果按本文安装时遇到任何问题,请留言或通过【桃花岛】官方联系我们。

软件依赖

  • CentOS 7
  • Elasticsearch 7.3

具体步骤

配置软件源

如果阅读过《在 CentOS 7 下安装 MySQL 8 及配置》,会了解到配置软件仓库的两种方法,此文采用简单方法直接编辑 .repo 文件:

vim /etc/yum.repos.d/elasticsearch.repo

将下列内容粘贴后保存

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yum 安装:

yum -y install elasticsearch

激活并启动 ElasticSearch 服务

systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch

初步验证

运行

[root@carbon ~]# curl localhost:9200

返回如下

{
  "name" : "carbon",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "RmfeiseHQ8C5S9eF7gG6aQ",
  "version" : {
    "number" : "7.3.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "de777fa",
    "build_date" : "2019-07-24T18:30:11.767338Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

即表示 Elasticsearch 7.3 已安装。

配置

Elasticsearch 几个重要的配置文件是:

  • elasticsearch.yml:配置 Elasticsearch
  • jvm.options: 配置 Elasticsearch Java 虚拟机设置
  • log4j2.properties: 配置 Elasticsearch 日志

几个重要的配置项:

  • JAVA_HOME:可设置使用一个特定的 Java 版本
  • MAX_OPEN_FILES:最大打开文件数量,默认为 65535
  • MAX_LOCKED_MEMORY:最大锁定内存,如果elasticsearch.yml 中设置 bootstrap.memory_lock ,这个值要设为 unlimited
  • MAX_MAP_COUNT:一个进程可使用的最大内存区域,默认为 262144。如果你在索引存储类型上使用 mmapfs, 则要设大一些。更多请参阅 Linux 核心文档。
  • ES_PATH_CONF:配置文件路径,包含 elasticsearch.yml, jvm.options, log4j2.properties files,默认为 /etc/elasticsearch
  • ES_JAVA_OPTS:其他 Java 虚拟机属性
  • RESTART_ON_UPGRADE:配置包升级后是否重启动,默认为否,这意味着在安装包后,你需要手动重启 Elasticsearch 实例。这样做的是了确保,升级后不影响集群,缩短集群响应时长。

相关目录的说明:

  • /usr/share/elasticsearch 安装路径 ES_HOME
  • /usr/share/elasticsearch/bin 可执行文件目录
  • /etc/elasticsearch 配置文件目录 ES_PATH_CONF
  • /etc/sysconfig/elasticsearch 环境变量,比如堆大小,文件描述
  • /var/lib/elasticsearch 数据目录
  • /var/log/elasticsearch 日志目录
  • /usr/share/elasticsearch/plugins 插件目录,每个插件是一个子目录
  • path.repo 共享文件仓库目录,默认未配置

接着,修改配置文件

vim /etc/elasticsearch/elasticsearch.yml

Elasticsearch 此时只是监听 127.0.0.1:9200 端口,我们可具体授权可访问 IP 。修改 bindIp: 127.0.0.1 为 192.168.0.10,并在 #secruity 行下加入授权启用的配置,保存,退出

network.host: 192.168.0.10

http.port: 9200

cluster.initial_master_nodes: ["node-1"]

重启 elasticsearch

systemctl restart elasticsearch

此时,已经可以用客户端远程连接了。

安装验证

使用 curl 访问 192.168.0.10:9200 端口

[root@localhost ~]# curl 192.168.0.10:9200
{
  "name" : "carbon",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "RmfeiseHQ8C5S9eF7gG6aQ",
  "version" : {
    "number" : "7.3.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "de777fa",
    "build_date" : "2019-07-24T18:30:11.767338Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[root@carbon ~]# 

问题汇总

问题:设置了授权验证,建立了用户和密码,但客户端无法连接?

解决:停止防火墙

systemctl stop firewalld
systemctl stop iptables

相关文章

暂无

《在 CentOS 7 下安装 Elasticsearch 7.3》有1个想法

  1. Pingback: 用 Elasticsearch 解决 MySQL/MariaDB 的 LIKE %Keyword% 中英文混合查询问题 – IT桃花岛

发表评论

电子邮件地址不会被公开。 必填项已用*标注