Docker安装ES服务

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