内容简介: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 集群安装》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C Primer Plus
Stephen Prata、云巅工作室 / 云巅工作室 / 人民邮电出版社 / 2005-2-1 / 60.00元
《C Primer Plus(第5版)(中文版)》共17章。第1、2章学习C语言编程所需的预备知识。第3到15章介绍了C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求。第16章和第17章讨论了C预处......一起来看看 《C Primer Plus》 这本书的介绍吧!