TiDB叢集安裝
安裝 TiDB
TiDB 需要安裝 TiKV,RocksDB, PD等軟體。
環境
Ubuntu 14.04.4 (64bit)
編譯二進位制檔案
二進位制程式如tidb-server
, tikv-server
, pd-server
都可以在一臺主機上編譯後分發到其它主機上去,只要保持主機環境基本一致即可。
而RocksDB
是編譯成動態庫檔案,在不同主機上共享比較麻煩(甚至無法共享?),所以建議每臺放置TiKV元件的主機上都進行一次編譯。
注:本次部署是在一臺跳板機上進行所有二進位制檔案的編譯。
編譯PD
1)安裝Golang
wget https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.6.3.linux-amd64.tar.gz
2)編譯PD
git clone https://github.com/pingcap/pd
cd pd
make build
安裝RocksDB
apt-get update
apt-get install libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev -y
wget https://github.com/facebook/rocksdb/archive/v4.8.tar.gz
tar xzvf v4.8.tar.gz
cd rocksdb-4.8
make shared_lib -j4
cp librocksdb.so.4.8.0 /usr/local/lib
ln -fs /usr/local/lib/librocksdb.so.4.8.0 /usr/local/lib/librocksdb.so
ln -fs /usr/local/lib/librocksdb.so.4.8.0 /usr/local/lib/librocksdb.so.4
ln -fs /usr/local/lib/librocksdb.so.4.8.0 /usr/local/lib/librocksdb.so.4.8
ldconfig
編譯TiKV
1)安裝rust
curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly
2)編譯TiKV
git clone https://github.com/pingcap/tikv
cd tikv
make release
# 在TiKV執行主機上
cp target/release/tikv-server /usr/local/bin/
編譯TiDB
1)安裝Golang
wget https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.6.3.linux-amd64.tar.gz
2)編譯TiDB
git clone https://github.com/pingcap/tidb.git $GOPATH/src/github.com/pingcap/tidb
cd $GOPATH/src/github.com/pingcap/tidb
make server
# 在TiDB執行主機上
cp $GOPATH/bin/tidb-server /usr/local/bin
-
- *
執行TiDB
執行TiDB需要依次執行:pd, tikv, tidb
架構分佈
TiDB: 192.168.100.3, 192.168.100.4, 192.168.100.5 PD: 192.168.100.6, 192.168.100.7, 192.168.100.8 TiKV: 192.168.100.9, 192.168.100.10, 192.168.100.11
執行pd
注意 需要在很短時間將幾個pd-server同時執行起來,否則會造成找不到的狀況,然後一個一個出錯退出。
- pd1(在192.168.100.6這臺主機上執行)
pd-server --cluster-id=1
--addr="192.168.100.6:1234"
--advertise-addr="192.168.100.6:1234"
--http-addr="192.168.100.6:9090"
--etcd-name=pd1
--etcd-advertise-client-url="http://192.168.100.6:2379"
--etcd-advertise-peer-url="http://192.168.100.6:2380"
--etcd-initial-cluster="pd1=http://192.168.100.6:2380,pd2=http://192.168.100.7:2380,pd3=http://192.168.100.8:2380"
--etcd-listen-peer-url="http://192.168.100.6:2380"
--etcd-listen-client-url="http://192.168.100.6:2379"
- pd2(在192.168.100.7這臺主機上執行)
pd-server --cluster-id=1
--addr="192.168.100.7:1234"
--advertise-addr="192.168.100.7:1234"
--http-addr="192.168.100.7:9090"
--etcd-name=pd2
--etcd-advertise-client-url="http://192.168.100.7:2379"
--etcd-advertise-peer-url="http://192.168.100.7:2380"
--etcd-initial-cluster="pd1=http://192.168.100.6:2380,pd2=http://192.168.100.7:2380,pd3=http://192.168.100.8:2380"
--etcd-listen-peer-url="http://192.168.100.7:2380"
--etcd-listen-client-url="http://192.168.100.7:2379"
- pd3(在192.168.100.8這臺主機上執行)
pd-server --cluster-id=1
--addr="192.168.100.8:1234"
--advertise-addr="192.168.100.8:1234"
--http-addr="192.168.100.8:9090"
--etcd-name=pd3
--etcd-advertise-client-url="http://192.168.100.8:2379"
--etcd-advertise-peer-url="http://192.168.100.8:2380"
--etcd-initial-cluster="pd1=http://192.168.100.6:2380,pd2=http://192.168.100.7:2380,pd3=http://192.168.100.8:2380"
--etcd-listen-peer-url="http://192.168.100.8:2380"
--etcd-listen-client-url="http://192.168.100.8:2379"
執行TiKV
由於TiKV依賴於RocksDB,所以需要先安裝RocksDB。
注意 TiKV二進位制檔案tikv-server可以在一臺主機上編譯了放到其它主機上執行,但是RocksDB好像不可以。 所以每一臺主機上都需要進行一次RocksDB的安裝。
1)安裝RocksDB 在 192.168.100.9, 192.168.100.10, 192.168.100.11 這三臺主機上,分別進行RocksDB的安裝。 2)將編譯過後的tikv-server檔案分發到上面三臺主機上,放到系統PATH目錄中。 3)執行TiKV
# 在192.168.100.9這臺主機上執行
tikv-server -S raftkv --addr 192.168.100.9:5050 --etcd 192.168.100.6:2379,192.168.100.7:2379,192.168.100.8:2379 -s /data --cluster-id 1
# 在192.168.100.10這臺主機上執行
tikv-server -S raftkv --addr 192.168.100.10:5050 --etcd 192.168.100.6:2379,192.168.100.7:2379,192.168.100.8:2379 -s /data --cluster-id 1
# 在192.168.100.11這臺主機上執行
tikv-server -S raftkv --addr 192.168.100.11:5050 --etcd 192.168.100.6:2379,192.168.100.7:2379,192.168.100.8:2379 -s /data --cluster-id 1
執行TiDB
將tidb-server分發到192.168.100.3, 192.168.100.4, 192.168.100.5這三臺主機上去,放置於類似/usr/local/bin目錄中。
在這三臺主機上都執行如下命令:
tidb-server --store=tikv --path="192.168.100.6:2379,192.168.100.7:2379,192.168.100.8:2379/pd?cluster=1" -lease 1 -P 3306
反向代理
三臺TiDB同時執行,三者互不干涉,需要一個反向代理來進行負載均衡與流量分發。這裡使用的是Nginx 1.10.1來進行TCP反向代理。
-
- *
效果
在任意一臺機器上,使用MySQL客戶端,訪問叢集,效果如下所示。
後記
折騰了大半天,終於跑了起來。測試後續補充。
相對於CockroachDB的開箱即用,TiDB的部署還是相對麻煩一些。不過,總體來說,還是比較簡單的,只是官方文件現在(2016/07/26)也不齊全,而且僅有單機模式的部署說明。
相關文章
- StarRocks 叢集安裝
- Kubernetes 叢集安裝
- 【redis叢集安裝】Redis
- cdh 叢集安裝
- kubernetes叢集安裝
- ElasticSearch 6.6.0叢集安裝Elasticsearch
- Hadoop叢集安裝配置Hadoop
- Elasticsearch 叢集安裝部署Elasticsearch
- ZooKeeper叢集安裝和部署
- elasticsearch叢集安裝(3臺)Elasticsearch
- Flink(四)叢集安裝(二)
- Kafka叢集安裝Version2.10Kafka
- redis cluster 4.0.9 叢集安裝搭建Redis
- Zookeeper介紹與叢集安裝
- k8s 叢集安裝K8S
- WAS中介軟體垂直叢集安裝
- WAS中介軟體水平叢集安裝
- k8s叢集安裝-kubeadm安裝K8S
- elasticsearch叢集安裝+安全驗證+kibana安裝Elasticsearch
- WeblogicServer11G叢集安裝與配置WebServer
- MariaDB +Centos+MMM 叢集安裝除錯CentOS除錯
- ceph叢集安裝報錯解決方法
- centos7下zookeeper叢集安裝部署CentOS
- etcd簡介及叢集安裝部署使用
- ElasticSearch 叢集安全Elasticsearch
- Kubernetes叢集部署史上最詳細(一)Kubernetes叢集安裝
- Oracle 11G RAC叢集安裝(2)——安裝gridOracle
- Oracle 11G RAC叢集安裝(3)——安裝OracleOracle
- 完全分散式模式hadoop叢集安裝與配置分散式模式Hadoop
- 02.Flink的單機wordcount、叢集安裝
- Hadoop3.0完全分散式叢集安裝部署Hadoop分散式
- elasticsearch-7.17.15 叢集安裝部署及kibana配置Elasticsearch
- Spark2.4.5叢集安裝與本地開發Spark
- 大資料叢集搭建 – 2. CDH叢集安裝 – NTP,MYSQL,nginx安裝大資料MySqlNginx
- redis-cluster叢集安裝(基於redis-3.2.10)Redis
- 第06講:Flink 叢集安裝部署和 HA 配置
- RAC之grid叢集安裝及ASM磁碟組配置ASM
- 叢集安裝完成後,GCluster 服務不能啟動GC