ES 的作用
- 之前存储了大约11W条数据, 作为Mac相关的知识库 不过现在应该很少用了。 index: mac-master
- 主要作用是作为TSDB的存在。 存储用户的反馈、点击事件等等。 index: mac-master-tsdb
原文链接:http://www.flyml.net/2017/11/23/record-an-elasticsearch-transporting/
老版本的安装方法:
步骤概述:
- 下载deb包并安装
- 使用systemctl进行管理
- 配置文件:
/etc/elasticsearch/elasticsearch.yml
- 为了节省内存, 将java占用的内存空间减少到1G
修改的文件:/etc/elasticsearch/jvm.options
- 修改的配置文件的值:(其实只有network.host最重要)
123cluster.name: skyaid-esnode.name: linode-betanetwork.host: 172.17.0.1
PS: 目前还不知道具体的data目录在哪里。。。
新版本的安装:使用docker的方式
安装命令:
1 |
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.0.0 |
在宿主机创建存储ES数据的目录:
1 2 3 |
mkdir -p /root/macva-es-backup/data mkdir -p /root/macva-es-backup/snapshots chmod 777 -R /root/macva-es-backup/ |
启动命令:
1 2 3 4 5 |
docker run -d --name "macva-es" \ -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" \ -v /root/macva-es-backup/data:/usr/share/elasticsearch/data \ -v /root/macva-es-backup/snapshots:/usr/share/elasticsearch/snapshots \ docker.elastic.co/elasticsearch/elasticsearch:6.0.0 |
启动之后,直接修改配置文件:(增加path.repo
)
1 2 3 4 |
docker exec -it macva-es bash -c "echo 'path.repo: [\"/usr/share/elasticsearch/snapshots\"]' >> /usr/share/elasticsearch/config/elasticsearch.yml" #重启 docker restart macva-es |
过一会, 看看状态:
1 |
curl -XGET http://172.17.0.1:9200/_cat/indices?v |
创建一个快照仓库:
1 2 3 4 5 6 7 8 |
curl -XPUT 'http://172.17.0.1:9200/_snapshot/my_backup?pretty' -H 'Content-Type: application/json' -d' { "type": "fs", "settings": { "location": "/usr/share/elasticsearch/snapshots" } } ' |
开始快照:
1 |
curl -XPUT 'http://172.17.0.1:9200/_snapshot/my_backup/your_index?wait_for_completion=true&pretty' |
从快照恢复:(需要先关闭index 才能恢复。 恢复完成之后再open)
1 2 3 |
curl -XPOST 'http://172.17.0.1:9200/your_index/_close?pretty' curl -XPOST 'http://172.17.0.1:9200/_snapshot/my_backup/snapshot_2017-11-23/_restore?pretty' curl -XPOST 'http://172.17.0.1:9200/your_index/_open?pretty' |
一些常用的cURL命令。
# 查看有哪些index
curl -XGET http://172.17.0.1:9200/_cat/indices?v
# 查看mapping信息
curl -XGET http://172.17.0.1:9200/mac-master/_mapping/?pretty
# 查看settings / analyzer 信息
curl -XGET http://172.17.0.1:9200/mac-master/_settings/?pretty
# 删除index
curl -XDELETE 'http://172.17.0.1:9200/mac-master?pretty'
后记
发现ES对这种简单的需求, 真心不是很友好。 至少相比MySQL的mysqldump难用太多了。
之前测试过另外一个nodejs写的elastic-dump。测试的方式是docker。发现经常出错, 也不知道出错的原因在哪里。 这个东西的API在设计上面应该是很合适我们使用的,无奈总是出错。
感觉自己写一个会有市场, 哈哈!
本文原创, 原文地址:
http://www.flyml.net/2017/11/23/record-an-elasticsearch-transporting/

文章评论