2013-02-24 41 views
1

我有一个节点elasticsearch集群,并使用两个路径来存储shadrs,如path.data:/partone,/parttwo。 1GB硬盘安装在/ partone文件夹上,5GB硬盘安装在/ parttwo文件夹中。我使用大约483 MB文件进行索引,然后536644文档出现在此节点中。当我删除/ partone文件夹中的洞文件时,文档数量变为531833.这意味着一些文档存储在/ partone文件夹中。如何在弹性搜索中存储碎片,何时需要路径集(path.data)?

我从elasticsearch网站读取如下: 多个数据位置允许将其条带化。条纹很简单,将整个文件放在其中一个位置,然后根据空间最大的位置决定放置文件的位置。

而我的问题是,如果条纹是基于最大的可用空间的位置,洞文件应存储在parttwo文件夹中,其大小大于partone文件夹的大小,不是吗?为什么在folderone中存在一个小文件?

回答

0

您引用的段落是指实际的Lucene索引。有一些细节与ES如何执行复制有关,也可以存储在较小的驱动器上。当ES将数据冲洗到Lucene时,这些被清除。例如,对于-Des.path.data=/d/data/foo,/tmp/foo,索引维基百科几分钟后和执行-XPOST /_flush,我看到:

% du -ks /d/data/foo /tmp/foo 
205680 /d/data/foo 
776  /tmp/foo 
% df -h /d/data/foo /tmp/foo 
Filesystem      Size Used Avail Use% Mounted on 
/dev/sda5      294G 28G 251G 10% /d 
/dev/disk/by-uuid/074cc648... 106G 91G 11G 90%/

我很惊讶,但是,删除一些文件出来/partone后,你能算文档。删除/tmp/foo后,我的索引无法使用。