Kudu节点数规划

南墨2年前技术文章1385

一、概述

由于Kudu是Hadoop生态的一部分(虽然它不依赖于Hadoop生态系统),因此大多数实际应用场景需要的不仅仅是Kudu;为了输入数据,可能需要Kafka、StreamSets或Spark Streaming;对于机器学习和数据处理,可能需要Spark;对于交互式SQL,我们也肯定想要Impala。实际上,Kudu和Hadoop生态系统紧密低集成正是其优势之一,因此我们很少单独使用Kudu,所以,在讨论Kudu集群规划时,一般不仅仅是考虑到Kudu。

举个例子:Kudu经常与Impala一起使用,Impala依赖Hive,而Hive依赖于HDFS,这就意味着我们将Kudu与Impala放在一起使用,而且还要配上Hive和HDFS。根据以往经验:Kudu和HDFS很容易和谐共存,甚至可以共享磁盘,但是我们要正确配置它们。

二、资源规划

1、Master

Master服务器负责存储元数据信息(客户端应用程序定位数据的位置时需要用到它们),一般不会频繁操作master,可以在小服务器(硬件)上安装;一般3台即可(与复制因子数相同,为奇数)

2、Tablet

Tablet的作用是执行所有与数据相关的操作:存储、访问、编码、压缩、compaction和复制,且tablet还负责将数据复制到其他tablet服务器上,工作较为繁重,是我们需要可扩展性的地方。

规划建议与限制

选项

最佳性能(建议值)

限制

tablet server数

不超过100

300+

tablet数/tablet server(含副本)

1000+

4000+

tablet数/表/tablet server(含副本)

60+

60+

单台tablet server存储数据(含副本,压缩后)

8TB+

10TB+

单tablet存储数据(超过会性能下降、合并失败、启动慢)

10G

50G

单tablet对应CPU核心数(不考虑副本,不考虑小表)

1

多对1

tablet server内存

16G以上最佳

不低于4G

三、集群规模

1、节点数

Master 必须是奇数,3或者5台为佳,7台就多

Tablet Server 取决于数据规模,但最多不超过1000台的规模,以300以内性能最佳

2、tserver服务器数量 公式

t=d/(k*(1-p))*r

t

tserver数量

d

以Parquet格式存储的数据总量(可以将一段时间的数据以Parquet格式存储到HDFS上做预估)

k

每个Tablet Server的最大磁盘容量(建议8T)

p

余量,一般0.25

r

tablet副本因子,一般为3

eg.

d=120T
K=8T
p=25%
r=3
t=(120 / (8 * (1 - 0.25)))*3 = 60

四、内存和CPU

角色

内存

CPU

说明

Master

16G

8C

Master不保存用户数据,对于内存,CPU占用资源bitserver要少很多

Tablet Server

64G

2*12C

考虑跟Impala混合部署场景(有datanode和nodemanager会更大)

五、磁盘

Kudu针对SSD盘做了特别优化,推荐使用SSD

角色

OS

WAL

metadata

data

master

2*512 SSD RAID 1

共享OS

共享OS

共享OS

tablet server

2*512 SSD RAID 1

12TM.2接口(NVMe协议)SSD

共享WAL

7*2TSSD,用于存储数据

注:

1)这里NVMe是一种非常快速的PCIe闪存适配器(考虑到负载,最好为WAL规划配置快速SSD NVMe),特别是对于大型生产环境,不建议将WAL设置到专门的HDD上,这样会影响写入性能和故障的恢复时间。

性能对比:

存储介质

IOPS

吞吐率(MB/s)

HDD

55~180

50~180

SSD

3000~40000

300~2000(SAS最大能达到2812MB/s)

NVMe PCIe闪存

150000~1000000以上

最大为6400(6.4GB/s)

2)WAL、metadata、data 配置目录
–fs_wal_dir
–fs_metadata_dir
–fs_data_dirs

3)对于Kudu上的用户数据,在服务器上提供尽可能多的HDD(SSD更好!);另外对于已经部署了HDFS的集群,与Kudu公用节点时,不必专门分开磁盘,将他们共用数据盘即可。

六、网卡

Master和Tablet Server和 2块万兆网卡绑定

参考:

https://kudu.apache.org/docs/known_issues.html


相关文章

HBase Shell操作

基本操作1.进入HBase客户端命令行[root@cdh02 current]# hbase shell2.查看帮助命令hbase(main):001:0> help3.查看当前数据库中有哪些表...

MySQL运维实战之Clone插件(10.2)Clone插件原理

MySQL运维实战之Clone插件(10.2)Clone插件原理

clone插件实现clone操作主要分为几个阶段:1、初始阶段。初始阶段,会开启页面跟踪(Page Tracking)。开启页面跟踪后,修改过的页面的编号会被记录下来。页面的修改可分为两个阶段:首先在...

RDS通过DMS管理登录处理

RDS通过DMS管理登录处理

问题描述无法通过DMS管理登录进入数据库,报错如下:问题处理方式一在RDS控制台新建账号 账号管理--创建账号将此数据库添加进DMS在DMS控制台--数据库实例--新增实例将新建的数据库账号信息进行录...

详解迁云流程

详解迁云流程

一、现有云端环境梳理可以通过阿里云工单申请导出网络架构图,在图的信息上梳理阿里云现有架构二、制定迁移方案根据梳理的信息,确定实例迁移的方案,有夸账号迁移,跨地域迁移,IDC上云等不同场景。需要考虑的是...

Redis 内存使用情况查看

内存情况查看1、MEMORY STATS--连接 redisredis-cli--执行 MEMORY STATS命令查询内存使用详情 MEMORY STATSRedis实例的内存开销主要由两部分组成:...

InnoDB秘籍:MVCC机制与行锁的深度探索(3)

InnoDB秘籍:MVCC机制与行锁的深度探索(3)

03Innodb 锁机制锁用来控制多个并发的进程或线程对共享资源的访问,在 MySQL 数据库中,共享资源包括:内存中的链表结构,如会话列表、活跃事务列表、InnoDB Buffer Pool 中 L...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。