1

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

我从elasticsearch网站上读到如下:多个数据位置允许对其进行条带化。条带化很简单,将整个文件放在其中一个位置,并根据可用空间最大的位置决定文件的放置位置。

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

4

1 回答 1

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

于 2013-02-25T04:46:32.853 回答