dremio 分布式存储以及云存储缓存简单说明

实际上以前我也简单介绍过,以下主要是对于这些有一些整体的介绍

分布式存储

paths.dist 配置属性,包含了加速,表,job 结果,上传以及下载的数据,支持包含了共享存储(nas,hdfs,以及对象存储)
对于对象存储实际上还是hdfs,只是处理上配置不一样

 
paths: {
  ...
  dist: "dremioS3:///<bucket_name>/<folder1>/<folder2>"
}
 
 

同时我们需要配置core-site.xml ,具体就是s3a 的一些参数了,具体参考官方文档
注意默认fs.s3a.buffer.dir 配置默认为/tmp/hadoop-dremio/s3a ,建议修改,然后重启服务(主要是执行节点)

云存储缓存

对于一些数据源,是支持云存储缓存的(s3,adls,azure,hdfs。。。)实际上从名字名并不是数据放到远端,而且我们将云端或者
一些延迟比较大的存储数据缓存到本地,实现数据的加速(特别类似现有的juicefs 以及alluxio)
对于这些我们可以在添加数据源的时候配置

 

 


设置缓存路径以及目录
需要注意的项

  • 数据路径,实际上就是存储缓存数据的牡蛎
  • 缓存目录,存储关联数据的挂载点,注意如果路径改变以及执行器重启缓存失效
  • 配置
    需要配置executor.cache.path.db以及executor.cache.path.fs (推荐使用ssd 以及nvme )
    一个参考配置
 
paths: {
  # the local path for dremio to store data.
  local: "/mnt/resource/dremio/data"
 
  # the distributed path Dremio data including job results, downloads, uploads, etc
  #dist: "pdfs://"${paths.local}"/pdfs"
}
 
services: {
  coordinator.enabled: false,
  coordinator.master.enabled: false,
  executor.enabled: true
  executor.cache.path.db : "/mnt/cachemanagerdisk/db",
  executor.cache.path.fs : [ "/mnt/cachemanagerdisk/dir1","/mnt/cachemanagerdisk/dir2","/mnt/cachemanagerdisk/dir3","/mnt/cachemanagerdisk/dir4"]
}
zookeeper: "lak-azure-perf:"${services.coordinator.master.embedded-zookeeper.port}
  • 反射数据缓存
    可以通过dist.caching.enabled以及reflection.cloud.cache.enabled解决,注意需要重启集群
  • 最佳实践
    使用ssd 以及nvme 为了更好的性能,对于不常用的会进行清理,对于cache 添加额外的存储
    如果需要移除本地数据的缓存:数据源移除cache 配置,删除缓存管理数据以及文件夹

说明

分布式存储解决的是数据共享的问题,云储存缓存解决的是对于延迟较大存储的加速,实现数据本地化,加速查询处理

参考资料

https://docs.dremio.com/software/deployment/dist-store-config/
https://docs.dremio.com/software/deployment/cloud-cache-config/

posted on 2022-05-06 14:17  荣锋亮  阅读(384)  评论(0编辑  收藏  举报

导航