底层存储是segment存储的地方,druid并没有规定它的存储机制。底层存储架构决定了我们的数据持久性的级别,只要druid进程可以识别这个存储架构并能获取存储在其上的segment,不管我们的druid 节点有多少个失联,都不用担心数据的丢失。如果segment在底层存储里面丢失了,那么我们将会丢失存储在这个segment上面的数据。
本地挂载
本地挂载也可以用于存储segment。这将允许我们使用本地文件系统或者其他的可以挂载到本地的像NFS,Ceph等等。这是默认的底层存储的实现。
为了使用本地挂载的底层存储,我们需要在通用配置里面进行如下的配置:
注意:正常情况下我们需要设置druid.storage.storageDirectory的值与druid.segmentCache.locations 和 druid.segmentCache.infoDir不同
如果我们在本地模式下使用Hadoop indexer,那么只需给它一个本地文件作为输出目录,它就可以工作了。
兼容S3
参考:druid-s3-extensions extension documentation.
HDFS
参考:druid-hdfs-storage extension documentation.
其他的底层存储
参考: extensions list.