当前位置: 首页 > news >正文

Kudu节点数规划

作者:南墨

一、概述

由于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数不超过100300+
tablet数/tablet server(含副本)1000+4000+
tablet数/表/tablet server(含副本)60+60+
单台tablet server存储数据(含副本,压缩后)8TB+10TB+
单tablet存储数据(超过会性能下降、合并失败、启动慢)10G50G
单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

ttserver数量
d以Parquet格式存储的数据总量(可以将一段时间的数据以Parquet格式存储到HDFS上做预估)
k每个Tablet Server的最大磁盘容量(建议8T)
p余量,一般0.25
rtablet副本因子,一般为3

eg.

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

四、内存和CPU

角色内存CPU说明
Master16G8CMaster不保存用户数据,对于内存,CPU占用资源bitserver要少很多
Tablet Server64G2*12C考虑跟Impala混合部署场景(有datanode和nodemanager会更大)

五、磁盘

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

角色OSWALmetadatadata
master2*512 SSD RAID 1共享OS共享OS共享OS
tablet server2*512 SSD RAID 112TM.2接口(NVMe协议)SSD共享WAL7*2TSSD,用于存储数据

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

性能对比:

存储介质IOPS吞吐率(MB/s)
HDD55~18050~180
SSD3000~40000300~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

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

http://www.lryc.cn/news/404421.html

相关文章:

  • flutter 充电气泡
  • 【C++】deque以及优先级队列
  • 手机如何播放电脑的声音?
  • 系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS)-解读
  • 解决Element UI 表格组件懒加载数据刷新问题
  • 【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决
  • Ubuntu Grub引导优化
  • 第3关 -- Git 基础知识
  • AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘
  • 题解:小S与机房里的电脑 Computer_C++算法竞赛_贪心_二分答案_模拟_数据结构
  • Python @staticmethod、super().__init__()和self
  • Linux网络:应用层协议HTTP(一)
  • Tomcat底层原理
  • 【Linux】Linux环境设置环境变量操作步骤
  • C语言:键盘录入案例
  • Nginx 中如何实现请求的排队机制?
  • synergy配置
  • Qt开发网络嗅探器03
  • 抖音短视频seo矩阵系统源码开发技术分享(二)--SaaS开源
  • git-常用基础指令
  • Inconsistent Query Results Based on Output Fields Selection in Milvus Dashboard
  • 视觉巡线小车——STM32+OpenMV
  • 升级TrinityCore 服务器硬件
  • NVidia 的 gpu 开源 Linux Kernel Module Driver 编译 安装 使用
  • win7显卡驱动更新后msvcp140.dll丢失的解决方法
  • (11)Python引领金融前沿:投资组合优化实战案例
  • git删除本地远程分支
  • 前端-04-VScode敲击键盘有键入音效,怎么关闭
  • JMeter数据库连接操作及断言
  • Maven settings.xml 私服上传和拉取配置