内容简介:TiDB 需要安装 TiKV,RocksDB, PD等软件。Ubuntu 14.04.4 (64bit)二进制程序如
安装 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)也不齐全,而且仅有单机模式的部署说明。
以上所述就是小编给大家介绍的《TiDB 集群安装》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Zen of CSS Design
Dave Shea、Molly E. Holzschlag / Peachpit Press / 2005-2-27 / USD 44.99
Proving once and for all that standards-compliant design does not equal dull design, this inspiring tome uses examples from the landmark CSS Zen Garden site as the foundation for discussions on how to......一起来看看 《The Zen of CSS Design》 这本书的介绍吧!