Elasticsearch 的安装和简单配置

安装

下载地址

https://www.elastic.co/cn/downloads/elasti...

安装

下载好安装包之后,解压缩文件:

tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz

文件目录结构

目录 配置文件 描述
bin 脚本文件,包括启动elasticsearch,安装插件等
config elasticsearch.yml 集群配置文件,user ,role based相关配置
JDK JAVA运行环境
data path.data 数据文件
lib Java类库
logs path.log 日志文件
modules 包含所有ES模块
plugins 包含已安装的插件

启动ES

报错提示

future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/java/jdk1.8/jdk1.8.0_171/jre] does not meet this requirement
[2019-11-09T00:47:38,667][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [izbp12hdvl4ksivp63qmfrz] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.4.2.jar:7.4.2]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.4.2.jar:7.4.2]
... ...

以上信息提示,有2点:

  1. 提示本地为jdk8,而当前版本的ES需要jdk11版本,新版的ES是内置的java环境,所以此提示可以忽略

  2. elasticsearch不能以root用户启动的

解决方法

添加用户组和用户

groupadd elsearch
useradd elsearch -g elsearch

修改es文件夹所属用户和用户组

chown -R elsearch:elsearch  /usr/local/webserver/elasticsearch-7.4.2

切换用户

su elsearch

启动es

bin/elasticsearch

验证

请求自己的IP地址:9200,就会出现下面的结果:

[root@iZuf6b8f6yfdzu95aqolkcZ ~]# curl 127.0.0.1:9200
{
  "name" : "iZuf6b8f6yfdzu95aqolkcZ",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "bD_B1QMnRDqXgbNCG-wKxw",
  "version" : {
    "number" : "7.4.2",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date" : "2019-10-28T20:40:44.881551Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

即表示启动成功。

外网访问

如果要使用外网访问,需要配置以下内容

修改配置

vim config/elasticsearch.yml

修改以下配置

network.host: 0.0.0.0
http.port: 9200
network.publish_host: 要发布的IP地址

阿里云开放端口

安全组配置9200端口即可

防火墙问题

如果还不能访问则需要配置防火墙端口

firewall-cmd --zone=public --add-port=9200/tcp

防火墙相关命令

查看防火墙已经开放的端口
firewall-cmd --list-ports 

启动 
systemctl start firewalld  

查看状态
systemctl status firewalld   

停止
systemctl disable firewalld 

禁用
systemctl stop firewalld

重新启动

报错

做了以上修改之后,重新启动ES,发现启动报错了,信息如何:

ERROR: [2] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[2]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

解决方案

  1. 切换root用户,修改/etc/sysctl.conf配置

    vim /etc/sysctl.conf 
    
    # 添加配置
    vm.max_map_count = 655360
    
    # 执行以下命令
    sysctl -p
  2. 切换root用户

    vim /etc/security/limits.conf
    # 添加
    * soft nofile 65535
    * hard nofile 65535
    
    vim /etc/security/limits.d/20-nproc.conf
    #修改
    *          soft    nproc     4096
    
    vim config/elasticsearch.yml
    
    # 取消注释 保留一个节点
    cluster.initial_master_nodes: ["node-1"]
    
  3. 重启es,成功,即大功告成。现在即可以通过外网成功访问。

插件安装

查看插件

bin/elasticsearch-plugin list

安装插件

bin/elasticsearch-plugin install 插件名

如安装 analysis-icu

[root@iZuf6b8f6yfdzu95aqolkcZ elasticsearch-7.4.2]# bin/elasticsearch-plugin install analysis-icu
-> Downloading analysis-icu from elastic
[=================================================] 100%   
-> Installed analysis-icu
[root@iZuf6b8f6yfdzu95aqolkcZ elasticsearch-7.4.2]# bin/elasticsearch-plugin list
analysis-icu

页面查看安装的插件

http://外网IP:9200/_cat/plugins

原文地址:https://tsmliyun.github.io/elasticsearch/Elasticsearch的安装和简单配置/

本作品采用《CC 协议》,转载必须注明作者和本文链接
不积跬步,无以至千里;不积小流,无以成江海
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!