[1] Foundation DB 安装指南:https://github.com/ByConity/ByConity/blob/master/docker/executable_wrapper/FDB_installation_zh.md
[2] HDFS 安装指南:
| 组件 | CPU | 内存 | 硬盘 | 实例 |
| TSO | 2 | 500M | 5G | 1 |
| Server | 16 | 60G | 100G | >=1 |
| Write Worker | 16 | 60G | 100G | >=3 |
| Read Worker | 16 | 60G | 100G | >=3 |
| DaemonManager | 4 | 10G | 10G | 1 |
| ResourceManager | 8 | 16G | 10G | 1 |
| Client | 8+ | 16G+ | 200G | 1 |
方式一:Docker 部署
[3] 官方文档: https://docs.docker.com/engine/install/
config/cnch_config.xml。设置服务器 ip 地址,将 {xxx_address} 替换为实际服务器地址。这包括服务器、tso、deamon manager 和 resource manager。如有需要你可以调整可能导致冲突的端口。然后在<hdfs_nnproxy>中设置HDFS namenode的地址。
config/fdb.cluster 替换为上面 FDB 设置步骤中生成的 fdb.cluster 文件。
5 根据上面的资源需求列表和你的实际资源情况调整run.sh中的参数,尤其是要分配给每个组件的 cpu和内存数。如果你在config/cnch_config.xml中改了端口,这里在run.sh也要做相应的修改。
6 在您需要部署 ByConity 组件的每台主机上,执行以下操作:
1)将 docker 文件夹复制到主机。
2)拉取docker镜像:
docker pull byconity/byconity-server:stable
7 初始化并启动ByConity组件:
./run.sh tso.2)在1台主机上启动 resource manager:
./run.sh rm.3)在1台主机上启动 deamon manager:
./run.sh dm.4)启动server,每个server运行在 1 台主机上:
./run.sh server.5)启动write workers,每个write worker运行在1台主机上:
./run.sh write_worke <worker_id>. worker_id 是可选的,如果不设,会取<hostname>-write.6)启动read workers,每个read worker运行在1台主机上:
./run.sh read_worke <worker_id>. worker_id 是可选的,如果不设,会取<hostname>-read.
./run.sh stop {component_name}, 以及 ./run.sh start {component_name}, component_name 与#6中的描述相同
方式二:软件包部署
[4] https://github.com/ByConity/ByConity/releases
curl -L -o foundationdb-clients_7.1.25-1_amd64.deb https://github.com/apple/foundationdb/releases/download/7.1.25/foundationdb-clients_7.1.25-1_amd64.debsudo dpkg -i foundationdb-clients_7.1.25-1_amd64.deb
byconity-common-static。
sudo dpkg -i byconity-common-static_0.1.1.1_amd64.deb
/etc/byconity-server/cnch_config.xml中设置服务器地址,方法与#1.3.1 中描述的相同。可以参考本项目中 docker/config/cncn_config.xml 对应的部分 。
/etc/byconity-server/fdb.config 中的内容替换为为在#1.1中的 FDB 设置步骤中生成的fdb.cluster 文件内容。
1)选择1台主机运行TSO,下载byconity-tso包并安装。
sudo dpkg -i byconity-tso_0.1.1.1_amd64.deb
systemctl start byconity-tso
byconity-resource-manager 包并安装。
sudo dpkg -i byconity-resource-manager_0.1.1.1_amd64.debsystemctl start byconity-resource-manager
byconity-daemon-manager 包并安装。
sudo dpkg -i byconity-daemon-manager_0.1.1.1_amd64.debsystemctl start byconity-daemon-manager
byconity-server 包并安装。
sudo dpkg -i byconity-server_0.1.1.1_amd64.debsystemctl start byconity-server
5)选择3台以上主机运行read worker,下载byconity-worker 包并安装。由于启用了resource manager作worker的发现,这里需要设置相关的环境变量,注意WORKER_ID必须是唯一的。
sudo dpkg -i byconity-worker_0.1.1.1_amd64.debsystemctl start byconity-worker
byconity-write-worker 包并安装。由于启用了resource manager作worker的发现,这里需要设置相关的环境变量,注意WORKER_ID必须是唯一的。
sudo dpkg -i byconity-worker-write_0.1.1.1_amd64.debsystemctl start byconity-worker-write
共享物理机
clickhouse 执行文件拷贝或者链接到本项目中的bin 文件夹中 如果你是通过docker运行ByConity组件的,你可以从任何现有ByConity docker容器中复制执行文件,比如
mkdir bindocker cp byconity-server:/root/app/usr/bin/clickhouse bin/
/usr/bin/clickhouse拷贝或者链接到bin文件夹。
bin/clickhouse client --host=<your_server_host> --port=<your_server_tcp_port> --enable_optimizer=1 --dialect_type='ANSI'
CREATE DATABASE test;USE test;CREATE TABLE events (`id` UInt64, `s` String) ENGINE = CnchMergeTree ORDER BY id;INSERT INTO events SELECT number, toString(number) FROM numbers(10);SELECT * FROM events ORDER BY id;
sudo apt-get install gcc make flex bison byacc git time
4.2 设置参数
cp config.sh.tpl config.sh
4.3 授予对所有脚本的访问权限
chmod a+x *.sh
4.4 构建 tpcds 工具
build 文件夹
./build.sh
4.5 生成数据
data_tpcds_{data_size} 文件夹中。数据生成需要一些时间,期间工具没有信息输出,如果需要查看数据生成的进度,你可以观察data_tpcds_{data_size} 文件夹中的文件生成。
./gen_data.sh 100 16
4.6 将数据写入到 ByConity
./populate_data.sh 100
4.7 运行基准测试
./benchmark.sh 100
4.8 检查结果
1)result.csv,运行结果,格式为['Query ID', 'Time in ms', 'Status' (0 为正常)]
2)trace.log,详细的基准测试中运行的查询。
3) output.log,运行过程的日志输出。
References
[1] Foundation DB 安装指南: https://github.com/ByConity/ByConity/blob/master/docker/executable_wrapper/FDB_installation_zh.md[2] HDFS 安装指南: https://github.com/ByConity/ByConity/blob/master/docker/executable_wrapper/HDFS_installation_zh.md
[3] 官方文档: https://docs.docker.com/engine/install/[4] 此页面: https://github.com/ByConity/ByConity/releases[5] 这个页面: https://github.com/apple/foundationdb/releases

