文档章节

TiDB 分布式数据库搭建

miaojiangmin
 miaojiangmin
发布于 2017/08/01 13:30
字数 1462
阅读 59
收藏 0

因为公司数据量比较大,一种方法是采用mycat这种数据库中间件的形式。但是感觉不是很方便。后来发现了TiDB打算,可以尝试试用一下。用datax把历史数据转入到TiDB中,然后在TiDB中进行分析。 第一步:现在台式机中的虚拟机中部署起来。 第二步:数据转移 第三部:测试性能,判断是否可用。

官网为TiDB

目前已经在一台服务器上搭建起来一台单机版的TiDB服务器。简单添加了一些数据,发现居然没有原生的mysql快,问了一下高手,说TiDB要需要集群才能发挥优势。 目前是想采用Kettle来同步原来Oracle中的数据到新的数据库中去。但是现在遇到问题就是用jdbc连接会有问题。我相信这个问题会解决的。是在不行可以先同步到mysql,然后我用navicat的工具同步到TiDB。

如果下周有时间的话,我想搭建集群的TiDB数据库,然后再测试一下性能对比。

日均数据量千万级,MySQL、TiDB两种存储方案的落地对比 这篇文章给我信心。

查看了官网,官网有三种部署方法。(Ansible 部署方案),Binary 部署方案 ,Docker 部署方案。目前对我来说最快的部署方案是第二种。但是第一种和第三种也是要学习的。 我先贴一下第二中部署的方式。现在TiDB已经是RC4版本了,距离正式版发布已经不远了。

一个完整的 TiDB 集群包括 PD,TiKV 以及 TiDB。启动顺序依次是 PD,TiKV 以及 TiDB。

阅读本章前,请先确保阅读 部署建议

快速了解和试用 TiDB,推荐使用单节点方式快速部署。

功能性测试 TiDB,推荐使用功能性测试部署。

生产环境使用 TiDB,推荐使用多节点集群模式部署。

目前因为已经搭建了单点方式部署,但是发挥不出优势来。所以想采取功能性测试,等对去年一年的销售进行分析后,如果性能达到要求的话,可以采用多节点集群部署的方式。

系统的话,决定采用Ubuntu。

下载官方 Binary

Linux (CentOS 7+, Ubuntu 14.04+)

下载压缩包

wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz wget http://download.pingcap.org/tidb-latest-linux-amd64.sha256

检查文件完整性,返回 ok 则正确

sha256sum -c tidb-latest-linux-amd64.sha256

解开压缩包

tar -xzf tidb-latest-linux-amd64.tar.gz cd tidb-latest-linux-amd64

检查文件完整性,返回 ok 则正确

sha256sum -c tidb-latest-linux-amd64-centos6.sha256

解开压缩包

tar -xzf tidb-latest-linux-amd64-centos6.tar.gz cd tidb-latest-linux-amd64-centos6 单节点方式快速部署


我们可以在单机上面,运行和测试 TiDB 集群,请按如下步骤依次启动 PD,TiKV,TiDB:


启动 PD
./bin/pd-server --data-dir=pd \
                --log-file=pd.log
启动 TiKV
./bin/tikv-server --pd="127.0.0.1:2379" \
                  --data-dir=tikv \
                  --log-file=tikv.log
启动 TiDB
./bin/tidb-server --store=tikv \
                  --path="127.0.0.1:2379" \
                  --log-file=tidb.log
使用官方的 mysql 客户端连接 TiDB
mysql -h 127.0.0.1 -P 4000 -u root -D test
多节点集群模式部署

在生产环境中,我们推荐多节点部署 TiDB 集群,首先请参考部署建议。

这里我们使用六个节点,部署三个 PD,三个 TiKV,以及一个 TiDB,各个节点以及所运行服务信息如下:

Name Host IP Services node1 192.168.199.113 PD1, TiDB node2 192.168.199.114 PD2 node3 192.168.199.115 PD3 node4 192.168.199.116 TiKV1 node5 192.168.199.117 TiKV2 node6 192.168.199.118 TiKV3 请按如下步骤 依次启动 PD 集群,TiKV 集群以及 TiDB:

在 node1,node2,node3 依次启动 PD
./bin/pd-server --name=pd1 \
                --data-dir=pd1 \
                --client-urls="http://192.168.199.113:2379" \
                --peer-urls="http://192.168.199.113:2380" \
                --initial-cluster="pd1=http://192.168.199.113:2380" \
                --log-file=pd.log

./bin/pd-server --name=pd2 \
                --data-dir=pd2 \
                --client-urls="http://192.168.199.114:2379" \
                --peer-urls="http://192.168.199.114:2380" \
                --join="http://192.168.199.113:2379" \
                --log-file=pd.log

./bin/pd-server --name=pd3 \
                --data-dir=pd3 \
                --client-urls="http://192.168.199.115:2379" \
                --peer-urls="http://192.168.199.115:2380" \
                --join="http://192.168.199.113:2379" \
                --log-file=pd.log
在 node4,node5,node6 启动 TiKV
./bin/tikv-server --pd="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --addr="192.168.199.116:20160" \
                  --data-dir=tikv1 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --addr="192.168.199.117:20160" \
                  --data-dir=tikv2 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --addr="192.168.199.118:20160" \
                  --data-dir=tikv3 \
                  --log-file=tikv.log
在 node1 启动 TiDB
./bin/tidb-server --store=tikv \
                  --path="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --log-file=tidb.log
使用官方 mysql 客户端连接 TiDB
mysql -h 192.168.199.113 -P 4000 -u root -D test

