Deploy ByConity to physical servers with a docker wrapper
The current way to deploy ByConity to physical servers is deployed via a docker wrapper. You can build the docker wrapper image from source code by following this guide.
Please follow the below steps:
Checkout the config files and shell file from the ByConity repo https://github.com/ByConity/ByConity/tree/master/docker/executable_wrapper.
Deploy Foundation database. You can refer to the installation guide here. After this step you will have a fdb cluster config file default located in
/etc/foundationdb/fdb.cluster
. Copy this file to./config/fdb.clsuter
Deploy an HDFS cluster consist of name node and data node, and create the directory
/user/clickhouse
in HDFS for store data. You can refer to the installation guide here. After this step, you got the name node url which ussually the value offs.defaultFS
that you can find in thecore-site.xml
config.Update file
config/cnch_config.xml
:- Update the value of
hdfs_nnproxy
tag to your hdfs namenode url. - Update the
host
tag insideservice_discovery
tags with the approprate address, ussually the ip address of the machine where you plan to install ByConity
- Update the value of
Execute
make image_pull
to pull the docker image to your localFor the machine you plan to deploy TSO, execute ./run.sh tso to run tso. And in the same way, go the other machine where you plan to run other component and execute below command to make it run.
Execute
./run.sh server
on 1 machine to run serverExecute
./run.sh read_worker
on 1 machine to run read worker. You can have many workers by repeated this command on different machines. And add the workers info inservice_discovery
tags inconfig/cnch_config.xml
so that server can know them.Execute
./run.sh write_worker
on 1 machine to run write workerExecute
./run.sh dm
on 1 machine to run daemon manager. TSO and DM are light weight services and can be run in the same machine with server or worker for resource efficient.Execute
./run.sh cli
on the machine that run server or./run.sh cli2 {server_address}
from any machine to connect to server using clickhouse-cli interface.To stop any component execute
./run.sh stop {component_name}
wherecomponent_name
can betso
,server
, .... After you stop if you want to run again then use./run.sh start {component_name}
otherwise you have got an error about container already in use fromdocker
.