Skip to main content

EloqSQL 单节点部署

部署数据库之前,请先完成部署前配置

联系我们获取 EloqSQL 安装包

eloqdb-tx-release-bin.tar.gz
eloqdb-log-release-bin.tar.gz
waiter-cluster-mgr.tar.gz

实施部署

  1. 部署 EloqSQL
  • 安装 cluster_mgr
curl --proto '=https' --tlsv1.2 -sSf https://www.eloqdata.com/download/mono-waiter/install.sh | sh

cd ${CLUSTER_MGR_HOME}
  • 修改 eloqDB 启动选项 编辑配置文件 config/my_template.cnf,添加线程池相关参数,并根据机器配置进行调整 CPU 和内存参数。
# under [mariadb]
# enable thread pool
thread_handling=pool-of-threads
thread_pool_max_threads=4
thread_pool_dedicated_listener=1
# thread_pool_size should be 3/8 of physical CPU core number.
thread_pool_size=6

# under eloq
# core_num should e 3/8 of physical CPU core number.
eloq_core_num=6
# node_memory_limit_mb is the buffer pool of eloqDB,
# should be less than 60% physical memory.
eloq_node_memory_limit_mb=4000
  • 修改集群配置文件 按下面的配置模板,编辑配置文件 config/deployment.yaml,其中:

    • username: "ubuntu":表示通过 ubuntu系统用户(当前系统用户名)来做集群的内部管理,默认使用 22 端口通过 ssh 登录目标机器。ubuntu 需要有 sudo 权限,不支持使用 root 用户安装数据库

    • auth_type:ssh 登陆验证的方式,默认为 keypair 形式

    • keypair: 设置为通过网络配置的 ssh 私钥文件存放地址

    • host:设置为本部署主机的 IP,如果只需要安装在本机,则设置为 127.0.0.1,不要使用 localhost

    • tx_image:EloqSQL TxService 安装包,支持本地地址以及远程地址。

    • log_image: EloqSQL LogService 安装包,支持本地地址以及远程地址。

    • install_dir:设置为用户安装集群的期望存放位置,此位置须为username所指定的用户所具有读写权限的文件夹位置,如果安装目录不存在,目前需要提前手工创建。

    • storage_service:配置Cassandra数据库的远程下载网址download_url,安装位置(host),如果配置成127.0.0.1,表示安装在本地。

    • monitor:配置 EloqSQL 的相关监控软件(prometheus、 grafana)的远程下载网址、安装位置以及安装端口。目前 monitor 需要安装在 storage_service 所在节点。 配置模板如下:

      connection:
      username: 'ubuntu'
      auth_type: 'keypair'
      auth:
      keypair: '/home/ubuntu/.ssh/ed25519_mono'
      deployment:
      product: 'Eloq'
      # eloqdb 安装包路径 file:// 表示文件在本地。目前支持http 和 file 。
      tx_image: 'file:///home/ubuntu/eloqdb-tx-release-bin.tar.gz'
      log_image: 'file:///home/ubuntu/eloqdb-log-release-bin.tar.gz'
      cluster_name: 'mono-poc'
      # eloqdb 安装路径,当前用户对该目录需要具备读写权限 。
      install_dir: '/data/opt'
      port:
      mysql_port: 3300
      eloq_port:
      start: 8000
      end: 8009
      log_service:
      nodes:
      - host: 127.0.0.1
      port: 9000
      data_dir:
      - '/data1/opt/log_data'
      - '/data2/opt/log_data'
      - '/data3/opt/log_data'
      replica: 1
      tx_service:
      # tx service 安装节点,可以是多个,但不能重复
      host:
      - 127.0.0.1
      storage_service:
      cassandra:
      download_url: 'https://dlcdn.apache.org/cassandra/4.1.3/apache-cassandra-4.1.3-bin.tar.gz'
      storage_cluster: 'mono-cass-cluster'
      host:
      - 127.0.0.1
      monitor:
      data_dir: ''
      eloq_metrics:
      path: '/mono_metrics'
      port: 18081
      prometheus:
      download_url: 'https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gz'
      port: 9500
      host: '127.0.0.1'
      grafana:
      download_url: 'https://dl.grafana.com/oss/release/grafana-9.3.6.linux-amd64.tar.gz'
      port: 3301
      host: '127.0.0.1'
      node_exporter: 'https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz'
      node_exporter_port: 9200
      mysql_exporter: 'https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz'
      mysql_exporter_port: 9300
      cassandra_collector:
      mcac_agent: 'https://github.com/datastax/metric-collector-for-apache-cassandra/releases/download/v0.3.4/datastax-mcac-agent-0.3.4-4.1-beta1.tar.gz'
      mcac_port: 9103
  • 启动集群

    cluster_mgr launch --topology-file ${PWD}/config/deployment.yaml
  • 访问集群

    • 访问 EloqSQL 数据库,默认情况下,mysql安装在/data/opt/mono-poc/eloq-tx-service-release/install/下,进入到该目录下,使用 socket 方式来连接数据库。更多连接方式请参考客户端连接
      cd /data/opt/mono-poc/eloq-tx-service-release/install/
      sudo ./bin/mysql -u root -S /tmp/mysql3300.sock
      CREATE USER 'sysb'@'%' IDENTIFIED BY 'sysb';
      GRANT ALL PRIVILEGES ON * . * TO 'sysb'@'%';
      FLUSH PRIVILEGES;
    • 执行以下命令可以查看集群的状态:
      ./cluster_mgr status --cluster $CLUSTER_NAME

批量导入数据

mydumper

推荐使用 mydumper 导出/导入数据.

# for ubuntu20.04
wget https://d44nokjo5ywh8.cloudfront.net/mydumper/mydumper_focal.tar.gz
# for ubuntu22.04
wget https://d44nokjo5ywh8.cloudfront.net/mydumper/mydumper_jammy.tar.gz

tar -xzvf mydumper.tar.gz
cd mydumper

# edit your config
vim eloq.cnf

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PWD}/lib
./mydumper --defaults-file ./eloq.cnf --outputdir exported
./myloader --defaults-file ./eloq.cnf --directory exported

mono_load.py

你也可以使用脚本导入, mono_load.py 是 EloqSQL 的数据批量加载工具,其运行依赖 python3 通过以下命令安装其运行时依赖

sudo apt install python3 -y
sudo apt install python3-pip -y
sudo pip3 install chardet
sudo pip3 install mysql-connector

请根据当前的安装环境将下列参数修改正确

python3 mono_load.py --help
python3 mono_load.py -h $MYSQL_HOST -U $MYSQL_USER \
-P $MYSQL_PASSWORD -d $MYSQL_DB -w $WORKER_NUMBER -f $CSV_FILE

更多探索