dremio dac 模块简单说明一

dremio dac 模块在官方的定义中是dremio 分析中心的意思,代码上包含了,backend,common,daemon, ui

模块的功能

  • backend
    dremio 的server 部分,在构建打包之后会包含ui 部分的组件(前端),基于jersey 开发的web server ioc 部分利用了
    guice,属于一个比较重量的东西,dremio 入口模块都是在此处进行配置以及初始化的,学习此模块有助于了解内部的
    机制
  • common
    目前来说主要是一些注解处理供其他模块使用没有太多复杂的地方
  • daemon
    此模块属于dremio cli 能力的一部分,比如admin 管理部分就需要使用此功能(dremio 升级需要使用upgrade 命令),同时dremio 的启动也是
    利用了此功能,同时也会使用backend 模块的能力
    参考daemon admin cli 命令
 
bin=`dirname "${BASH_SOURCE-$0}"`
bin=`cd "$bin">/dev/null; pwd`
 
export DREMIO_ENV_SCRIPT="dremio-env"
. "$bin"/dremio-config
 
if [ -n "$CLIENT_GC_OPTS" ]; then
  CLIENT_GC_OPTS=${CLIENT_GC_OPTS/"-Xloggc:<FILE-PATH>"/"-Xloggc:${loggc}"}
  CLIENT_GC_OPTS=${CLIENT_GC_OPTS/"-Xlog:gc:<FILE-PATH>"/"-Xloggc:${loggc}"}
  DREMIO_JAVA_OPTS="$DREMIO_JAVA_OPTS ${CLIENT_GC_OPTS}"
fi
 
DREMIO_JAVA_OPTS="$DREMIO_JAVA_OPTS -Xmx${DREMIO_MAX_HEAP_MEMORY_SIZE_MB:-4096}m"
DREMIO_JAVA_OPTS="$DREMIO_JAVA_OPTS $DREMIO_JAVA_CLIENT_EXTRA_OPTS $DREMIO_JAVA_EXTRA_OPTS"
DREMIO_JAVA_OPTS="$DREMIO_JAVA_OPTS $DREMIO_GC_OPTS"
 
if [ -z "$DREMIO_ADMIN_LOG_DIR" ]; then
  if [ -w "$DREMIO_LOG_DIR" ]; then
    DREMIO_ADMIN_LOG_DIR="$DREMIO_LOG_DIR"
  else
    DREMIO_ADMIN_LOG_DIR="$HOME/.dremio/"
  fi
fi
 
Command="$1"
DateTime=$(date '+%Y-%m-%d_%H:%M:%S')
LOG_PARAM="-Ddremio.admin.log.path=${DREMIO_ADMIN_LOG_DIR}/admin_${Command}_${DateTime}.log"
 
if [ -n "$DREMIO_ADMIN_LOG_VERBOSITY" ]; then
      LOG_PARAM="$LOG_PARAM -Ddremio.admin.log.verbosity=${DREMIO_ADMIN_LOG_VERBOSITY}"
fi
# cli 入口命令
exec "$JAVA" $DREMIO_JAVA_OPTS $LOG_PARAM -Dlogback.configurationFile=logback-admin.xml -cp $DREMIO_CLASSPATH \
  com.dremio.dac.cmd.AdminCommandRunner $@
  • ui 部分
    主要包含了ui 以及ui-lib ,ui 才是dremio 的前端部分,ui-lib 是一些公共组件方便ui 部分使用

说明

大致了解dac 模块的项目组成有助于我们深入学习dremio,同时也可以更好的扩展运行dremio (尤其是backend 模块部分),cli 部分基于了
jcommander 进行开发,后边会详细介绍下daemon 模块的运行以及源码

参考资料

dac/daemon/src/main/java/com/dremio/dac/daemon/DremioDaemon.java
https://github.com/dremio/dremio-oss
https://jcommander.org/
https://github.com/cbeust/jcommander

posted on   荣锋亮  阅读(76)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-01-17 assemblyscript基于typescript 开发WebAssembl
2021-01-17 muzejs 基于webassembly 的高性能数据可视化库
2020-01-17 zeebe 0.22 版本发布
2020-01-17 jcommander 方便的java 命令行处理工具包
2020-01-17 使用gcplot 查看jvm gc 信息
2019-01-17 golang 版本 gearman 试用
2019-01-17 jenkins 使用smtp2http 邮件服务,扩展灵活的构建通知功能

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示