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数 | 不超过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
更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw
相关文章:
Kudu节点数规划
作者:南墨 一、概述 由于Kudu是Hadoop生态的一部分(虽然它不依赖于Hadoop生态系统),因此大多数实际应用场景需要的不仅仅是Kudu;为了输入数据,可能需要Kafka、StreamSets或Spark Streaming;对…...

flutter 充电气泡
前言: 之前一直看到 有手机充电的时候 有气泡从Type-C 的位置冒泡上来 慢慢上移, 然后和上面的圆圈 会和,感觉还是挺好看的。今天试了下用 Flutter 实现了一版本。大致效果如下,而且气泡 和 气泡直接还可以粘黏 实现原理ÿ…...

【C++】deque以及优先级队列
容器适配器 deque的介绍deque的原理介绍 priority_queue的介绍与使用priority_queue的介绍priority_queue的使用constructor(构造函数)emptypushpoptopsize priority_queue的模拟实现 仿函数何为适配器容器适配器deque的缺陷选择deque作为适配器的理由ST…...

手机如何播放电脑的声音?
准备工具: 有线耳机,手机,电脑,远控软件 1.有线耳机插电脑上 2.电脑安装pc版远控软件,手机安装手机端控制版远控软件 3.手机控制电脑开启声音控制 用手机控制电脑后,打开声音控制,电脑播放视频…...

系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS)-解读
系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS) 3.6.1 办公自动化系统的概念3.6.1.1 办公活动3.6.1.1 办公自动化的概念 3.6.2 办公自动化系统的功能3.6.2.1 事务处理3.6.2.1.1 单机系统3.6.2.1.2 多机系统 3.6.2.2 信息管理3.6.2.…...
解决Element UI 表格组件懒加载数据刷新问题
一、问题描述 element ui的table组件设置成懒加载时,遇到数据表格需要更新、删除等操作,子节点不会自动更新。 二、解决思路 刷新数据,就是重新调用load(),通过map记录已展开的节点,需要刷新…...

【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决
主从复制的架构设计如下图所示: 同步原理 具体到数据库之间是通过binlog和复制线程操作的: Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启,binlog dump线程,该线程…...
Ubuntu Grub引导优化
配置文件 sudo vim /etc/default/grub修改参数 引导菜单等待时间 GRUB_TIMEOUT3自动引导上次选择的系统 如果安装了双系统或多系统,可以考虑配置此参数。 # 此参数默认值为0,引导第一个引导项 GRUB_DEFAULTsaved# 此参数默认没有,需要手…...

第3关 -- Git 基础知识
任务1: 破冰活动:自我介绍 任务2: 实践项目:构建个人项目 MeiHuaYiShu...
AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘
问题: 跑之前的python爬虫代码的时候报错 AttributeError: WebDriver object has no attribute find_element_by_xpath 源代码: elements self.driver.find_elements_by_xpath("//tbody[starts-with(id,normalthread)]/tr/th/a[1]")原因&…...
题解:小S与机房里的电脑 Computer_C++算法竞赛_贪心_二分答案_模拟_数据结构
文章目录 小S与机房里的电脑 Computer传统题题目描述输入格式输出格式样例样例输入 1样例输出 1样例输入 2样例输出 2 提示解题思路AC CodeEnd 小S与机房里的电脑 Computer 传统题 时间限制: 1000ms内存限制: 256MiB 题目描述 最近小S想带他的学生打组队娱乐赛,…...
Python @staticmethod、super().__init__()和self
最近在看代码,由于之前没有系统学习过Python,就有些知识点不是很清楚,这里整理一下,方便以后查阅。 Python中的staticmethod\super.init和self Python 装饰器staticmethod和classmethod的作用与区别作用区别代码演示 super() 函数…...

Linux网络:应用层协议HTTP(一)
一、什么是HTTP协议 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就是其中之一。 在互联网世界中,HTTP(HyperText Transfer Protocol&…...
Tomcat底层原理
Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 技术,用于运行Java Web应用。它是由Apache软件基金会开发和维护的。以下是对Tomcat底层原理的详细解析: 1. 启动流程 Tomcat的启动流程主要分为以下几个…...

【Linux】Linux环境设置环境变量操作步骤
Linux环境设置环境变量操作步骤 在一些开发过程中本地调试经常需要依赖环境变量的参数,但是怎么设置对小白来说有点困难,今天就介绍下具体的操作步骤,跟着实战去学习,更好的检验自己的技术水平,做技术还是那句话&…...

C语言:键盘录入案例
主要使用了scanf; scanf的使用方法和注意事项: 1.作用: 用于接收键盘输入的数据并赋值给对应的变量 2.使用方式; scanf("占位符",&变量名); 3.注意事项; 占位符后面的的变量要对应 第一个参数中不写换行 案例1…...
Nginx 中如何实现请求的排队机制?
Nginx 中如何实现请求的排队机制? 在当今数字化的时代,网站和应用的流量就如同潮水一般,时涨时落,时急时缓。想象一下,当流量如洪水猛兽般汹涌而来,服务器就像是那抗洪的堤坝,如果没有有效的管…...

synergy配置
今天介绍一个电脑同步软件synergy。 我们开发时一般会用两套设备,如果使用两套键盘操作起来会很麻烦,这个软件就是解决这个问题,可以使用一套键盘同时操作两台电脑,另一台作为客户端被控制。 安装 在两台电脑上各自下载安装syne…...

Qt开发网络嗅探器03
数据包分析 想要知道如何解析IP数据包,就要知道不同的IP数据包的包头结构,于是我们上⽹查查资料: 以太网数据包 ARP数据包 IPv4 IPv6 TCP UDP ICMP ICMPv6 根据以上数据包头结构,我们就有了我们的protocol.h文件,声明…...

抖音短视频seo矩阵系统源码开发技术分享(二)--SaaS开源
目录 市场背景分析 一、抖音短视频seo矩阵系统开发部署流程 二、 源码开发功能构思 三、 抖音短视频seo源码开发部署注意事项 四、 部分开发代码展示 市场背景分析 抖音短视频seo矩阵系统是通过不同平台不同账号之间建立联系,通过将同一品牌下不同平台不同账号…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...

Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...

ZYNQ学习记录FPGA(二)Verilog语言
一、Verilog简介 1.1 HDL(Hardware Description language) 在解释HDL之前,先来了解一下数字系统设计的流程:逻辑设计 -> 电路实现 -> 系统验证。 逻辑设计又称前端,在这个过程中就需要用到HDL,正文…...

python基础语法Ⅰ
python基础语法Ⅰ 常量和表达式变量是什么变量的语法1.定义变量使用变量 变量的类型1.整数2.浮点数(小数)3.字符串4.布尔5.其他 动态类型特征注释注释是什么注释的语法1.行注释2.文档字符串 注释的规范 常量和表达式 我们可以把python当作一个计算器,来进行一些算术…...
用js实现常见排序算法
以下是几种常见排序算法的 JS实现,包括选择排序、冒泡排序、插入排序、快速排序和归并排序,以及每种算法的特点和复杂度分析 1. 选择排序(Selection Sort) 核心思想:每次从未排序部分选择最小元素,与未排…...