首页编程PHPelasticsearch文章详细

Centos安装ElasticSearch

原创 2022-09-12 14:11:37 528

ElasticSearch 概述

ElasticSearch是一个高可扩展的开源的全文搜索分析引擎。 
它允许你快速的存储、搜索和分析大量数据。ElasticSearch通常作为后端程序,为需要复杂查询的应用提供服务。
Elasticsearch是一个基于Lucene的开源分布式搜索引擎,具有分布式多用户能力。Elasticsearch是用java开发,提供Restful接口,能够达到实时搜索、高性能计算;同时Elasticsearch的横向扩展能力非常强,不需要重启服务,基本上达到了零配置。

ElasticSearch 安装

安装前准备

安装JDK及以上版本
下载ElasticSearch安装包,点击 获取elasticsearch-6.2.4.tar.gz安装包

Centos 7 安装openjdk8

一、使用yum命令搜索支持jdk版本

yum search java|grep jdk

二、使用yum安装jdk8

yum install -y java-1.8.0-openjdk

三、检查是否成功

java -version

下载ElasticSearch安装包

最新版本下载地址 https://www.elastic.co/cn/downloads/elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

安装ElasticSearch

解压安装包,然后重命名为 elasticsearch

tar -zxvf elasticsearch-6.2.4.tar.gz
mv elasticsearch-6.2.4 elasticsearch

移动项目到/usr/share目录下

mv elasticsearch /usr/share

配置ElasticSearch

/usr/share/elasticsearch/config/elasticsearch.yml
配置信息

network.host: 127.0.0.1
http.port: 9200

/usr/share/elasticsearch/config/jvm.options
配置信息

-Xms500m
-Xmx500m

修改用户可用的最大线程数配置

##切换到root用户,编辑limits.conf 添加类似如下内容
su root
##编辑文件
vim /etc/security/limits.conf
编辑为如下内容
*        soft    nofile           65536
*        hard    nofile           131072
*        soft    nproc            2048
*        hard    nproc            4096

编辑

vi /etc/sysctl.conf 

添加

vm.max_map_count=655360

关闭并保存配置文件方法,进入编辑界面后点击键盘INS键进行编辑,完成编辑后退出编辑界面仍按INS按键,退出界面并保存:wq + enter.

编辑完成后执行命令,使用修改生效:

sysctl -p

启动

进入elasticsearch/bin下运行elasticsearch脚本启动

cd /usr/share/elasticsearch/bin
./elasticsearch

/usr/share/elasticsearch/bin/elasticsearch

如果是用root启动,需要继续下面步骤

如果是用root账号启动,会报以下错误

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
        Refer to the log for complete error details.

这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,
建议创建一个单独的用户用来运行ElasticSearch
创建elsearch用户组及elsearch用户

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch

cd /usr/share
chown -R elsearch:elsearch  elasticsearch

切换到elsearch用户再启动

su elsearch

启动

/usr/share/elasticsearch/bin/elasticsearch

启动后打印信息如下

