TiDB-單機學習環境部署(4.X版本)


TiUP 是 TiDB 4.0 版本引入的集群運維工具,TiUP cluster 是 TiUP 提供的使用 Golang 編寫的集群管理組件,通過 TiUP cluster 組件就可以進行日常的運維工作,包括部署、啟動、關閉、銷毀、彈性擴縮容、升級 TiDB 集群;管理 TiDB 集群參數。
下面使用TiUP工具在RHEL7.6系統上部署TiDB單機環境。

軟硬件環境需求

操作系統要求

Linux 操作系統平台 版本
Red Hat Enterprise Linux 7.3 及以上
CentOS 7.3 及以上
Oracle Enterprise Linux 7.3 及以上
Ubuntu LTS 16.04 及以上

注意:TiDB 只支持 Red Hat 兼容內核 (RHCK) 的 Oracle Enterprise Linux,不支持 Oracle Enterprise Linux 提供的 Unbreakable Enterprise Kernel。

軟件環境要求配置

存儲及文件系統配置

  • 建議使用 EXT4 類型文件系統的 NVME 類型的 SSD 磁盤存儲 TiKV 數據文件
  • 掛載文件系統時添加 nodelallocnoatime 掛載參數。

I/O調度器

I/O 調度程序確定 I/O 操作何時在存儲設備上運行以及持續多長時間。對於SSD設備,推薦設置為 noop 模式。

echo noop > /sys/block/${SSD_DEV_NAME}/queue/scheduler

檢查及關閉swap

TiDB 運行需要有足夠的內存,並且不建議使用 swap 作為內存不足的緩沖,這會降低性能。

echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a

關閉防火牆

# 1. 檢查防火牆狀態
sudo firewall-cmd --state
sudo systemctl status firewalld.service

# 2. 關閉防火牆
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

# 3. 檢查確認
sudo systemctl status firewalld.service
sudo systemctl is-enable firewalld.service

檢查及配置NTP服務

TiDB 是一套分布式數據庫系統,需要節點間保證時間的同步,從而確保 ACID 模型的事務線性一致性。

# 1. 檢查狀態
sudo systemctl status ntpd.service
ntpstat

# 2. 安裝ntp服務
sudo yum -y install ntp ntpdate && \
sudo systemctl start ntpd.service && \
sudo systemctl enable ntpd.service

檢測和關閉透明大頁

對於數據庫應用,不推薦使用透明大頁(即 Transparent Huge Pages,縮寫為 THP),因為數據庫的內存訪問模式往往是稀疏的而非連續的。而且當高階內存碎片化比較嚴重時,分配 THP 頁面會出現較大的延遲。若開啟針對 THP 的直接內存規整功能,也會出現系統 CPU 使用率激增的現象,因此建議關閉透明大頁。

# 1. 查看透明大頁的開啟狀態 -- 如果返回 [always] madvise never 則表示處於啟用狀態
cat /sys/kernel/mm/transparent_hugepage/enabled

# 2. grubby 命令查看默認內核版本
grubby --default-kernel

# 3. 執行 grubby --update-kernel 命令修改內核配置
grubby --args="transparent_hugepage=never" --update-kernel /boot/vmlinuz-3.10.0-957.el7.x86_64

# 4. 執行 grubby --info 命令查看修改后的默認內核配置
grubby --info /boot/vmlinuz-3.10.0-957.el7.x86_64

# 5. 重啟
reboot


## 臨時修改當前的內核配置(立即生效)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

配置 SSH 互信及 sudo 免密碼

推薦使用 TiUP 部署工具會自動配置 SSH 互信及免密登陸

創建 tidb 用戶並設置登錄密碼

useradd -m -d /home/tidb tidb

echo "tidb"|passwd --stdin tidb

配置sudo

visudo

# 添加下面一行
tidb ALL=(ALL) NOPASSWD: ALL

部署TiDB

參照 TiUP 最小拓撲,准備一個 YAML 文件進行部署 TiDB 單機環境。

拓撲結構

實例 個數 IP 配置
TiKV 3 192.168.10.181 避免端口和目錄沖突
TiDB 1 192.168.10.181 默認端口 全局目錄配置
PD 1 192.168.10.181 默認端口 全局目錄配置
Monitor 1 192.168.10.181 默認端口 全局目錄配置

詳細過程

下載並安裝TiUP工具(聯網)

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

安裝集群組件

tiup cluster

確認當前 TiUP cluster 版本信息

tiup --binary cluster

創建最小架構 yaml 文件

global:
 user: "tidb"
 ssh_port: 22
 deploy_dir: "/tidb/app/tidb-deploy"
 data_dir: "/tidb/data"

# # Monitored variables are applied to all the machines.
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115

server_configs:
 tidb:
   log.slow-threshold: 300
 tikv:
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"

pd_servers:
 - host: 192.168.10.181

tidb_servers:
 - host: 192.168.10.181

tikv_servers:
 - host: 192.168.10.181
   port: 20160
   status_port: 20180
   config:
     server.labels: { host: "logic-host-1" }

 - host: 192.168.10.181
   port: 20161
   status_port: 20181
   config:
     server.labels: { host: "logic-host-2" }

 - host: 192.168.10.181
   port: 20162
   status_port: 20182
   config:
     server.labels: { host: "logic-host-3" }

tiflash_servers:
 - host: 192.168.10.181

monitoring_servers:
 - host: 192.168.10.181

grafana_servers:
 - host: 192.168.10.181
 
alertmanager_servers:
  - host: 192.168.10.181

初始化集群

tiup cluster deploy tidb-cluster v4.0.9 ./topology.yaml --user root -p

image-20210105113330652

預期日志結尾輸出會有 Deployed cluster tidb-cluster successfully 關鍵詞,表示部署成功。

啟動集群

# tiup cluster start <cluster-name>
tiup cluster start tidb-cluster

檢查集群狀態

# 輸出當前通過 TiUP cluster 管理的所有集群信息
tiup cluster list

# 檢查部署的 TiDB 集群情況, Status 狀態信息為 Up 說明集群狀態正常
tiup cluster display tidb-cluster

客戶端訪問TiDB集群

使用mysql客戶端(若已安裝 MySQL 客戶端)

mysql -h 192.168.10.181 -P 4000 -u root

默認端口為4000,root默認密碼為空.

web 界面訪問

  • Dashboard
    PD默認安裝Dashboard,可以通過 http://{pd-ip}:2379/dashboard 訪問集群的監控界面。[默認用戶名為 root,密碼為空]

  • Grafana
    通過 http://{grafana-ip}:3000 訪問監控頁面。 [默認用戶名和密碼均為 admin]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM