使用es心中还是得有一笔账,虽然自己没有做大规模数据的先例,但是公司决定开始做这件事情,数据是慢慢积累起来的,教科书上或阿里等大公司的参照其实也失去了意义,总不能什么让互联网告诉你所有的过程吧。所以我记录一些心得,和测算的历程,有错就纠正,经过一段时间的历练,应该有所悟吧。
1 单es索引备份
elasticsearch备份过程记录,这篇文章总结了es怎么做备份以及还原。备份的目录指定为/application/el_bak
,执行命令du -h /application/el_bak/
空间是按照数据量来的,下面可以是两个副本的大小,但是这么看根本看不出来是两个。
再看看里面的,可以看到index-0
和index-1
,这里体现出了两个备份。
查看index-0
和index-1
内容分别为,根据其内容,就可以跟上面的对应上了。
{"snapshots":[{"name":"20180927","uuid":"wQ70RU8pRTy_U72UeipE7Q","state":1}],"indices":{"edata":{"id":"B0Ol5EmjSxiGI7pAw7zMQw","snapshots":["wQ70RU8pRTy_U72UeipE7Q"]}}}
{"snapshots":[{"name":"20181010","uuid":"P_1j0uucTHeNqdMN-BlkZw","state":1},{"name":"20180927","uuid":"wQ70RU8pRTy_U72UeipE7Q","state":1}],"indices":{"edata":{"id":"B0Ol5EmjSxiGI7pAw7zMQw","snapshots":["wQ70RU8pRTy_U72UeipE7Q","P_1j0uucTHeNqdMN-BlkZw"]}}}
2 es自身的文件
elasticsearch.yml
指定了数据和日志的路径
path.data: /application/elasticsearch/data
path.logs: /application/elasticsearch/logs
执行命令du -h /application/elasticsearch/data
,看到的数据文件目录大小为4.1G
为什么原始文件有4.1G,而两个索引备份却只4.7G呢。考虑到我上一个备份是10月10日备份的,于是我有建立了一个10月11日的备份,查看文件大小,居然只增加了100M,我更加难以理解了,难道es能自己做增量备份。
3 es扩容
相信大多数公司接触大数据的时候,都比较保守,不会那么激进,不会一开动不动就搞个1T。我在搭建elasticsearch集群,采用的是3台4核8G100G磁盘的虚拟机,运行了大半年,数据到了需要扩容的程度
执行GET _cat/shards/my_index?v
可以查看到,一个索引数据实际分布到各个节点机器的不同分片上了。
3.1 垂直扩容
简单的说就是增加容量.虽然es总结-对elasticSearch进行扩容,如何超出扩容极限?有些文章推荐的是水平扩容。难道垂直扩容就不行吗,这里整理一下垂直扩容的资料。
3.2 水平扩容
简单的说就是增加机器,推荐的是水平扩容