Elasticsearch集群部署及使用
hosts解析
vim /etc/hosts
10.0.0.10 es1
10.0.0.11 es2
10.0.0.12 es3
部署jdk
mkdir /usr/java
tar xf jdk-8u221-linux-x64.tar.gz -C /usr/java/
ln -s /usr/java/jdk1.8.0_221 /usr/java/jdk
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
部署elasticsearch
安装
tar xf elasticsearch-6.8.3.tar.gz -C /opt/
ln -s /opt/elasticsearch-6.8.3 /opt/elasticsearch
创建用户并授权
useradd -s /bin/bash -M es
chown -R es.es /opt/elasticsearch-6.8.3/
配置文件
vim config/elasticsearch.yml
es1
# 修改
node.name: es1
network.host: 10.0.0.10
es2
node.name: es2
network.host: 10.0.0.11
附录:
# 修改以下内容
cluster.name: es.od.com
node.name: hdss7-12.host.com
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 10.0.0.10
http.port: 9200
jvm内存设置
vi config/jvm.options
修改以下
-Xms512m
-Xmx512m
文件描述符
cat /etc/security/limits.d/es.conf
es hard nofile 65536
es soft fsize unlimited
es hard memlock unlimited
es soft memlock unlimited
调整内核参数
sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
启动
su -c "/opt/elasticsearch/bin/elasticsearch -p /tmp/elasticsearch-pid -d" es
集群配置
es1
egrep -v “#|^$” config/elasticsearch.yml
cluster.name: elasticsearch
node.name: es1
network.host: 10.0.0.10
http.port: 9200
node.master: true
node.data: true
node.ingest: false
network.bind_host: 0.0.0.0
network.publish_host: 10.0.0.10
bootstrap.memory_lock: true
transport.tcp.port: 9300
transport.tcp.compress: true
discovery.zen.ping.unicast.hosts: ["10.0.0.10","10.0.0.11","10.0.0.12"]
discovery.zen.minimum_master_nodes: 1
es2
egrep -v “#|^$” config/elasticsearch.yml
cluster.name: elasticsearch
node.name: es2
network.host: 10.0.0.11
http.port: 9200
node.ingest: false
node.master: false
node.data: true
transport.tcp.port: 9300
network.bind_host: 0.0.0.0
network.publish_host: 10.0.0.11
bootstrap.memory_lock: true
transport.tcp.compress: true
discovery.zen.ping.unicast.hosts: ["10.0.0.10","10.0.0.11","10.0.0.12"]
discovery.zen.minimum_master_nodes: 1
es3
egrep -v “#|^$” config/elasticsearch.yml
cluster.name: elasticsearch
node.name: es3
network.host: 10.0.0.12
http.port: 9200
node.ingest: false
node.master: false
node.data: true
transport.tcp.port: 9300
network.bind_host: 0.0.0.0
network.publish_host: 10.0.0.12
bootstrap.memory_lock: true
transport.tcp.compress: true
discovery.zen.ping.unicast.hosts: ["10.0.0.10","10.0.0.11","10.0.0.12"]
discovery.zen.minimum_master_nodes: 1
检查集群状态
curl -X GET http://localhost:9200/_cat/nodes10.0.0.12 21 97 0 0.00 0.01 0.05 d - es3
10.0.0.11 21 97 0 0.06 0.04 0.05 d - es2
10.0.0.10 19 88 0 0.00 0.03 0.05 md * es1curl -X GET http://192.168.51.220:9200/_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.51.223 39 97 1 0.03 0.04 0.05 dilmrt - es03
192.168.51.220 66 97 1 0.09 0.07 0.08 dilmrt - es01
192.168.51.221 40 52 0 0.00 0.01 0.05 dilmrt * es02
说明
master:带* 表明该节点是主节点,带-表明该节点是从节点
倒排索引
- 倒排索引(inverted index),也常被称为反向索引、植入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构
常规的索引建立方式
文档 —> 关键词的映射过程(正向索引)
倒排反向建立索引
关键词 —> 文档的映射 把正向索引的结果重新构造成倒排索引
单词集合
文档集合
根据单词集合和文档集合,得到一张表
插件安装
bin/elasticsearch-plugin install analysis-icu
Elasticsearch API CURD操作
创建索引
创建索引library
curl -H "Content-Type: application/json" -X PUT 'http://10.0.0.10:9200/library/' -d '{"settings":{"index":{"number_of_shards":3,"number_of_replicas":1}}
}'
查看索引
curl -X GET 'http://10.0.0.10:9200/library/_settings'curl -X GET 'http://10.0.0.10:9200/library,library2/_settings'curl -X GET 'http://10.0.0.10:9200/_all/_settings'curl -k -u xxx:xxx -X GET 'http://localhost:9200/_all/_settings'curl -k -u xxx:xxx -X GET 'http://localhost:9200/messages-2020.09.12/_settings'curl -s -XGET http://192.168.51.45:9200/_cat/indices |awk '{print $3}'
创建文档
/索引/Type/文档ID
curl -H "Content-Type: application/json" -X PUT 'http://10.0.0.10:9200/library/books/1' -d '{"title": "Elasticsearch: The Definitive Guide","name":{"first":"Zachary","last":"Tong"},"publish_date":"2020-02-06","price":"49.99"
}'
curl -H "Content-Type: application/json" -X PUT 'http://10.0.0.10:9200/library/books/2' -d '{"title": "Elasticsearch: The Definitive Guide007","name":{"first":"wu","last":"xing"},"publish_date":"2020-02-06","price":"60.99"
}'
创建文档不指定ID
curl -H "Content-Type: application/json" -X POST 'http://10.0.0.10:9200/library/books/' -d '{"title": "Elasticsearch: The Definitive Guide007","name":{"first":"xia","last":"zhi"},"publish_date":"2017-04-18","price":"100.99"
}'
查看文档
通过ID查看文档
curl -X GET 'http://10.0.0.10:9200/library/books/1'
通过_source获取指定的字段
curl -X GET 'http://10.0.0.10:9200/library/books/1?_source=title'curl -X GET 'http://10.0.0.10:9200/library/books/1?_source=title,price'curl -X GET 'http://10.0.0.10:9200/library/books/1?_source'
更新文档
通过ID更新
curl -H "Content-Type: application/json" -X PUT 'http://10.0.0.10:9200/library/books/2' -d '{"title": "Elasticsearch: The Definitive Guide007","name":{"first":"dong","last":"zhi"},"publish_date":"2017-04-18","price":"89.99"
}'
通过_update API方式单独更新对应的字段
curl -H "Content-Type: application/json" -X POST 'http://10.0.0.10:9200/library/books/1/_update' -d '{"doc":{"price":10}
}'curl -H "Content-Type: application/json" -X POST 'http://10.0.0.10:9200/library/books/1/_update' -d '{"doc":{"title":"fly"}
}'
删除文档
curl -X DELETE http://10.0.0.10:9200/library/books/1
删除Type
curl -X DELETE http://10.0.0.10:9200/library/books
删除索引
curl -X DELETE http://10.0.0.10:9200/librarycurl -k -u xxx:xxx -X DELETE http://localhost:9200/messages-2020.09.12curl -X DELETE http://192.168.51.45:9200/192.168.51.180.181workflow-design-2022-08
elasticsearch内置字段及类型
内置字段
_uid, _id, _type, _source, _all, _analyzer, _boost, _parent, _routing, _index, _size, _timestamp, _ttl
字段类型
String, Integer/long, Float/double, Boolean, Null, Date
批量操作
创建两个索引
curl -H "Content-Type: application/json" -X PUT 'http://10.0.0.10:9200/bank/' -d '{"settings":{"index":{"number_of_shards":3,"number_of_replicas":1}}
}'curl -H "Content-Type: application/json" -X PUT 'http://10.0.0.10:9200/shakespeare/' -d '{"settings":{"index":{"number_of_shards":3,"number_of_replicas":1}}
}'
Elasticsearch集群部署及使用相关推荐
- CentOS7下Elasticsearch集群部署记录
Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也 ...
- Elasticsearch集群部署1.0
此文档基于1.0版本. Elasticsearch集群部署 配置文件 Elasticsearch有三个配置文件: elasticsearch.yml 用于配置Elasticsearch jvm.opt ...
- ElasticSearch集群部署【windows+Linux双系统搭建】
ES集群部署 一.windows部署 二.Linux单节点部署 三.Linux集群部署 一.windows部署 如果已经使用过,删除其中的data和logs文件夹中的内容 新建一个es-cluster ...
- CC00006.elasticsearch——|HadoopElasticSearch.V06|——|ELK.v06|集群|ElasticSearch集群部署.V1|
一.Elasticsearch 集群环境准备 ### --- hadoop01~03修改系统配置:修改/etc/sysctl.conf~~~ # 修改/etc/sysctl.conf [root@ha ...
- Elasticsearch 集群部署
在我们安装好Elasticsearch之后,详细可参考https://blog.csdn.net/u011192622/article/details/124867544 这里我们讲一下Elastic ...
- Elasticsearch集群部署及Head插件安装
首先准备三台Linux服务器,系统版本Centos7,具备Java环境,最好是JDK11以上.由于ES比较吃内存,所以每台服务器的配置要求为: CPU:2核 内存:2G 我的三个节点分别是Hadoop ...
- docker进行ElasticSearch集群部署
环境: (1)Centos7 (2)JDK1.8 (3)docker (4)ElasticSearch7.6 建议: (1)服务器至少3台,否则没必要集群部署 (2)java后台推荐直接连接客户端节点 ...
- 我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知
摘要:世上有三类书籍:1.介绍知识,2.阐述理论,3.工具书:世间也存在两类知识:1.技术,2.思想.以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识"tec ...
- Elasticsearch集群部署的相关问题记录
ElasticSearch相关的端口 ES:9200.作为http协议,主要用于外部通信 ES:9300.作为TCP协议,jar之间就是通过 tcp协议通信,ES集群之间通过9300通信 Kibana ...
- Logstash+Kibana+多ElasticSearch集群部署
ELK原理与介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集 ...
最新文章
- docker 实现redis集群搭建
- 电商的折扣体系是如何搭建的?
- Techo 大会:AI 会替代 DBA 么?
- flask创建mysql表_MySQL表不是使用Flask和PyMySQL创建的
- Android数据库存放的具体位置
- STM32f4 ARM Bootloader
- 惊了!同事竟然在代码里“下毒”
- 两款cpu型号【E7400VSe8400】的对比。
- Centos7 安装 maven
- 区块链教育平台Metisedu将于4月推出beta版本
- PHP开源的项目管理软件
- Linux检查当前运行级别
- 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完...
- Concurrent and Parallel
- GeoServer之安装mbtiles插件
- 森林防火火灾漫延算法 火灾推演算法分析 火灾蔓延范围计算方法 森林火灾边界漫延计算方法
- win7查看远程连接了计算机名,win7怎么查看远程连接信息 win7远程连接设置教程...
- Django应用与分布式路由
- python使用IE浏览器
- VIM 编辑器使用教程