腾讯云TDSQL分布式数据库安装部署
########################
机器规划
########################
4台(CPU:4core/MEM:8G/HDD:100G)
172.17.16.2 mac1:zk1,kafka1,proxy1,db1
172.17.16.5 mac2:zk2,kafka2,proxy2,db2,oss1,scheduler1,chitu1,monitor1,lvs
172.17.16.11 mac3:zk3,kafka3,proxy3,db3,oss2,scheduler2,chitu2,monitor2,lvs
172.17.16.13 mac4:ansible,hdfs,es,consumer
#######################
TDSQL安装部署
#######################
1.设主机名
hostnamectl set-hostname mac1
hostnamectl set-hostname mac2
hostnamectl set-hostname mac3
hostnamectl set-hostname mac4
2.配置主机名
vim /etc/hosts
172.17.16.2 mac1
172.17.16.5 mac2
172.17.16.11 mac3
172.17.16.13 mac4
3.设置时间同步
以mac1为主时钟
[root@mac1 ~]# vim /etc/ntp.conf
server 127.127.1.0 iburst
systemctl restart ntpd.service
[root@mac2 ~]# vim /etc/ntp.conf
server 172.17.16.2
restrict 172.17.16.2 mask 255.255.240.0 nomodify notrap
systemctl restart ntpd.service
ntpdate -u 172.17.16.2
[root@mac3 ~]# vim /etc/ntp.conf
server 172.17.16.2
restrict 172.17.16.2 mask 255.255.240.0 nomodify notrap
systemctl restart ntpd.service
ntpdate -u 172.17.16.2
[root@mac4 ~]# vim /etc/ntp.conf
server 172.17.16.2
restrict 172.17.16.2 mask 255.255.240.0 nomodify notrap
systemctl restart ntpd.service
ntpdate -u 172.17.16.2
4.云上虚机安全组策略
入方:TCP:8080
入方:TCP:2181
入方:TCP:9870
5.配置免密登录(管理机 1172.17.16.13 上操作)
ssh-keygen -t rsa
ssh-copy-id 172.17.16.2
ssh-copy-id 172.17.16.5
ssh-copy-id 172.17.16.11
ssh-copy-id 172.17.16.13
6.准备数据目录路径(所有机器)
mkdir -p /data
mkdir -p /data1
7.上传并安装ansible
[root@mac3 ~]# mkdir /tdsql
[root@mac3 ~]# cd /tdsql
wget https://tencent-cloud-product-13453545.cos.ap-hangzhou.myqcloud.com/TDSQL-release/V10.3.14.6.0%22D018/ansible_20200821.zip
unzip ansible_tdsql_install_20200821.zip
cd ansible_install/script/
1)初始化机器环境
sh init_os_for_yum_install.sh
2)安装python3
sh install_python3_for_x86.sh
source /etc/profile
python3 --version
3)安装ansible
sh install_ansible.sh
解压tdsql安装包
cd /tdsql
unzip tdsql_packet_10.3.14.6.0_x86_D014.zip
8.修改 tdsql_hosts 文件
vim /tdsql/tdsql_install/tdsql_hosts
[tdsql_allmacforcheck]
tdsql_mac1 ansible_ssh_host=172.17.16.2
tdsql_mac2 ansible_ssh_host=172.17.16.5
tdsql_mac3 ansible_ssh_host=172.17.16.11
tdsql_mac4 ansible_ssh_host=172.17.16.13
[tdsql_zk]
tdsql_zk1 ansible_ssh_host=172.17.16.2
tdsql_zk2 ansible_ssh_host=172.17.16.5
tdsql_zk3 ansible_ssh_host=172.17.16.11
[tdsql_scheduler]
tdsql_scheduler1 ansible_ssh_host=172.17.16.5
tdsql_scheduler2 ansible_ssh_host=172.17.16.11
[tdsql_oss]
tdsql_oss1 ansible_ssh_host=172.17.16.5
tdsql_oss2 ansible_ssh_host=172.17.16.11
[tdsql_chitu]
tdsql_chitu1 ansible_ssh_host=172.17.16.5
tdsql_chitu2 ansible_ssh_host=172.17.16.11
[tdsql_monitor]
tdsql_monitor1 ansible_ssh_host=172.17.16.5
tdsql_monitor1 ansible_ssh_host=172.17.16.11
[tdsql_db]
tdsql_db1 ansible_ssh_host=172.17.16.2
tdsql_db2 ansible_ssh_host=172.17.16.5
tdsql_db3 ansible_ssh_host=172.17.16.11
[tdsql_proxy]
tdsql_proxy1 ansible_ssh_host=172.17.16.2
tdsql_proxy2 ansible_ssh_host=172.17.16.5
tdsql_proxy3 ansible_ssh_host=172.17.16.11
[tdsql_hdfs]
tdsql_hdfs1 ansible_ssh_host=172.17.16.13
[tdsql_lvs]
tdsql_lvs1 ansible_ssh_host=172.17.16.5
tdsql_lvs2 ansible_ssh_host=172.17.16.11
[tdsql_kafka]
tdsql_kafka1 ansible_ssh_host=172.17.16.2
tdsql_kafka2 ansible_ssh_host=172.17.16.5
tdsql_kafka3 ansible_ssh_host=172.17.16.11
[tdsql_consumer]
tdsql_consumer1 ansible_ssh_host=172.17.16.13
[tdsql_es]
tdsql_es1 ansible_ssh_host=172.17.16.13
[tdsql_intercity]
tdsql_intercity1 ansible_ssh_host=172.17.16.13
[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
9.修改 ansible 变量
#ifconfig -a 网卡信惩
vim group_vars/all
tdsql_env_cpu: x86
tdsql_env_os: yum_install
tdsql_zk_num: 3
tdsql_sche_netif: eth0
tdsql_os_pass: abc+bbbb+password
tdsql_zk_rootdir: /tdsqlzk
tdsql_hdfs_num: 1
tdsql_zk_clientport: 2181
tdsql_zk_serverport1: 2338
tdsql_zk_serverport2: 2558
10.使用 tdsql 安装的 zk
cd /tdsql/tdsql_install
sh playbooks/tdsql_encrypt.sh
ansible-playbook -i tdsql_hosts playbooks/tdsql_part1_site.yml
11.初始化 chitu
网页访问安装 chitu 模块的机器地址,进行 chitu 初始化。
http://129.211.149.169/tdsqlpcloud
172.17.16.5:8080
172.17.16.11:8080
数据库账号:tdsqlpcloud
密码:tdsqlpcloud
赤兔管理员:admin/admin123
根据得到的连接参数,用 mysql 客户端测试一下监控库是否可以连接
mysql -utdsqlpcloud -h172.17.16.2 -P15001 -p’tdsqlpcloud’
12.安装完赤兔后,获取到chitu的监控实例的proxy ip地址,放到ansible的变量文件
cd /tdsql/tdsql_10.3.14.1.0_x86_centos/tdsql_full_install_ansible/
[root@mac4 tdsql_full_install_ansible]# vim group_vars/all
metadb_ip: 172.17.16.2 #赤兔监控库的proxy ip主
metadb_port: 15001 #赤兔监控库的proxy port主
metadb_ip_bak: 172.17.16.5 #赤兔监控库的proxy ip备
metadb_port_bak: 15001 #赤兔监控库的proxy port备
metadb_user: yunbee #赤兔监控库的用户名
metadb_password: Yunbee123 #赤兔监控库的密码
13.执行安装 part2_site.yml
cd /tdsql/tdsql_install
sh playbooks/tdsql_encrypt.sh #生产密文密码,根据明文自动帮大家生成
ansible-playbook -i tdsql_hosts playbooks/tdsql_part2_site.yml
#开始部署其它组件
####################
安装HDFS
####################
1.在dfs 机器上设置主机名
vim /etc/hosts
1172.17.16.13 mac3
2.检查 tdsql_hosts 文件
vim tdsql_hosts
[hdfs]
hdfs1 ansible_ssh_host=1172.17.16.13
3.修改 hdfs 变量
vim 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目录及权限
mkdir -p /data2/hdfs
mkdir -p /data3/hdfs
mkdir -p /data4/hdfs
chown -R tdsql:users /data2
chown -R tdsql:users /data3
chown -R tdsql:users /data4
5.安装 hdfs 单点
ansible-playbook -i tdsql_hosts playbooks/tdsql_hdfs_single.yml
6.切换到 tdsql 用户
su - tdsql
7.用 tdsql 用户在 hdfs1 机器上,格式化 namenode
hdfs namenode -format
8.用 tdsql 用户在 hdfs1 机器上,启动 namenode 和 datanode
hdfs --daemon start namenode
hdfs --daemon start datanode
/*
附:用 tdsql 用户关闭 hdfs 进程
hdfs --daemon stop datanode
hdfs --daemon stop namenode
*/
9.用 tdsql 用户执行以下命令
#查看/tdsqlbackup 目录是否已经被自动创建,权限是否如下
hadoop fs -ls /
如果目录不在或者权限不对,用下面命令修改:
hadoop fs -mkdir /tdsqlbackup
hadoop fs -chown tdsql.supergroup /tdsqlbackup
查看所有datanode节点状态,及上报的容量情况
hdfs dfsadmin -report
########################
安装lvs
########################
1.配置tdsql_hosts 文件
vim tdsql_hosts
[lvs]
lvs1 ansible_ssh_host=172.17.16.5
lvs2 ansible_ssh_host=172.17.16.11
2.安装 lvs
ansible-playbook -i tdsql_hosts playbooks/tdsql_lvs.yml
3.赤兔前台操作 lvs
上报 lvs 机器信息(2 台 lvs 机器信息都要上报)
接入层管理–> LVS设备资源管理–>上报[LVS设备资源]
########################
安装kafka
########################
1.检查 tdsql_hosts 文件
vim tdsql_hosts
[kafka]
kafka1 ansible_ssh_host=172.17.16.2
kafka2 ansible_ssh_host=172.17.16.5
kafka3 ansible_ssh_host=172.17.16.11
2.修改多源同步变量
vim group_vars/all
kafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka
3.执行安装多源同步
ansible-playbook -i tdsql_hosts playbooks/tdsql_kafka.yml
4.验证是否安装成功
cat /data/application/kafka/logs/server.log ----查看 kafka 启动信息
########################
安装 consumer
########################
1.配置 tdsql_hosts 文件
vim tdsql_hosts
[consumer]
consumer1 ansible_ssh_host=1172.17.16.13
2.执行安装 consumer
ansible-playbook -i tdsql_hosts playbooks/tdsql_consumer.yml
3.启动消费者服务
在 consumer 的机器上,使用下面命令启动消费者服务
cd /data/application/consumer/bin/
./binlogconsumermgn --zklist 172.17.16.2:2181,172.17.16.5:2181,172.17.16.11:2181 --zkrootpath /tdsqlzk --kafkazklist 172.17.16.2:2181,172.17.16.5:2181,172.17.16.11:2181 --kafkazkrootpath /kafka --dev eth0
##########################
安装ES
##########################
1.配置tdsql_hosts 文件(不能与 chitu 同一台机器)
vim tdsql_hosts
[es]
es1 ansible_ssh_host=1172.17.16.13
2.修改变量文件 vim group_vars/all
es_mem: 4
es_log_days: 7
es_base_path: /data/application/es-install/es
3.执行安装 es
ansible-playbook -i tdsql_hosts playbooks/tdsql_es_single.yml
4.启动命令(在 es 机器上操作):
source /etc/profile #JAVA_HOME环境生效
tdsql 用户启动:
su - tdsql
cd /data/application/es-install/es/master/tools
nohup ./start-elasticsearch.sh &
cd /data/application/es-install/es/data/tools
nohup ./start-elasticsearch.sh &
root 用户启动:
cd /data/application/es-install/logstash/tools
nohup ./start-logstash.sh &
cd /data/application/es-install/es-cleaner
nohup ./start-es-cleaner.sh &
cd /data/application/es-install/kibana-5.6.4-linux-x86_64/bin/
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
#ps -ef |grep elasticsearch |awk ‘{print $2}’ |xargs kill -9
6.es 的验证及相关
输入 es IP 地址,打开 es 前台页面。
http://129.211.116.239/