写点什么

构建并运行 Databend

作者:Databend
  • 2023-01-09
    福建
  • 本文字数:1762 字

    阅读完需:约 6 分钟

构建并运行 Databend

今天 Databend 合并了一个重大重构,expression[1] 正式合并到 "main" 分支,为 Databend 装载了全新的静态类型系统和表达式计算框架。接下来一到两周内会进行全面测试,这个期间 nightly release 停发。如果大家对这套 New Expression 系统感兴趣,不妨参考这篇文章,亲自动手体验一下。

如何构建 Databend

Make

采用 "make" 构建的方式会调用预先设定好的脚本,脚本位于 "scripts/build" 路径下。


只开启默认特性,并且一次性构建 "databend-query"、"databend-meta"、"databend-metactl" 以及 "open-sharing" 四个程序。


参考之前文章(如何设置Databend开发环境),设置好开发环境


  • "make build" 可轻松构建 debug 版本。

  • "make build-release" 则会构建 release 版本,并会采用 objcopy 减少二进制体积。

  • "make build-native" 构建针对本机 CPU 优化的版本。

Cargo

使用 “cargo” 构建的好处在于可以按需开启特性,并灵活控制要构建的目标二进制文件。


常用的命令格式如:


RUSTFLAGS="--cfg tokio_unstable" cargo build --bin=databend-query --features=tokio-console
复制代码


即可构建启用 "tokio-console" 支持的 "databend-query" ,使用 "RUSTFLAGS="--cfg tokio_unstable"" 是因为 "tokio" 的 "tracing" 特性还没有稳定下来。


Databend features 速览


这里只介绍几个比较常用的特性,具体支持的特性可以查看 "Cargo.toml" 中的 "features" 字段。


  • "simd = ["common-arrow/simd"]":默认开启的特性,启用 arrow2 的 SIMD 支持(meta & query)。

  • "tokio-console = ["common-tracing/console", "common-base/tracing"]":用于监控和调试异步调用程序(meta & query)。

  • "memory-profiling = ["common-base/memory-profiling", "tempfile"]":用于内存分析(meta & query)。

  • "hive = ["common-hive-meta-store", "thrift", "storage-hdfs"]":用于提供 hive 支持(query)。

跨平台构建

Databend 提供 Docker "build-tool" Image,可以简化跨平台构建所需工作。


示例选用 "x86_64-unknown-linux-gnu" 目标平台,其他支持平台也类似:


IMAGE='datafuselabs/build-tool:x86_64-unknown-linux-gnu' RUSTFLAGS='-C link-arg=-Wl,--compress-debug-sections=zlib-gnu' ./scripts/setup/run_build_tool.sh cargo build --target x86_64-unknown-linux-gnu
复制代码


如何运行 Databend

一旦构建完成后,就可以在 target 目录下找到对应的二进制程序。对于 Databend 的运行,同样有多种可供选择的方式。

Make

Databend 同样预置了一些方便开发人员快速运行的 "make" 命令:


  • "make run-debug":构建并运行 debug 版本。

  • "make run-release":构建并运行 release 版本。

  • "make run-debug-management":构建 debug 版本并以 management 模式运行。


如果你检查过位于 "scripts/ci/deploy" 的脚本,就会发现,这里本质上是直接执行了对应程序的二进制文件,并为其加载了位于 "scripts/ci/deploy/config" 目录下的相应配置。

Cargo

使用 "cargo" 也可以运行 Databend ,通常我们会推荐采用指定配置文件的方式来启动。


cargo run --bin databend-query -c scripts/ci/deploy/config/databend-query-embedded-meta.toml
复制代码


执行上述命令可以以 embedded meta 的模式启用 "databend-query" 的单节点模式。如果不指定在 embedded meta 模式下运行,就必须提供 "your-meta-service-endpoints" 。


另外,如果有需要的话也可以参考 "scripts/ci/deploy/config" 中的文件编写自己的配置。

集群模式

Databend 总是推荐用户在生产环境中使用集群模式,为了方便模拟这一情况,也可以执行:


BUILD_PROFILE=release ./scripts/ci/deploy/databend-query-cluster-3-nodes.sh
复制代码


来启动一个具有 3 个 "databend-meta" 节点和 3 个 "databend-query" 节点的集群,通过指定 "BUILD_PROFILE" 可以在 release 和 debug 版本间切换。

引用链接

[1] expression: https://github.com/datafuselabs/databend/pull/9411

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。


  • Databend 文档:https://databend.rs/

  • Twitter:https://twitter.com/Datafuse_Labs

  • Slack:https://datafusecloud.slack.com/

  • Wechat:Databend

  • GitHub :https://github.com/datafuselabs/databend

用户头像

Databend

关注

还未添加个人签名 2022-08-25 加入

还未添加个人简介

评论

发布
暂无评论
构建并运行 Databend_databend_Databend_InfoQ写作社区