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

腾讯云TDSQL独立部署最佳实践

云贝学院 2021-04-19
2115

点击上方蓝字关注我们吧


崔鹏

中国首批PGCM大师,PostgreSQL官方认证讲师 ,拥有PostgreSQL数据库管理高级工程师(PGCM)、MySQL 5.7/8.0 OCP、Oracle 11g OCM等证书。



创建四台云主机或者本地四台Centos7.6的VM虚拟机

(四台云主机)

1、环境规划

主机名称

IP地址

(公/内网)

部署服务

tdsql1

82.156.173.237

172.21.0.5

zk1,kafka1,proxy1,db1

tdsql2

82.156.174.245

172.21.0.6

zk2,kafka2,proxy2,db2,oss1,scheduler1,chitu1,monitor1,lvs

tdsql3

82.157.61.93

172.21.0.13

zk3,kafka3,proxy3,db3,oss2,scheduler2,chitu2,monitor2,lvs

tdsql4

82.156.165.88

172.21.0.15

ansible,hdfs,es,consumer


2、安装部署

2.1 设置主机名

分别在四台机器上执行

    hostnamectl set-hostname tdsql1
    hostnamectl set-hostname tdsql2
    hostnamectl set-hostname tdsql3
    hostnamectl set-hostname tdsql4

    2.2 设置主机名

      vim etc/hosts
      172.21.0.5 tdsql1
      172.21.0.6 tdsql2
      172.21.0.13 tdsql3
      172.21.0.15 tdsql4

      2.3 设置NTP时间同步

        以tdsql1为主时钟服务器,tdsql2,tdsql3,tdsql4向tdsql1做时间校准
        [root@tdsql1 ~]# vim etc/ntp.conf
        server 127.127.1.0 iburst

          [root@tdsql1 ~]# systemctl restart ntpd.service  #重启时钟同步服务


          2.4 配置tdsql2 3 4时钟同步

            [root@tdsql2 ~]# vim etc/ntp.conf
            server 172.21.0.5
            restrict 172.21.0.5 mask255.255.255.0 nomodify notrap




            [root@tdsql3 ~]# vim etc/ntp.conf
            server 172.21.0.5
            restrict 172.21.0.5 mask255.255.255.0 nomodify notrap




            [root@tdsql4 ~]# vim etc/ntp.conf
            server 172.21.0.5
            restrict 172.21.0.5 mask255.255.255.0 nomodify notrap

              systemctl restart ntpd.service  #在tdsql2 3 4主机上重启NTP服务。
              ntpdate -u 172.21.0.5 #在tdsql2 3 4主机上同步一次tdsql1主机时间。


              2.5 配置免密登录

              (管理机 172.21.0.15 tdsql4上操作)

                ssh-keygen -t rsa
                ssh-copy-id 172.21.0.5
                ssh-copy-id 172.21.0.6
                ssh-copy-id 172.21.0.13
                ssh-copy-id 172.21.0.15


                在tdsql4上执行验证是否成功配置了免密登录。

                  ssh tdsql1 
                  ssh tdsql2
                  ssh tdsql3
                  ssh tdsql4


                  2.6 准备数据目录路径

                  (所有机器 tdsql1 tdsql2 tdsql3 tdsql4)

                    mkdir -p data
                    mkdir -p data1


                    2.7 上传/下载ansible/tdsql安装包

                    下载tdsql4管理主机上

                      [root@tdsql4 ~]# mkdir tdsql
                      [root@tdsql4 ~]# cd tdsql
                      wget https://tencent-cloud-product-release-1234567.cos.ap-guangzhou.myqcloud.com/TDSQL-release/V10.3.14.6.0%20D014/ansible_tdsql_install_20200623.zip
                      wget https://tencent-cloud-product-release-1234567.cos.ap-guangzhou.myqcloud.com/TDSQL-release/V10.3.14.6.0%20D014/tdsql_packet_10.3.14.6.0_x86_D014.zip


                      2.8 初始化机器环境

                        [root@tdsql4 tdsql]# cd tdsql/
                        [root@tdsql4 tdsql]# unzip ansible_tdsql_install_20200623.zip
                        [root@tdsql4 tdsql]# cd ansible_install/script/


                        2.8.1 安装yum源

                          [root@tdsql4 tdsql]# sh init_os_for_yum_install.sh


                          2.8.2 安装python3

                            [root@tdsql4 tdsql]# sh install_python3_for_x86.sh
                            [root@tdsql4 tdsql]# source /etc/profile
                            [root@tdsql4 tdsql]# python3 --version


                            2.8.3 安装ansible

                              [root@tdsql4 tdsql]# sh install_ansible.sh


                              2.8.4 解压tdsql安装包

                                [root@tdsql4 tdsql]# cd /tdsql
                                [root@tdsql4 tdsql]# unzip tdsql_packet_10.3.14.6.0_x86_D014.zip


                                2.9 修改 tdsql_hosts配置文件

                                  [root@tdsql4 tdsql]# mv tdsql/tdsql_install/tdsql_hosts tdsql/tdsql_install/tdsql_hosts.bak #备份配置文件。
                                  [root@tdsql4 tdsql]# vim tdsql/tdsql_install/tdsql_hosts #重新创建配置文件。


                                  ==================复制内容===================

                                    [tdsql_allmacforcheck]
                                    tdsql_tdsql1 ansible_ssh_host=172.21.0.5
                                    tdsql_tdsql2 ansible_ssh_host=172.21.0.6
                                    tdsql_tdsql3 ansible_ssh_host=172.21.0.13
                                    tdsql_tdsql4 ansible_ssh_host=172.21.0.15




                                    [tdsql_zk]
                                    tdsql_zk1 ansible_ssh_host=172.21.0.5
                                    tdsql_zk2 ansible_ssh_host=172.21.0.6
                                    tdsql_zk3 ansible_ssh_host=172.21.0.13




                                    [tdsql_scheduler]
                                    tdsql_scheduler1 ansible_ssh_host=172.21.0.6
                                    tdsql_scheduler2 ansible_ssh_host=172.21.0.13




                                    [tdsql_oss]
                                    tdsql_oss1 ansible_ssh_host=172.21.0.6
                                    tdsql_oss2 ansible_ssh_host=172.21.0.13




                                    [tdsql_chitu]
                                    tdsql_chitu1 ansible_ssh_host=172.21.0.6
                                    tdsql_chitu2 ansible_ssh_host=172.21.0.13




                                    [tdsql_monitor]
                                    tdsql_monitor1 ansible_ssh_host=172.21.0.6
                                    tdsql_monitor2 ansible_ssh_host=172.21.0.13




                                    [tdsql_db]
                                    tdsql_db1 ansible_ssh_host=172.21.0.5
                                    tdsql_db2 ansible_ssh_host=172.21.0.6
                                    tdsql_db3 ansible_ssh_host=172.21.0.13




                                    [tdsql_proxy]
                                    tdsql_proxy1 ansible_ssh_host=172.21.0.5
                                    tdsql_proxy2 ansible_ssh_host=172.21.0.6
                                    tdsql_proxy3 ansible_ssh_host=172.21.0.13




                                    [tdsql_hdfs]
                                    tdsql_hdfs1 ansible_ssh_host=172.21.0.15




                                    [tdsql_lvs]
                                    tdsql_lvs1 ansible_ssh_host=172.21.0.6
                                    tdsql_lvs2 ansible_ssh_host=172.21.0.13




                                    [tdsql_kafka]
                                    tdsql_kafka1 ansible_ssh_host=172.21.0.5
                                    tdsql_kafka2 ansible_ssh_host=172.21.0.6
                                    tdsql_kafka3 ansible_ssh_host=172.21.0.13




                                    [tdsql_consumer]
                                    tdsql_consumer1 ansible_ssh_host=172.21.0.15




                                    [tdsql_es]
                                    tdsql_es1 ansible_ssh_host=172.21.0.15




                                    [tdsql_intercity]
                                    tdsql_intercity1 ansible_ssh_host=172.21.0.15




                                    [tdsql_newdb]
                                    tdsql_newdb1 ansible_ssh_host=1.1.1.1
                                    tdsql_newdb2 ansible_ssh_host=2.2.2.2
                                    tdsql_newdb3 ansible_ssh_host=3.3.3.3




                                    [tdsql_ansible_test]
                                    tdsql_ansible_test1 ansible_ssh_host=1.1.1.1
                                    tdsql_ansible_test2 ansible_ssh_host=2.2.2.2
                                    tdsql_ansible_test3 ansible_ssh_host=3.3.3.3


                                    ==================复制内容===================

                                    2.10 修改 ansible 配置

                                      [root@tdsql4group_vars]#mv/tdsql/tdsql_install/group_vars/all tdsql/tdsql_install/group_vars/all.bak #备份all配置文件
                                      vim tdsql/tdsql_install/group_vars/all #创建配置文件


                                      ==================复制内容===================

                                        tdsql_env_cpu: x86
                                        tdsql_env_os: yum_install
                                        tdsql_zk_num: 3
                                        tdsql_sche_netif: eth0
                                        tdsql_os_pass: a+complex+password
                                        tdsql_zk_rootdir: tdsqlzk




                                        tdsql_metadb_ip: 172.21.0.5
                                        tdsql_metadb_port: 15001
                                        tdsql_metadb_ip_bak: 172.21.0.6
                                        tdsql_metadb_port_bak: 15001
                                        tdsql_metadb_user: tdsqlpcloud
                                        tdsql_metadb_password: tdsqlpcloud




                                        tdsql_hdfs_num: 1
                                        tdsql_hdfs_ssh: 22
                                        tdsql_hdfs_datadir: data2/hdfs,/data3/hdfs,/data4/hdfs
                                        tdsql_hdfsdatadir_count: 3




                                        tdsql_kafka_logdir: data2/kafka,/data3/kafka,/data4/kafka




                                        tdsql_es_mem: 2
                                        tdsql_es_log_days: 7
                                        tdsql_es_base_path: data/application/es-install/es




                                        tdsql_intercity_zkrootdir: tdsqlcross
                                        tdsql_intercity_netif: eth0




                                        tdsql_zk_clientport: 2118
                                        tdsql_zk_serverport1: 2338
                                        tdsql_zk_serverport2: 2558




                                        tdsql_oc_server_pass: K2JatUv5llBbMrske/k2YbqC
                                        tdsql_oc_client_pass: LGhVs0v5nVxcOLQie/k9bb2I
                                        tdsql_clouddba_metadb_pass: h5Wyg2Xy
                                        tdsql_oss_metadb_pass: q9Cjn0Wl


                                        ==================复制内容===================

                                        2.11 安装ZooKeeper

                                        安装大概需要15-25分钟。

                                        本步骤完成后,赤兔平台即安装完成。

                                          [root@tdsql4 group_vars] cd tdsql/tdsql_install
                                          [root@tdsql4 group_vars] sh playbooks/tdsql_encrypt.sh
                                          [root@tdsql4 group_vars] ansible-playbook -i tdsql_hosts playbooks/tdsql_part1_site.yml


                                          Failed=0都为0表示安装过程中没有错误。

                                          注意:如果遇到异常信息可以到tdsql4主机cat var/log/ansible.log路径下查看日志


                                          3、配置赤兔

                                          赤兔平台tdsql2 tdsql3主机,通过腾讯云服务器管理页面确认下,公网IP地址,访问赤兔平台初始化页面。

                                          网页访问安装赤兔模块的机器地址,进行赤兔初始化。

                                          http://82.157.61.93/tdsqlpcloud


                                          3.1 环境检测

                                          全部显示通过,点击下一步。


                                          3.2 集群接入

                                          填写,集群名称,OSS服务列表(tdsql2、tdsql3的内网IP地址),点击测试服务器连接。

                                          安装向导会自动补齐,Zookeeper列表Zookeeper节点信息,并显示集群信息。点击下一步。


                                          3.3 集群初始化

                                          集群初始化需要配置5类资源。


                                          3.3.1 IDC

                                          IDC推荐命名规则:

                                          IDC_城市名首字母_区名首字母_机房编号_序号


                                          3.3.2 机型规格

                                               

                                          注:数据磁盘大小:总磁盘容量的65%

                                              日志磁盘大小:总磁盘容量的25%

                                          注:机型名称:PROXY(必须为大写)


                                          3.3.3 设备资源

                                          3.3.3.1 上报网关资源


                                          3.3.3.2 上报DB资源


                                          3.3.4 网关组

                                          是否指定IP,此处选:否。会自动搜索出每个IDC中配置的网关IP。


                                          3.3.5 非分布式实例

                                          3.3.5.1 基础设置

                                          3.3.5.2 容灾设置

                                          3.3.5.3初始化数据库实例

                                          3.3.6 集群初始化完成后参考图

                                          3.4 为系统配置数据库

                                          密码:tdsqlpcloud


                                          3.5 登陆验证

                                          网页访问赤兔管理平台(使用谷歌浏览器)

                                          http://82.157.61.93/tdsqlpcloud

                                          赤兔管理员:admin/123456

                                          根据得到的连接参数,用 mysql 客户端测试一下赤兔监控库是否可以连接

                                            mysql -h172.21.0.5  -P15001 -utdsqlpcloud  -p'tdsqlpcloud'



                                            3.6 监控实例的proxy ip地址

                                            安装完赤兔后,获取到赤兔的监控实例的proxy ip地址,放到ansible的配置文件

                                              [root@tdsql4 tdsql_full_install_ansible]# vim tdsql/tdsql_install/group_vars/all




                                              metadb_ip: 172.21.0.5                 #赤兔监控库的proxy ip主
                                              metadb_port: 15001 #赤兔监控库的proxy port主
                                              metadb_ip_bak: 172.21.0.6 #赤兔监控库的proxy ip备
                                              metadb_port_bak: 15001 #赤兔监控库的proxy port备
                                              metadb_user: tdsqlpcloud #赤兔监控库的用户名
                                              metadb_password: tdsqlpcloud #赤兔监控库的密码


                                              执行安装 part2_site.yml
                                              cd /tdsql/tdsql_install
                                              sh playbooks/tdsql_encrypt.sh     #生产密文密码,根据明文自动帮大家生成
                                              ansible-playbook -i tdsql_hosts playbooks/tdsql_part2_site.yml


                                              4、其它组件安装

                                              4.1 HDFS安装

                                              1.在dfs 机器上设置主机名

                                                [root@tdsql4 tdsql_install]# vim etc/hosts
                                                172.21.0.15 tdsql4



                                                2.检查 tdsql_hosts 文件

                                                  [root@tdsql4 tdsql_install]# vim tdsql_hosts


                                                  [hdfs]
                                                  hdfs1 ansible_ssh_host=172.21.0.15

                                                  本实验hdfs采用伪分布式安装,只在tdsql4一台机器上安装hdfs。


                                                  3.修改 hdfs 变量

                                                    [root@tdsql4 tdsql_install]# vim tdsql/tdsql_install/group_vars/all
                                                    tdsql_hdfs_num: 1
                                                    tdsql_hdfs_ssh: 22
                                                    tdsql_hdfs_datadir: data2/hdfs,/data3/hdfs,/data4/hdfs
                                                    tdsql_hdfsdatadir_count: 3



                                                    4.hdfs目录及权限

                                                      [root@tdsql4 tdsql_install]# mkdir -p data2/hdfs
                                                      [root@tdsql4 tdsql_install]# mkdir -p data3/hdfs
                                                      [root@tdsql4 tdsql_install]# mkdir -p data4/hdfs
                                                      [root@tdsql4 tdsql_install]# chown -R tdsql:users data2
                                                      [root@tdsql4 tdsql_install]# chown -R tdsql:users data3
                                                      [root@tdsql4 tdsql_install]# chown -R tdsql:users data4



                                                      5.安装 hdfs 单点

                                                        [root@tdsql4 tdsql_install]# cd tdsql/tdsql_install
                                                        [root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_hdfs_single.yml


                                                        6.切换到 tdsql 用户

                                                          [root@tdsql4 tdsql_install]# su - tdsql



                                                          7.用 tdsql 用户在 hdfs1 机器上,格式化 namenode

                                                            [tdsql@tdsql4 ~]$ hdfs namenode -format

                                                            8.用 tdsql 用户在 hdfs1 机器上,启动 namenode 和 datanode

                                                              [tdsql@tdsql4 ~]$ hdfs --daemon start namenode
                                                              [tdsql@tdsql4 ~]$ hdfs --daemon start datanode




                                                              /*
                                                              附:用 tdsql 用户关闭 hdfs 进程
                                                              hdfs --daemon stop datanode
                                                              hdfs --daemon stop namenode
                                                              */



                                                              9.用 tdsql 用户执行以下命令

                                                                #查看/tdsqlbackup 目录是否已经被自动创建,权限是否如下
                                                                [tdsql@tdsql4 ~]$ hadoop fs -ls /


                                                                如果目录不在或者权限不对,用下面命令修改:
                                                                [tdsql@tdsql4 ~]$ hadoop fs -mkdir /tdsqlbackup
                                                                [tdsql@tdsql4 ~]$ hadoop fs -chown tdsql.supergroup /tdsqlbackup


                                                                查看所有datanode节点状态,及上报的容量情况
                                                                [tdsql@tdsql4 ~]$ hdfs dfsadmin -report



                                                                4.2 安装lvs

                                                                1.配置tdsql_hosts 文件

                                                                  vim tdsql_hosts


                                                                  [lvs]
                                                                  lvs1 ansible_ssh_host=172.21.0.5
                                                                  lvs2 ansible_ssh_host=172.21.0.6

                                                                  2.安装 lvs

                                                                    ansible-playbook -i tdsql_hosts playbooks/tdsql_lvs.yml


                                                                    3.赤兔前台操作 lvs

                                                                      上报 lvs 机器信息(2 台 lvs 机器信息都要上报)
                                                                      接入层管理--> LVS设备资源管理-->上报[LVS设备资源]
                                                                      进入虚拟机,查看网卡信息:
                                                                      ifconfig -a
                                                                      inet 172.21.0.5 netmask 255.255.240.0 #子网掩码:20




                                                                      创建 VIP
                                                                      VIP:规划一个 vip 的地址,vip 的地址要和 lvs 机器的通信 ip 地址在同一个网段内。
                                                                      设备 IP 列表:填入 lvs 机器的通信 ip 地址,一行一个


                                                                      4.3 安装kafka

                                                                      1.检查 tdsql_hosts 文件

                                                                        [root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/tdsql_hosts


                                                                        [kafka]
                                                                        kafka1 ansible_ssh_host=172.21.0.5
                                                                        kafka2 ansible_ssh_host=172.21.0.6
                                                                        kafka3 ansible_ssh_host=172.21.0.13


                                                                        2.修改多源同步变量

                                                                          [root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/group_vars/all
                                                                          kafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka


                                                                          3.执行安装多源同步

                                                                            [root@tdsql4 tdsql_install]# cd /tdsql/tdsql_install
                                                                            [root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_kafka.yml


                                                                            4.验证是否安装成功

                                                                              [root@tdsql1 ~]# cat /data/application/kafka/logs/server.log   ----查看 kafka 启动信息
                                                                              [root@tdsql2 ~]# cat /data/application/kafka/logs/server.log ----查看 kafka 启动信息
                                                                              [root@tdsql3 ~]# cat /data/application/kafka/logs/server.log ----查看 kafka 启动信息


                                                                              4.4 安装 consumer

                                                                              1.配置 tdsql_hosts 文件

                                                                                [root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/tdsql_hosts


                                                                                [consumer]
                                                                                consumer1 ansible_ssh_host=172.21.0.15


                                                                                2.执行安装 consumer

                                                                                  [root@tdsql4 tdsql_install]# cd /tdsql/tdsql_install
                                                                                  [root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_consumer.yml


                                                                                  3.启动消费者服务

                                                                                  在 consumer 的机器上,使用下面命令启动消费者服务

                                                                                    [root@tdsql4 tdsql_install]# cd /data/application/consumer/bin/
                                                                                    [root@tdsql4tdsql_install]#./binlogconsumermgn--zklist 172.21.0.5:2118,172.21.0.6:2118,172.21.0.13:2118 --zkrootpath /tdsqlzk --kafkazklist 172.21.0.5:2118,172.21.0.6:2118,172.21.0.13:2118 --kafkazkrootpath /kafka --dev eth0


                                                                                    4.5 安装ES

                                                                                    1.配置tdsql_hosts 文件(不能与赤兔同一台机器)

                                                                                      [root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/tdsql_hosts


                                                                                      [es]
                                                                                      es1 ansible_ssh_host=172.21.0.15


                                                                                      2.修改变量文件

                                                                                        [root@tdsql4 tdsql_install]# vim /tdsql/tdsql_install/group_vars/all
                                                                                        es_mem: 2
                                                                                        es_log_days: 7
                                                                                        es_base_path: /data/application/es-install/es


                                                                                        3.执行安装 es

                                                                                          [root@tdsql4 tdsql_install]# cd /tdsql/tdsql_install
                                                                                          [root@tdsql4 tdsql_install]# ansible-playbook -i tdsql_hosts playbooks/tdsql_es_single.yml


                                                                                          4.启动命令(在 es 机器上操作):

                                                                                            [root@tdsql4 tdsql_install]# source /etc/profile


                                                                                            tdsql 用户启动:

                                                                                              [root@tdsql4 tdsql_install]# su - tdsql
                                                                                              [root@tdsql4 tdsql_install]# source /etc/profile
                                                                                              [root@tdsql4 tdsql_install]# cd /data/application/es-install/es/master/tools
                                                                                              [root@tdsql4 tdsql_install]# nohup ./start-elasticsearch.sh &




                                                                                              [root@tdsql4 tdsql_install]# cd /data/application/es-install/es/data/tools
                                                                                              [root@tdsql4 tdsql_install]# nohup ./start-elasticsearch.sh &


                                                                                              root 用户启动:

                                                                                                [tdsql@tdsql4 tools]$ exit
                                                                                                [root@tdsql4 tdsql_install]# cd /data/application/es-install/logstash/tools
                                                                                                [root@tdsql4 tdsql_install]# nohup ./start-logstash.sh &




                                                                                                [root@tdsql4 tdsql_install]# cd /data/application/es-install/es-cleaner
                                                                                                [root@tdsql4 tdsql_install]# nohup ./start-es-cleaner.sh &




                                                                                                [root@tdsql4 tdsql_install]# cd /data/application/es-install/kibana-5.6.4-linux-x86_64/bin
                                                                                                [root@tdsql4 tdsql_install]# nohup ./kibana &


                                                                                                5.检测是否正常启动

                                                                                                  ps -ef |grep elasticsearch | grep -v 'grep' |wc -l
                                                                                                  输出为:4
                                                                                                  ps -ef |grep logstash | grep -v 'grep' |wc -l
                                                                                                  输出为:2
                                                                                                  ps -ef |grep es-cleaner | grep -v 'grep' |wc -l
                                                                                                  输出为:1
                                                                                                  ps -ef |grep 'node/bin/node' | grep -v 'grep' |wc -l
                                                                                                  输出为:1




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

                                                                                                  评论