####注意: 在生产环境中启动 TiKV 时,建议使用 --config 参数指定配置文件路径。

如果使用 nohup 在生产环境中启动集群,需要将启动命令放到一个脚本文件里面执行,否则会出现因为 Shell 退出导致 nohup 启动的进程也收到异常信号退出的问题,具体参考进程异常退出。 功能性测试部署

####这是目前想采取的模式

如果只是对 TiDB 进行测试,并且机器数量有限,我们可以只启动一台 PD 测试 整个集群。

这里我们使用四个节点,部署一个 PD,三个 TiKV,以及一个 TiDB,各个节点以及所运行服务信息如下:

Name Host IP Services node1 192.168.199.113 PD1, TiDB node2 192.168.199.114 TiKV1 node3 192.168.199.115 TiKV2 node4 192.168.199.116 TiKV3 请按如下步骤 依次启动 PD 集群,TiKV 集群以及 TiDB:

在 node1 启动 PD
./bin/pd-server --name=pd1 \
                --data-dir=pd1 \
                --client-urls="http://192.168.199.113:2379" \
                --peer-urls="http://192.168.199.113:2380" \
                --initial-cluster="pd1=http://192.168.199.113:2380" \
                --log-file=pd.log
在 node2,node3,node4 启动 TiKV
./bin/tikv-server --pd="192.168.199.113:2379" \
                  --addr="192.168.199.114:20160" \
                  --data-dir=tikv1 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379" \
                  --addr="192.168.199.115:20160" \
                  --data-dir=tikv2 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379" \
                  --addr="192.168.199.116:20160" \
                  --data-dir=tikv3 \
                  --log-file=tikv.log
在 node1 启动 TiDB
./bin/tidb-server --store=tikv \
                  --path="192.168.199.113:2379" \
                  --log-file=tidb.log
使用官方 mysql 客户端连接 TiDB
mysql -h 192.168.199.113 -P 4000 -u root -D test

如果这个方案成功了的话,对于原本存放在oracle中的冷数据,也可以分析起来了。

大家也可以参考下面的文章 PingCAP布道Percona Live 2017 展示TiDB强悍性能 TiDB 的正确使用姿势 [是时候选择NewSQL数据库了(http://blog.csdn.net/erlib/article/details/53420606)

© 著作权归作者所有

共有 人打赏支持
上一篇: 网址备份
下一篇: Maven插件
miaojiangmin
粉丝 9
博文 417
码字总数 102351
作品 0
宁波
程序员
私信 提问
UCloud 与 PingCAP 达成合作 Cloud TiDB 全球正式发布

2017 年 10 月,国内领先的中立云计算厂商 UCloud 与国内开源分布式 NewSQL 数据库 TiDB 团队 PingCAP 正式达成合作,双方将联手在 UCloud 全球数据中心逐步推出新一代 TiDB 的云端版本——C...

TiDB
2017/10/30
0
0
TiDB v0.5 Alpha 发布,分布式 SQL 数据库

TiDB 首个 alpha 版本发布,主要改进:强一致的分布式事务;同步的 replication;强大的 scale 能力;MySQL 协议兼容;在线 schema 变更。TiDB 在 Alpha 版本使用 HBase 作为分布式存储引擎...

oschina
2015/12/01
3.7K
19
TiDB 将出席 Percona Live Amsterdam 2016

TiDB 数据库的公司 PingCAP 将出席 Percona Live Amsterdam 2016 日前,专注新型分布式数据库研发的科技公司 PingCAP 确定将受邀参加 “Percona Live Amsterdam 2016”。作为亚洲唯一一家受邀...

TiDB
2016/09/28
994
12
TiDB 在饿了么归档环境的应用

背景 随着业务增长,公司数据规模不断膨胀,表变多、变大。一方面占用的磁盘、CPU 等物理资源疾速上涨,另一方面大表性能下降且变更困难。实际上,很多大表的数据无需保留很久,比如某些业务...

TiDB
04/26
0
0
TIDB分布式数据库在360金融中的应用

为什么选择TIDB? 凡事事出有因,选择某类框架也肯定有它存在的原因。所以想先来谈谈我们为什么要选择TIDB。 其实几乎所有公司从传统数据库转向分布式数据库都有个共同的原因,随着业务量的不...

liuyanling41
12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka+Flink 实现准实时异常检测系统

1.背景介绍 异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防...

架构师springboot
14分钟前
1
0
DecimalFormat 类基本使用

/* * DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度 * 0 表示如果位数不足则以 0 填充 * # 表示只要有可能就把数字拉上这个位置 * */ public static void main(String[] args){...

嘴角轻扬30
31分钟前
3
0
This APT has Super Cow Powers.

在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有超级牛力 牛力是个什么梗? 则说明你的系统...

taadis
49分钟前
2
0
起薪2万的爬虫工程师,Python需要学到什么程度才可以就业?

爬虫工程师的的薪资为20K起,当然,因为大数据,薪资也将一路上扬。那么,Python需要学到什么程度呢?今天我们来看看3位前辈的回答。 1、前段时间快要毕业,而我又不想找自己的老本行Java开发...

糖宝lsh
57分钟前
6
0
携手开发者共建云生态 首届腾讯云+社区开发者大会在京举办

本文由云+社区发表 北京时间12月15日,由腾讯云主办,极客邦科技、微信、腾讯TEG协办的首届腾讯云+社区开发者大会在北京朝阳悠唐皇冠假日酒店举办。在会上,腾讯云发布了重磅产品开发者平台以...

腾讯云加社区
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部