zoukankan      html  css  js  c++  java
  • 腾讯数据库tdsql部署与验证

    环境准备

    | 主机   | IP            | 配置(最低要求配置) |
    | :----- | ------------- | ------------------ |
    | node-1 | 192.168.1.81  | 8核16G             |
    | node-2 | 192.168.1.160 | 8核16G             |
    | node-3 | 192.168.1.202 | 8核16G             |
    

    自己整理的文档和部署包[7天有效期]:

    链接:https://pan.baidu.com/s/1eRUhNzbrNQT2vqy1XPe-hQ 
    提取码:1234 
    复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V5的分享
    

    物料包准备

    tdsql_full_install_ansible_10.3.14.1.0_D002.zip
    TDSQL私有云部署手册 151.doc
    每个服务器准备2块额外磁盘用于HDFS

    配置要求:

    测试环境:

    至少需要3台机器来搭建一个最小的TDSQL集群(2台物理机用于DB、1台虚拟机用于调度和运营体系部署)

    组件 机器数 机器配置(CPU/内存/磁盘) 备注
    zookeeper 1台 虚拟机 2C/4G/100G
    keeper 0台 虚拟机 2C/4G/100G 可以与zookeeper同机部署
    oss 0台 虚拟机 2C/4G/100G 可以与zookeeper同机部署
    DB 2台 物理机 8C/16G/500GSSD
    Proxy 0台 物理机 2C/4G/100G 可以与db机器同机部署
    monitor 0台 虚拟机 2C/4G/100G 可以与zookeeper同机部署
    chitu 0台 虚拟机 2C/4G/100G 可以与zookeeper同机部署
    hdfs(可选) 1台 物理机 4C/4G/1T 可选,磁盘容量看具体需求
    LVS(可选) 2台 物理机2C/4G/100G 可选
    es 1台 虚拟机 2C/4G/100G
    kafka 3台 虚拟机 2C/4G/100G 加载java虚拟机的时候会吃掉3个g

    正式环境:

    组件 机器数 机器配置(CPU/内存/磁盘) 备注
    zookeeper 3台/5台 虚拟机8C/16G/500G
    keeper 0台 虚拟机8C/16G/500G 可以与oss同机部署
    oss 2台 虚拟机8C/16G/500G
    DB 3*n台 物理机 32C/64G/1T SSD 一主两备,机器配置看具体需求
    Proxy 3台 物理机8C/16G/500G 可以与DB机器同机部署,机器配置看具体需求
    monitor 3台 虚拟机 8C/16G/500G 可以与zookeeper同机部署
    chitu 2台 虚拟机 8C/16G/500G 可以与zookeeper同机部署
    hdfs(可选) 3台 物理机8C/8G/12T 可选,磁盘容量看具体需求
    LVS(可选) 2台 物理机8C/16G/500G 可选
    kafka(可选) 3台 物理机8C/16G/2T 多源同步组件,万兆网卡
    consumer(可选) 1台 物理机8C/16G/500G 多源同步组件,可与kafka混部
    es 1台 物理机8C/16G/500G

    当前环境规划:

    模块 192.168.1.81 192.168.1.160 192.168.1.202
    zk Y Y Y
    scheduler Y Y
    oss Y Y
    chitu Y Y
    monitor(采集监控) Y Y
    db Y Y
    proxy Y Y
    hdfs Y

    TDSQL部署

    免密配置

    ssh-keygen -f ~/.ssh/id_rsa -N ''
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.81
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.160
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.202
    

    解包

    #解包
    unzip tdsql_full_install_ansible_10.3.14.1.0_D002.zip
    
    #执行pythin脚本安装ansible
    cd tdsql_full_install_ansible
    python settings/install_ansible.py
    
    
    #格式化数据盘,新建data1目录[所有机器]
    mkfs.xfs -f /dev/sdb
    mkdir -p /data1
    mount /dev/sdb /data1
    

    修改配置:

    #vim group_vars/all (修改网卡名和数据库密码)
    sed -i 's/netif_name: .*$/netif_name: eth0/'  group_vars/all 
    sed -i 's/tdsql_pass: .*$/tdsql_pass: a+complex+123456/' group_vars/all 
    sh -x encrypt.sh
    

    修改tdhost文件:

    [root@node-1 tdsql_full_install_ansible]# pwd
    /root/tdsql_full_install_ansible
    
    cat tdsql_hosts
    #-------------------------------------------------------------#
    [envcheck]
    mac1 ansible_ssh_host=192.168.1.81
    mac2 ansible_ssh_host=192.168.1.160
    mac3 ansible_ssh_host=192.168.1.202
    
    [zk]
    zk1 ansible_ssh_host=192.168.1.81
    zk2 ansible_ssh_host=192.168.1.202
    zk3 ansible_ssh_host=192.168.1.160
    
    [scheduler]
    scheduler1 ansible_ssh_host=192.168.1.202
    scheduler2 ansible_ssh_host=192.168.1.160
    
    [oss]
    oss1 ansible_ssh_host=192.168.1.202
    oss2 ansible_ssh_host=192.168.1.160
    
    [chitu]
    chitu1 ansible_ssh_host=192.168.1.202
    chitu2 ansible_ssh_host=192.168.1.160
    
    [monitor]
    monitor1 ansible_ssh_host=192.168.1.202
    monitor2 ansible_ssh_host=192.168.1.160
    
    [db]
    db1 ansible_ssh_host=192.168.1.202
    db2 ansible_ssh_host=192.168.1.160
    
    [proxy]
    proxy1 ansible_ssh_host=192.168.1.202
    proxy2 ansible_ssh_host=192.168.1.160
    
    [hdfs]
    hdfs1 ansible_ssh_host=192.168.1.160
    
    [es]
    es1 ansible_ssh_host=192.168.1.81
    
    [newdb]
    newdb1 ansible_ssh_host=1.1.1.1
    newdb2 ansible_ssh_host=2.2.2.2
    newdb3 ansible_ssh_host=3.3.3.3
    #-------------------------------------------------------------#
    

    设置tdsql明文密码

    #假定我们给tdsql账号设置的明文密码为:a+complex+123456
    
    cat group_vars/all
    ---
    zk_num: 3                                       #<---填入zk集群的数量,1、3或者5
    netif_name: eth0                                #<---填入scheduler(ifconfig看到的)网卡的名称
    tdsql_pass: a+complex+123456                    #<---填入tdsql账号的明文密码
    zk_rootdir: /tdsqlzk2                           #<---填入tdsql系统在zk上的根路径(一般不改)
    
    metadb_ip: 1.1.1.1                              #<-----暂时不改动
    metadb_port: 15001                              #<-----暂时不改动
    metadb_ip_bak: 2.2.2.2                          #<-----暂时不改动
    metadb_port_bak: 15001                          #<-----暂时不改动
    metadb_user: tdsql_hanlon                       #<-----暂时不改动
    metadb_password: 123456                         #<-----暂时不改动
    
    ssh_port: 22                                    #<-----暂时不改动
    hdfs_datadir: /data1/hdfs                       #<-----暂时不改动
    
    kafka_logdir: /data1/kafka                      #<-----暂时不改动
    
    es_mem: 8                                       #<-----暂时不改动
    es_log_days: 7                                  #<-----暂时不改动
    es_base_path: /data/application/es-install/es   #<-----暂时不改动
    
    tdsql_secret_pass: K2JatUv5llBbMrske/k2YbqC     #<-------密文密码,自动更新,切勿手动更改
    oc_secret_pass: LGhVs0v5nVxcOLQie/k9bb2I        #<-------密文密码,自动更新,切勿手动更改
    clouddba_metadb_pass: h5Wyg2Xy                  #<-------密文密码,自动更新,切勿手动更改
    
    
    
    ---
    zk_num: 3
    netif_name: eth0
    tdsql_pass: a+complex+123456
    zk_rootdir: /tdsqlzk2
    
    metadb_ip: 1.1.1.1
    metadb_port: 15001
    metadb_ip_bak: 2.2.2.2
    metadb_port_bak: 15001
    metadb_user: tdsql_hanlon
    metadb_password: 123456
    
    ssh_port: 22
    hdfs_datadir: /data1/hdfs
    
    kafka_logdir: /data1/kafka
    
    es_mem: 8
    es_log_days: 7
    es_base_path: /data/application/es-install/es
    
    tdsql_secret_pass: K2JatUv5llBbMrske/k2YbqC
    oc_secret_pass: LGhVs0v5nVxcOLQie/k9bb2I
    clouddba_metadb_pass: h5Wyg2Xy
    

    部署

    #vim group_vars/all (修改网卡名和数据库密码)
    sed -i "s/netif_name:.*/netif_name: eth0/"  group_vars/all 
    sed -i "s/tdsql_pass:.*/tdsql_pass: a+complex+123456/" group_vars/all
    
    #安装zk:
    #使用tdsql安装的zk
    sh -x encrypt.sh
    ansible-playbook -i tdsql_hosts part1_site.yml
    
    
    #访问任意节点:
    [root@node-1 tdsql_full_install_ansible]# grep chitu tdsql_hosts
    [chitu]
    chitu1 ansible_ssh_host=192.168.1.202
    chitu2 ansible_ssh_host=192.168.1.160
    

    集群配置

    集群初始化

    添加机房

    添加机型规格

    proxy机型并非实际用到的 这里随便怎么写都行

    添加TS80机型为后续数据库使用的机型,配置如下

    mkfs.xfs /dev/sdb
    mkdir /data1
    mount  /dev/sdb /data1
    
    TS80机型配置:
    
    数据磁盘目录:
    	建议是: /data1/tdengine/data
    
    日志磁盘目录:
    	建议是: /data1/tdengine/log
    
    安装包目录:
    	/data/home/tdsql/tdsqlinstall,固定不变
    
    数据库安装目录:
    	/data/tdsql_run,固定不变
    	
    数据磁盘与日志磁盘大小比例为 3:1
    

    设备资源添加

    上报网关资源

    这里添加了3个网关资源并且对应了2个IDC,在组成网关组的时候可以选择2个IDC取3个服务器

    上传DB资源:

    192.168.1.81 192.168.1.160 划分到机房1 192.168.1.202划分到机房2 用于组成集群,并设置了3个网关

    因为目前两个机房有3台服务器,上报资源时上报了2个DB服务器所以可以从2个机房取2台服务器

    开始创建:

    初始化完成后直接下一步:

    安装完成会直接跳转到登录页面:
    http://192.168.1.160/tdsqlpcloud

    测试tdsql连接

    mysql -utdsqlpcloud -h192.168.1.160 -P15065 -p'123456'
    
    
    [root@node-1 tdsql_full_install_ansible]# mysql -utdsqlpcloud -h192.168.1.160 -P15065 -p'123456'
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MySQL connection id is 3648
    Server version: 5.7.17-11-V2.0R540D002-20191226-1152-log Source distribution
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MySQL [(none)]> 
    

    测试mysql连接无误,将连接账号密码写入到 group_vars/all 文件中

    ---
    zk_num: 3
    netif_name: eth0
    tdsql_pass: a+complex+123456
    zk_rootdir: /tdsqlzk2
    
    metadb_ip: 192.168.1.160                  #主库IP
    metadb_port: 15065                        #主库端口
    metadb_ip_bak: 192.168.1.202              #从库IP
    metadb_port_bak: 15065                    #从库端口
    metadb_user: tdsqlpcloud                  #数据库连接账号
    metadb_password: 123456                   #数据库连接密码
    
    ssh_port: 36000
    hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs
    
    kafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka
    
    es_mem: 8
    es_log_days: 7
    es_base_path: /data/application/es-install/es
    
    tdsql_secret_pass: S8dfgSoMUjGaUn+EHkm3pA==
    oc_secret_pass: TM1QhyoMWT2dWHCCHkm8qA==
    clouddba_metadb_pass: h5Wyg2Xy
    

    执行安装part2_site.yml

    #安装大约4分钟左右,日志路径/var/log/ansible.log,最终显示failed任务数为0表示安装成功。
    sh -x encrypt.sh			<---------必须执行,更新密文密码
    ansible-playbook -i tdsql_hosts part2_site.yml
    
    
    #找到安装了 scheduler 的服务器并执行:
    [root@node-1 tdsql_full_install_ansible]# grep scheduler tdsql_hosts
    [scheduler]
    scheduler1 ansible_ssh_host=192.168.1.202
    scheduler2 ansible_ssh_host=192.168.1.160
    
    
    # ssh 192.168.1.202
    cd /data/application/scheduler/bin
    ./agent_config --mode modify --option="ocagent_port" --value="8966"
    ./agent_config --mode modify --option="hadoop_dir" --value=" /data/home/tdsql/hadoop-3.2.1/bin"
    
    
    #执行结果:
    [root@node-1 tdsql_full_install_ansible]# ssh 192.168.1.202
    Last login: Tue Feb 23 16:57:56 2021 from 192.168.1.81
    [root@localhost ~]# cd /data/application/scheduler/bin
    [root@localhost bin]# ./agent_config --mode modify --option="ocagent_port" --value="8966"
    zookeeper timeout:10000 msec,msg timeout 30000 msec
    zookeeper path:/tdsqlzk2/configs/agent@global
    zookeeper value:{
       "hadoop_dir" : "/data/home/tdsql/hadoop-3.2.1/bin",
       "ocagent_port" : "8966"
    }
    
    operation success!
    [root@localhost bin]# ./agent_config --mode modify --option="hadoop_dir" --value=" /data/home/tdsql/hadoop-3.2.1/bin"
    zookeeper timeout:10000 msec,msg timeout 30000 msec
    zookeeper path:/tdsqlzk2/configs/agent@global
    zookeeper value:{
       "hadoop_dir" : " /data/home/tdsql/hadoop-3.2.1/bin",
       "ocagent_port" : "8966"
    }
    
    operation success!
    

    安装备用赤兔:

    将已初始化的chitu机器上拷贝2个文件到未初始化的chitu机器上,并删除未初始化chitu机器上的crontab,如下:
    192.168.1.202	已初始化chitu
    192.168.1.160	未初始化chitu
    
    (1)在202机器上,拷贝文件到160机器上
    scp -p /data/website/tdsqlpcloud/www/config/database.php 192.168.1.160:/data/website/tdsqlpcloud/www/config/
    scp -p /data/website/tdsqlpcloud/www/config/install.lock 192.168.1.160:/data/website/tdsqlpcloud/www/config/
    
    (2)删除160机器上nginx用户的crontab
    [root@localhost bin]# ssh 192.168.1.160
    [root@localhost ~]# cp -a /var/spool/cron/nginx /data/tools/nginx_cron_bak
    [root@localhost ~]# rm -f /var/spool/cron/nginx
    
    (3)测试,登录205的chitu
    http://192.168.1.160/tdsqlpcloud
    

    安装HDFS服务

    由于磁盘前面已经添加并格式化过,这里不用操作了
    
    #需要安装hdfs的服务器修改主机名[必须修改,因为我们的主机名存在 - 线 需要改成没有特殊符号的]
    
    #修改 tdsql_hosts 文件,将需要安装hdfs服务的服务器添加上去,这里就添加3台hdfs
    vim tdsql_hosts 新增hdfs配置:
    
    [hdfs]
    hdfs1 ansible_ssh_host=192.168.1.81
    hdfs2 ansible_ssh_host=192.168.1.160
    hdfs3 ansible_ssh_host=192.168.1.202
    
    
    
    #安装hdfs单点[适用于低配服务器]:
    
    #执行安装
    ansible-playbook -i tdsql_hosts hdfs_single.yml
    
    #切换到tdsql用户
    su - tdsql
    
    #用tdsql用户在hdfs1机器上,格式化namenode
    hdfs namenode -format
    
    #用tdsql用户在hdfs1机器上,启动namenode和datanode
    hdfs --daemon start namenode
    hdfs --daemon start datanode
    
    #附:用tdsql用户关闭hdfs进程
    hdfs --daemon stop datanode
    hdfs --daemon stop namenode
    
    
    
    
    #安装hdfs高可用安装启动
    
    #在安装时需要保证主机名修改了
    #[本文用多点,配置不高就用单点如果hdfs多点,那么zk服务也需要是多点,因为之前配置的zk就是多点,这里就可以继续安装多点hdfs,否则安装单点]:
    
    #每台服务器需要主机名不同 设置方法: hostnamectl set-hostname node1
    ansible-playbook -i tdsql_hosts hdfs.yml
    
    #初始化HDFS:
    #用tdsql用户在hdfs1机器,格式化zk
    hdfs zkfc -formatZK
    
    #用tdsql用户在所有机器,启动journalnode
    hdfs --daemon start journalnode
    
    #用tdsql用户在hdfs1机器,格式化并启动namenode
    hdfs namenode -format
    hdfs --daemon start namenode
    
    #用tdsql用户在hdfs2机器,格式化namenode
    hdfs namenode -bootstrapStandby
    
    
    
    #------------------------------启动hdfs集群------------------------------#
    #用tdsql用户在hdfs1机器,格式化并启动 zk
    su - tdsql
    hdfs zkfc -formatZK   #格式化只能一次
    
    #所有机器启动 journalnode
    hdfs --daemon start journalnode
    
    #在hdfs1和hdfs2上启动namenode
    hdfs --daemon start namenode
    
    #在hdfs1和hdfs2上启动zkfc
    hdfs --daemon start zkfc
    
    #在所有hdfs机器上启动datanode
    hdfs --daemon start datanode
    #------------------------------启动hdfs集群------------------------------#
    
    
    
    #------------------------------停止hdfs集群------------------------------#
    在所有hdfs机器上关闭datanode
    hdfs --daemon stop datanode
    
    在hdfs1和hdfs2上关闭zkfc
    hdfs --daemon stop zkfc
    
    在hdfs1和hdfs2上关闭namenode
    hdfs --daemon stop namenode
    
    在所有hdfs机器上关闭journalnode
    hdfs --daemon stop journalnode
    #------------------------------停止hdfs集群------------------------------#
    
    
    # hdfs haadmin -getAllServiceState 命令执行失败尝试:
    hdfs --daemon stop namenode
    hdfs --daemon stop journalnode
    hdfs --daemon start namenode
    hdfs --daemon start journalnode
    hdfs dfsadmin -report
    hdfs haadmin -getAllServiceState
    

    在hdfs集群下查看/tdsqlbackup路径

    (7)在hdfs集群下查看/tdsqlbackup路径
    用tdsql用户执行以下命令
    su -  tdsql
    
    #查看/tdsqlbackup目录是否已经被自动创建,权限是否是:tdsql supergroup 
    hadoop fs -ls / 
    drwxr-xr-x   - tdsql supergroup          0 2019-01-02 17:52 /tdsqlbackup
    
    #如果目录不在或者权限不对,用下面命令修改:
    hadoop fs -mkdir /tdsqlbackup
    hadoop fs -chown tdsql.supergroup /tdsqlbackup
    

    检查HDFS端口并补充到 group_vars/all 文件中

    如果是3节点的hdfs架构,如上图所示填写namenode节点(一般2个)的50070端口
    
     /data2/hdfs /data3/hdfs /data4/hdfs
     将这些信息填写到all文件中
     
     hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs
    

    自动化演练

    创建一个分布式实例:

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    You are not late! You are not early!
    在同一个服务器(同一个IP)为不同域名绑定的免费SSL证书
    Vue.js Is Good, but Is It Better Than Angular or React?
    It was not possible to find any compatible framework version
    VS增加插件 Supercharger破解教程
    Git使用ssh key
    Disconnected: No supported authentication methods available (server sent: publickey)
    VS 2013打开.edmx文件时报类型转换异常
    asp.net MVC4 框架揭秘 读书笔记系列3
    asp.net MVC4 框架揭秘 读书笔记系列2
  • 原文地址:https://www.cnblogs.com/superlinux/p/14451346.html
Copyright © 2011-2022 走看看