1、教程
1.视频:黑马https://www.bilibili.com/video/BV1C54y1t7ko?p=16&spm_id_from=pageDriver&vd_source=38e7fc10713eca999c22c7ff25f6e6d2
2.python相关
https://blog.csdn.net/feizuiku0116/article/details/122470501
https://www.jianshu.com/p/56772af4bb4e
3.文档
https://docs.kilvn.com/elasticsearch/docs/7.html
现在,让我们来看一看我们的索引 :
curl -XGET 'localhost:9200/_cat/indices?v&pretty'
现在让我们创建一个名为 “customer” 的索引,然后再列出所有索引 :
curl -XPUT 'localhost:9200/customer?pretty&pretty'
curl -XGET 'localhost:9200/_cat/indices?v&pretty'
现在让我们删除我们刚才创建的索引并且再次列出所有索引 :
curl -XDELETE 'localhost:9200/customer?pretty&pretty'
curl -XGET 'localhost:9200/_cat/indices?v&pretty'
2、安装使用
参考链接:https://blog.csdn.net/qq_43116031/article/details/133860228
添加 Elasticsearch APT 仓库:
打开终端,并使用以下命令添加 Elasticsearch APT 仓库到系统:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
安装 Elasticsearch:
使用以下命令来安装 Elasticsearch:
sudo apt update
sudo apt install elasticsearch
启动 Elasticsearch 服务:
安装完成后,使用以下命令启动 Elasticsearch 服务并设置它在系统引导时自动启动:
sudo service elasticsearch start
sudo systemctl enable elasticsearch
检查 Elasticsearch 状态:
使用以下命令检查 Elasticsearch 服务是否正在运行:
sudo service elasticsearch status
如果一切正常,应该看到 Elasticsearch 服务正在运行。
测试 Elasticsearch:
打开浏览器或使用 curl 命令测试 Elasticsearch 是否正常工作。默认情况下,Elasticsearch HTTP API 在端口 9200 上运行。使用以下命令来检查 Elasticsearch 是否正常运行:
curl -X GET "http://localhost:9200/"
3、数据过多
参考:https://www.cnblogs.com/yangchongxing/p/16535969.html
原因:
当linux磁盘空间不够情况后,ES集群为了保护数据,会自动把索引分片index置为只读read-only
解决办法(相应执行如下命令):
1、无用户权限:
curl -XPUT -H “Content-Type: application/json” http://10.88.88.88:9200/_all/_settings -d ‘{“index.blocks.read_only_allow_delete”: false}’
2、有用户权限:
curl --user testname:testpassword -XPUT -H “Content-Type: application/json” http://10.88.88.88:9200/_all/_settings -d ‘{“index.blocks.read_only_allow_delete”: false}’
原文链接:https://blog.csdn.net/jiaokun_1105/article/details/117996393
4、Elasticsearch磁盘占用大于95%时将所有索引置为只读
从stackoverflow上查到,当Elasticsearch所在磁盘占用大于等于95%时,Elasticsearch会把所有相关索引自动置为只读。(Elasticsearch官方文档有介绍)
那么查看设置(以本机部署9200为例):
curl -GET 'localhost:9200/index_name/_settings?pretty'
解决方案有两种:
1.清理磁盘,使占用低于95%。
2.调整自动锁阀值,官方文档中有详尽方法。
建议采用第一种,注意解决之后,需要手动把被锁的索引的只读模式关闭。
方法二:重新设置水位
链接: 官方链接
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.routing.allocation.disk.watermark.low": "100gb",
"cluster.routing.allocation.disk.watermark.high": "50gb",
"cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
"cluster.info.update.interval": "1m"
}
}
'
可以通过以下命令将所有的index配置ndex.blocks.read_only_allow_delete为改为false,来恢复。
curl -XPUT -H "Content-Type: application/json" \
http://localhost:9200/_all/_settings \
-d '{"index.blocks.read_only_allow_delete": false}'
单个设置为false
curl -X PUT "localhost:9200/my-index-000001/_settings?pretty" -H 'Content-Type: application/json' -d'
{
"index.blocks.read_only_allow_delete": null
}
'
原文链接:https://blog.csdn.net/cxcjoker7894/article/details/84504418