[elsearch@izm5e42ct1z root]$ /usr/share/elasticsearch/bin/elasticsearch
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
[2021-01-09T22:26:54,046][INFO ][o.e.n.Node               ] [] initializing ...
[2021-01-09T22:26:54,180][INFO ][o.e.e.NodeEnvironment    ] [0Pyum2i] using [1] data paths, mounts [[/ (/dev/vda1)]], net usable_space [24gb], net total_space [39.2gb], types [ext4]
[2021-01-09T22:26:54,181][INFO ][o.e.e.NodeEnvironment    ] [0Pyum2i] heap size [491.6mb], compressed ordinary object pointers [true]
[2021-01-09T22:26:54,182][INFO ][o.e.n.Node               ] node name [0Pyum2i] derived from node ID [0Pyum2irQVuWrA_3PSfz3w]; set [node.name] to override
[2021-01-09T22:26:54,183][INFO ][o.e.n.Node               ] version[6.2.4], pid[29088], build[ccec39f/2018-04-12T20:37:28.497551Z], OS[Linux/3.10.0-1160.11.1.el7.x86_64/amd64], JVM[Red Hat, Inc./OpenJDK 64-Bit Server VM/1.8.0_275/25.275-b01]
[2021-01-09T22:26:54,183][INFO ][o.e.n.Node               ] JVM arguments [-Xms500m, -Xmx500m, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/tmp/elasticsearch.dpJIaCDV, -XX:+HeapDumpOnOutOfMemoryError, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Des.path.home=/usr/share/elasticsearch, -Des.path.conf=/usr/share/elasticsearch/config]
[2021-01-09T22:26:55,629][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [aggs-matrix-stats]
[2021-01-09T22:26:55,629][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [analysis-common]
[2021-01-09T22:26:55,629][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [ingest-common]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [lang-expression]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [lang-mustache]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [lang-painless]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [mapper-extras]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [parent-join]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [percolator]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [rank-eval]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [reindex]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [repository-url]
[2021-01-09T22:26:55,630][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [transport-netty4]
[2021-01-09T22:26:55,631][INFO ][o.e.p.PluginsService     ] [0Pyum2i] loaded module [tribe]
[2021-01-09T22:26:55,631][INFO ][o.e.p.PluginsService     ] [0Pyum2i] no plugins loaded
[2021-01-09T22:27:00,182][INFO ][o.e.d.DiscoveryModule    ] [0Pyum2i] using discovery type [zen]
[2021-01-09T22:27:02,130][INFO ][o.e.n.Node               ] initialized
[2021-01-09T22:27:02,134][INFO ][o.e.n.Node               ] [0Pyum2i] starting ...
[2021-01-09T22:27:02,466][INFO ][o.e.t.TransportService   ] [0Pyum2i] publish_address {127.0.0.1:9300}, bound_addresses {127.0.0.1:9300}
[2021-01-09T22:27:05,623][INFO ][o.e.c.s.MasterService    ] [0Pyum2i] zen-disco-elected-as-master ([0] nodes joined), reason: new_master {0Pyum2i}{0Pyum2irQVuWrA_3PSfz3w}{x0ewcArISs6jcec7yVDuYw}{127.0.0.1}{127.0.0.1:9300}
[2021-01-09T22:27:05,631][INFO ][o.e.c.s.ClusterApplierService] [0Pyum2i] new_master {0Pyum2i}{0Pyum2irQVuWrA_3PSfz3w}{x0ewcArISs6jcec7yVDuYw}{127.0.0.1}{127.0.0.1:9300}, reason: apply cluster state (from master [master {0Pyum2i}{0Pyum2irQVuWrA_3PSfz3w}{x0ewcArISs6jcec7yVDuYw}{127.0.0.1}{127.0.0.1:9300} committed version [1] source [zen-disco-elected-as-master ([0] nodes joined)]])
[2021-01-09T22:27:05,753][INFO ][o.e.h.n.Netty4HttpServerTransport] [0Pyum2i] publish_address {127.0.0.1:9200}, bound_addresses {127.0.0.1:9200}
[2021-01-09T22:27:05,753][INFO ][o.e.n.Node               ] [0Pyum2i] started
[2021-01-09T22:27:05,761][INFO ][o.e.g.GatewayService     ] [0Pyum2i] recovered [0] indices into cluster_state

ElasticSearch后端启动命令

./elasticsearch -d

或者

/usr/share/elasticsearch/bin/elasticsearch -d

elasticsearch 停止快捷键 ctrl + c

检查elasticsearch是否在运行

$ curl http://127.0.0.1:9200/

启动后打印信息如下

[root@izm5e42ct1z ~]# curl 'http://localhost:9200/?pretty'
{
  "name" : "0Pyum2i",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "zAontwchQP2Kj84llanpSw",
  "version" : {
    "number" : "6.2.4",
    "build_hash" : "ccec39f",
    "build_date" : "2018-04-12T20:37:28.497551Z",
    "build_snapshot" : false,
    "lucene_version" : "7.2.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

推荐