暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Databend 对Ceph的支持

yangyidba 2022-06-09
915

一、Databend产品介绍

Databend 是一个使用 Rust 研发、开源、完全面向云架构的新式数仓,提供极速的弹性扩展能力,致力于打造按需、按量的 Data Cloud 产品体验。具备以下特点

  1. 开源 Cloud Data Warehouse 明星项目。

  2. Vectorized Execution 和 Pull&Push-Based Processor Model 。

  3. 真正的存储、计算分离架构,高性能、低成本,按需按量使用。

  4. 完整的数据库支持,兼容 MySQL ,Clickhouse 协议 , SQL Over HTTP 等。

  5. 完善的事务性,支持 Time Travel, Database Clone, Data Share 等功能 。

  6. 支持基于同一份数据的多租户读写、共享操作。

Databend官方教程:https://databend.rs/zh-CN/doc/deploy/oss

二、Databend 部署

                                                 产品架构图

架构简述:

query 计算节点:用途协议的解析,SQL的计算下推。

meta 元数据节点:用途存储元数据信息,存储在本地磁盘。

存储节点支持:

公有云aws、阿里、腾讯等的oss产品。

私有化支持Minlo、Ceph等等的s3协议。

部署前几句话,Databend 部署相当简单,部署步骤:

  1. 下载最新的二进制包。

  2. 解压压缩包,并且创建文件夹。

  3. 修改配置文件。

  4. 启动。

2.1 部署环境

操作系统:Centos7
Cpeh版本:12.2.13
Databend版本:v0.7.65

2.1.1 下载Dababend

wget  https://github.com/datafuselabs/databend/releases/download/v0.7.65-nightly/databend-v0.7.65-nightly-x86_64-unknown-linux-musl.tar.gz

2.1.2 解压缩并创建目录

tar -zxvf databend-v0.7.65-nightly-x86_64-unknown-linux-musl.tar.gz
mkdir /usr/local/databend/{bin,data,etc,logs} -p
mv databend-meta /usr/local/databend/bin/ 
mv databend-query /usr/local/databend/bin/

2.1.3 修改启动配置文件

#meta配置文件修改
cd /usr/local/databend/etc/
cat databend-meta.toml
log_dir            = "/usr/local/databend/logs/_logs1"
metric_api_address = "0.0.0.0:28100"
admin_api_address  = "0.0.0.0:28101"
grpc_api_address   = "0.0.0.0:9191"
[raft_config]
id            = 1
raft_dir ="/usr/local/databend/data/_meta1"
raft_api_port = 28103#172.16.16.12#
raft_listen_host = "172.16.16.12"#
raft_advertise_host = "172.16.16.12"
# Start up mode: singlenode cluster
single        = true

query节点配置文件修改

cat databend-query-node-1.toml
[query]
max_active_sessions = 256
wait_timeout_mills = 5000
# For flight rpc. 写当前机器的 IP 和对应的端口号
flight_api_address = "本机IP:9091"
# Databend Query http address.
# For admin RESET 
API.http_api_address = "0.0.0.0:8081"
# Databend Query metrics RESET API.
metric_api_address = "0.0.0.0:7071"
# Databend Query MySQL Handler.
mysql_handler_host = "0.0.0.0"
mysql_handler_port = 3307
# Databend Query ClickHouse Handler.
clickhouse_handler_host = "0.0.0.0"
clickhouse_handler_port = 9001
# Databend Query HTTP Handler.
http_handler_host = "0.0.0.0"
http_handler_port = 8000
tenant_id = "test_tenant"
cluster_id = "test_cluster"
table_engine_memory_enabled = true
table_engine_csv_enabled = true
table_engine_parquet_enabled = true
database_engine_github_enabled = true
table_cache_enabled = true
table_memory_cache_mb_size = 1024
table_disk_cache_root = "/usr/local/databend/data/_cache"
table_disk_cache_mb_size = 10240
[log]
log_level = "DEBUG"
log_dir = "/usr/local/databend/logs/_logs"
[meta]
# To enable embedded meta-store, set meta_address to ""
meta_embedded_dir = "/usr/local/databend/data/_meta_embedded_1"
meta_address = "0.0.0.0:9191"
meta_username = "root"
meta_password = "root"
meta_client_timeout_in_second = 60
# Storage config.
[storage]storage_type = "s3"
# DISK storage.
[storage.disk]
data_path = "/usr/local/databend/data/stateless_test_data"
# S3 storage. If you want you s3 ,please storage type : s3
[storage.s3]
bucket="databend"
region="region"
endpoint_url="Ceph S3的地址"
access_key_id="Ceph S3的key"
secret_access_key="Ceph S3的access"
# Azure storage
[storage.azure_storage_blob]

启动文件修改

/usr/local/databend/bin
[root@testsrv ~]#cat start.sh
ulimit  -n 65535cd /usr/local/databend/nohup /usr/local/databend/bin/databend-meta --config-file=/usr/local/databend/etc/databend-meta.toml 2>&1 >meta.log &
sleep 3
nohup /usr/local/databend/bin/databend-query --config-file=/usr/local/databend/etc/databend-query-node-1.toml 2>&1 >query.log &
cd -
echo "Please usage: mysql -h127.0.0.1 -P3307 -uroot"

2.1.3 启动Databend

[root@testsrv ~]# bash start.sh&

2.1.4 验证Databend并支持ceph

[root@testsrv ~]# mysql -h127.0.0.1 -P3307 -uroot  #默认没密码主要看参数  
执行SQL
'root'@127.0.0.1 18:59:  [(none)]> select * from system.configs; 
显示正常的ceph地址和key等信息表示正常
s3.region              
s3.endpoint_url        
s3.access_key_id       
s3.secret_access_key   
s3.bucket

三、总结

Databend的部署和支持Ceph而言相对简单,Databend主要针对的场景云原生,云数仓等场景,要比传统数据库更有优势。

Databend高可用性:

query节点,属于无状态节点。

只需要保证mate也就是元数据,不丢失即可。可以通过多设置副本的方式。

(个人想法,Meta可以实时保存到存储层一份,做实时备份,只用于紧急恢复使用。)

存储层,云场景会保证oss层的高可用。私有云环境就需要保证Ceph、MinIo的高可用行。

私有化的场景在完善对k8s的支持,完全可以做到开箱即用,实现真正的按需计费,按计算能力计费。

文章转载自yangyidba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论