我们正在Docker上运行 Solr 7.3.1 ,尝试使用Ceph Storage将索引信息保存在HDFS + Hadoop-AWS S3A filesystem client上。当前,我们启动2个Solr实例和3个Zookeeper。
启动Solr后,我们将创建一个包含2个分片和2的复制因子的测试集合。一切正常,并且Ceph存储桶已正确填充。我们可以在Ceph中看到文件,例如:
testcollection/core_node8/data/index/_0.fdt 111 2018-08-01T14:45:18.038Z
testcollection/core_node8/data/index/_0.fdx 83 2018-08-01T14:45:16.604Z
testcollection/core_node8/data/index/_0.fnm 427 2018-08-01T14:45:22.738Z
但是,当我们重新启动一个容器时,恢复过程显然会复制“ dataDir”配置,并且我们开始看到其他文件,例如:
testcollection/core_node8/s3a:/bucketname/testcollection/core_node8/data/index/_0.fdt 111 2018-08-01T14:54:39.361Z
testcollection/core_node8/s3a:/bucketname/testcollection/core_node8/data/index/_0.fdx 83 2018-08-01T14:54:32.669Z
testcollection/core_node8/s3a:/bucketname/testcollection/core_node8/data/index/_0.fnm 427 2018-08-01T14:54:58.761Z
其中s3a:/bucketname
是在solr.hdfs.home
中配置的solr.in.sh
值。
我们还注意到,在重新启动之前,core.properties文件未配置dataDir
属性。重新启动后,容器的此属性定义为s3a:/bucketname/testcollection/core_node8/data
。
即使每次重新启动都一次又一次地复制索引文件,此行为也是正确的吗?