我有一个节点elasticsearch集群,并配置了两个路径来存储shadrs,例如path.data:/partone,/parttwo。 1 GB硬盘安装在/ partone文件夹上,而5 GB硬盘安装在/ parttwo文件夹上。我使用了大约483 MB的文件进行索引,然后在该节点中出现了536644个文档。当我删除/ partone文件夹中的孔文件时,文档数变为531833。这意味着一些文档存储在/ partone文件夹中。

我从elasticsearch网站上读取了以下内容:
多个数据位置允许对其进行分割。 strip 化很简单,将整个文件放在其中一个位置,然后根据具有最大可用空间的位置来决定将文件放置在何处。

我的问题是,如果条纹是基于具有最大可用空间的位置进行的,则孔文件应该存储在parttwo文件夹中,该文件夹的大小大于partone文件夹的大小,不是吗?为什么Folderone中存在一个小文件?

最佳答案

您引用的段落是指实际的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后,我的索引不起作用。

关于path - 当存在路径集(path.data)时,如何在elasticsearch中存储碎片?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15049758/

10-11 08:44