Docker安装ES服务 #
一、导入镜像 #
docker load -i es_6.8.6.tar
二、运行docker镜像 #
docker run -d \
--net hadoop_net \
--ip 172.10.0.3 \
-p 9200:9200 \
-p 9300:9300 \
--name es \
--restart=always \
-e "discovery.type=single-node" es:6.8.6
运行完会打印日志,这里可以ctrl+c结束调,再重新启动es的docker镜像即可
三、检测安装成功 #
浏览器打开网页
http://192.168.0.145:9200/_cat/indices
❗注意:后续相关资料与安装无关,不用操作
四、其他 #
遇到的问题 #
cluster_block_exception
由于ES数据目录data存储空间不足,导致从master主节点接收同步数据的时候失败,此时ES集群为了保护数据,会自动把索引分片index置为只读read-only,导致数据插入不进去,这里需要使用postman进行相关配置的修改
localhost:19200/_settings
{
"index": {
"blocks": {
"read_only_allow_delete": "false"
}
}
}
也可以curl命令执行
curl -X 'PUT' -H "Content-Type:application/json" 'http://localhost:9200/_all/_settings' -d '{"index.blocks.read_only_allow_delete": null}'
备份相关 #
进入es的Docker里面,修改配置文件
vi /usr/share/elasticsearch/config/elasticsearch.yml
增加以下内容:
path.repo: ["/usr/share/elasticsearch/backup"]
再重启docker,在宿主机上执行
curl -X PUT "172.10.0.3:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "my_backup"
}
}
'
其他命令
curl -X PUT "172.10.0.3:9200/_snapshot/my_backup" -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "my_backup"
}
}
'
curl -X GET "localhost:9200/_snapshot/my_backup"
curl -X GET "localhost:9200/_snapshot/my_backup/snapshot_20231222"
curl -X DELETE "localhost:9200/_snapshot/my_backup/snapshot_20231222"
curl -X POST http://localhost:9200/_snapshot/my_backup/20231222/_restore