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.mzph.cn/pingmian/48141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 对接海康威视,实现摄像头画面展示

文章目录 需求分析1. 下载2. 安装3. new 一个WebControl 插件相关实例 需求 项目中集成海康威视,实现摄像头画面展示 分析 1. 下载 传送门:官方插件包和文档下载 2. 安装 (1)下载完成后打开 (2)在项…

30_Swin-Transformer网络结构详解

1.1 简介 Swin Transformer 是一种用于计算机视觉任务的新型深度学习架构,由微软亚洲研究院于2021年提出。它结合了Transformer模型在序列数据处理上的强大能力与卷积神经网络(CNN)在图像识别中的高效局部特征提取优势,特别适用于…

《数据结构》预备

在学习数据结构之前,需要预先准备学习的C语言知识是:自定义类型--结构体类型。 本节主要讲的内容有: 1.结构体类型的声明 2.结构体变量的创建和初始化 3.结构成员的访问操作符 4.结构体传参 5.结构体内存对齐 6.结构体实现位段(位域) 正文开…

verilog实现ram16*8 (vivado)

module ram_16x2 (input clk, // 时钟信号input we, // 写使能input en, // 使能信号input [3:0] addr, // 地址线input [1:0] datain, // 输入数据线output reg [1:0] dataout // 输出数据线 );// 定义存储器数组reg [1:0] mem [15:0];always (posedge…

影响转化率的多元因素分析及定制开发AI智能名片S2B2C商城系统小程序的应用案例

摘要:在互联网时代,转化率是衡量营销活动成功与否的关键指标。本文首先分析了影响转化率的多种因素,包括活动页面的设计、活动的限时性、主题文案的吸引力、从众心理的运用,以及最核心的产品质量与优惠力度。接着,本文…

Linux 13:网络编程1

1. 预备知识 1-1. 理解源IP地址和目的IP地址 在IP数据包头部中,有两个IP地址,分别叫做源IP地址,和目的IP地址。 我们光有IP地址就可以完成通信了嘛?想象一下发qq消息的例子,有了IP地址能够把消息发送到对方的…

【周记】2024暑期集训第一周

例题记录 Together 题目解析 输入n个数,你可以将这些数分别1,-1或者保持不变,尽可能多的将这些数变成同一个数x,输出x的个数。 算法思路 每个数都有3种情况,那么只需要将所有情况得到的数,每一个的个数…

Python __init__与__new__的区别

Python __init__与__new__的区别 在 Python 中,__init__ 和 __new__ 是两个特殊的方法,用于创建和初始化对象,但它们的作用和执行时机有所不同。 __new__ 方法 __new__ 是在一个对象实例化的时候调用的第一个方法。它的任务是创建一个实例并返回它,是一个类级别的方法(c…

【Qt】常用控件 Q widget的enabled属性,geometry属性

Qt是一个实现图形化程序的程序。为了便于我们开发,Qt为我们提供了许多“控件”。我们需要熟悉并掌握这些控件的使用。 一.什么是控件 控件是构成⼀个图形化界⾯的基本要素. 示例一: 像上述⽰例一中的,按钮,列表视图,树形视图,单⾏输⼊框,多⾏输⼊框,滚动…

Web开发:图片九宫格与非九宫格动态切换效果(HTML、CSS、JavaScript)

目录 一、业务需求 二、实现思路 三、实现过程 1、基础页面 2、图片大小调整 3、图片位置调整 4、鼠标控制切换 5、添加过渡 四、完整代码 一、业务需求 默认显示基础图片; 当鼠标移入,使用九宫格效果展示图片; 当鼠标离开&#…

数学建模熵权法

目录 熵权法 简介 熵权法的基本原理 熵权法的步骤 应用实例 优缺点 优点: 缺点: 延伸 熵权法在环境评价中的具体应用案例是什么? 如何处理和减少熵权法计算过程中的数据异常值或缺失值的影响? 缺失值处理: …

SpringCloud—08—高级之SpringCloud Alibaba中—Sentinel

文章目录 提前预知18、Sentinel是什么?18.1、sentinel是什么?18.2、Sentinel下载安装运行18.3、Sentinel初始化监控18.4、Sentinel流控规则1、流控规则基本介绍2、流控规则之-QPS-直接-快速失败3、流控规则之-线程数-直接失败4、流控规则之-QPS-关联-快速…

做可视化项目如何才能让前端开发和UI设计和谐相处呢?仅供参考

做可视化项目如何才能让前端开发和 UI 设计和谐相处呢? 在当今数字化的时代,可视化项目在各个领域都变得越来越重要。无论是构建一个精美的网站、开发一款实用的移动应用,还是设计一套复杂的数据可视化系统,前端开发和 UI 设计都…

c++信号和槽机制的轻量级实现,sigslot 库介绍及使用

Qt中的信号与槽机制很好用,然而只在Qt环境中。在现代 C 编程中,对象间的通信是一个核心问题。为了解决这个问题,许多库提供了信号和槽(Signals and Slots)机制。今天推荐分享一个轻量级的实现:sigslot 库。…

深入理解MySQL的PreparedStatement

前言 在数据库操作中,安全和效率是至关重要的。PreparedStatement 是一种有效的技术,可以显著提高这两个方面的性能和安全性。下面来具体讲讲。 什么是PreparedStatement PreparedStatement 是一种执行预编译SQL语句的接口。与普通SQL不同,PreparedStatement 在执行前会对…

【UE5.1】NPC人工智能——04 NPC巡逻

效果 步骤 一、准备行为树和黑板 1. 对我们之前创建的AI控制器创建一个子蓝图类 这里命名为“BP_NPC_AIController_Lion”,表示专门用于控制狮子的AI控制器 2. 打开狮子蓝图“Character_Lion” 在类默认值中将“AI控制器类”修改为“BP_NPC_AIController_Lion” 3…

vue3 学习笔记10 -- 父子组件传参和组件间通信

vue3 学习笔记10 – 父子组件传参和组件间通信 父子组件之间的传参 父子组件之间的传参可以通过属性(prop)和事件(event)来实现 使用属性(props)传递数据 在子组件中定义 props 在子组件中使用 defineProps 来定义接收的属性 // children.vue <template> <div>{…

Spring 定时任务Scheduler监控异常和超时取消

Spring 定时任务Scheduler监控异常 设置Scheduler任务超时时间 监控Spring 定时任务Scheduler执行情况 1、定义一个执行任务 import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Comp…

中文词嵌入模型学习

中文词嵌入模型是一种将中文词语表示为固定维度的向量的技术。这些向量保留了词语之间的语义关系&#xff0c;使得相似的词在向量空间中距离更近。以下是关于中文词嵌入模型的详细介绍&#xff0c;包括其原理、特征以及如何使用。 中文词嵌入模型的原理 词嵌入模型的基本原理…