1、Elasticsearch简介
Elasticsearch是一个分布式、RESTful风格的搜索及数据分析引擎;
其适用于几乎所有的数据类型,如数字、文本、地理位置、结构化数据及非结构化数据等;
Elasticsearch是基于Lucene的实现,同类型产品为Solr;
2、Elasticsearch安装包获取
官网下载链接:https://www.elastic.co/cn/downloads/elasticsearch#ga-release,
默认会下载最新的版本,当前最新版本为7.16.2,也可通过页面链接找到历史版本信息;
此处以7.16.2版本演示:
//解压对应安装包 $ tar-xzvf elasticsearch-7.16.2-xxx-x86_64.tar.gz //进入解压目录 $ cd elasticsearch-7.16.2 //启动服务 $ ./bin/elasticsearch
Es安装包目录:
目录 |
说明 |
bin |
二进制脚本文件,elasticsearch用于启动节点,elasticsearch-plugins用于安装插件 |
lib |
包含Elasticsearch启动依赖的核心jar包 |
jdk.app |
提供的jdk,不同Elasticsearch依赖的jdk版本不同,索性在安装包中就提供了对应版本的jdk |
plugins |
插件目录,Es支持插件机制并允许用户进行扩展或安装第三方插件 |
modules |
Es不同功能模块目录,例如reindex、kibana等 |
config |
Es的配置项目录 |
data |
Es节点存储信息目录 |
logs |
Es节点运行日志目录 |
3、Elasticsearch配置
3.1、配置项介绍
配置文件说明:
- elasticsearch.yml 配置Es
- jvm.options 配置运行Es的jvm
- log4j2.properties 配置Es的日志
elasticsearch.yml文件中默认配置项说明:
配置项 |
说明 |
归属 |
示例 |
首位度 |
cluster.name |
Es集群名称 |
Cluster |
wy |
p0 |
node.name |
当前节点名称 |
Node |
node-1 |
p1 |
node.attr.rack |
节点属性,例如区域等 |
r1 |
p2 |
|
path.data |
节点数据目录 |
Path |
/path/to/data |
p0 |
path.logs |
节点日志目录 |
/path/to/logs |
p0 |
|
bootstrap.memory_lock |
启动时是否启用内存锁定,建议Es服务分配内存不超过系统内存的一半 |
Memory |
true |
p1 |
network.host |
网络地址 |
Network |
192.168.0.1 |
p1 |
http.port |
服务端口 |
9200 |
p1 |
|
discovery.seed_hosts |
当前节点启动后优先发现的主机 |
Discovery |
["host1", "host2"] |
p0 |
cluster.initial_master_nodes |
集群启动时有资格选master的主机集合 |
["node-1", "node-2"] |
p0 |
|
action.destructive_requires_name |
删除索引时需要指定索引全名,即不支持模糊删除 |
Various |
true |
p0 |
3.2、单机配置
单机启动无需额外配置即可启动,一般作为个人研究使用,其中cluster.name默认为elasticsearch,节点名默认为机器名,默认是不支持网络网络的,若需要则须指定network.host;
3.3、集群配置
集群配置则需要多一些配置,一般生产环境Es是以集群方式运行的;
- 建议显式指定cluster.name以区分不同集群,节点的加入及剔除都依赖于集群名;
- 需要显式配置network.host,集群环境必定要与其它节点进行通信,否则可能节点无法加入集群;
- 建议显式指定cluster.initial_master_nodes配置,其一是集群在选主时效率更高,其二是合理的节点配置能够防止脑裂;
3.4、配置项的启动顺序
- 服务启动时启动项中指定的配置;
- 通过api配置的临时配置(服务启动后重置);
- 通过api配置的持久化配置(服务重启后不重启);
- 通过elasticsearch.yml加载的配置;
- elasticsearch默认的配置;
更多的配置项可参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
4、服务启动及停止
4.1、服务启动
启动命令
//-d表示以守护进程启动,-p pidfile表示记录进程pid到pidfile文件当中; $ ./bin/elasticsearch -d-p pidfile
查看是否启动成功
//请求信息 $ curl localhost:9200 //响应信息 { "name" : "wy", "cluster_name" : "elasticsearch", "cluster_uuid" : "Z__P9jt0QUmLHGlKTYMVPA", "version" : { "number" : "7.16.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "2b937c44140b6559905130a8650c64dbd0879cfb", "build_date" : "2021-12-18T19:42:46.604893745Z", "build_snapshot" : false, "lucene_version" : "8.10.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search"}
更多启动参数
$ ./bin/elasticsearch -helpOption Description ------------------E <KeyValuePair> Configure a setting -V, --version Prints Elasticsearch version information and exits -d, --daemonize Starts Elasticsearch in the background -h, --help Show help -p, --pidfile <Path> Creates a pid file in the specified path on start-q, --quiet Turns off standard output/error streams logging in console -s, --silent Show minimal output -v, --verbose Show verbose output
4.2、服务停止
//1、通过pkill结束进程 $ pkill-F pid //2、可通过是用jps命令或ps命令查看es进程pid,再使用kill命令结束进程 $ ps-ef | grep Elasticsearch $ jps-mlv$ kill-SIGTERM pid