文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从0到1构建大数据平台,如何规划集群硬件与软件

2024-12-01 19:00

关注

1.HDFS集群节点规划

假如业务系统数据量每天增量 50T,保留周期为 30 天,那么 HDFS 存储 容量为 50T * 30 天 * 3 副本 * 2 倍(数据源+清晰加工) = 9000T = 8.79P 。假如每个机器的磁盘是 4T * 10 = 40T, 每台机器的可用存储容量为 40T * 0.75 = 30T, 节点预估数量= 9000T / 30 = 300 节点,所以 datanode 的节 点最小数量为 300 个。

2.YARN集群节点规划

根据任务量和性能评估 YARN 的节点数是很难的,难以评估,所以 NodeManager节点数可以和datanode节点数保持一致,如果算力负载过高, 根据实际情况再扩容即可。

3.HBase集群节点规划

HBase 节点规划:一般开始搭建是根据 HDFS 存储公式计算即可,如果从增加并发的考虑,一般一个 RegionSever 并发为 5000 ~2 万(优化后并发更高), 可以根据业务实际并发估计节点数量。

4.Kafka集群节点规划

Kafka 节点规划:一般开始搭建是根据类似 HDFS 存储公式计算,一般1个 broker 并发为 5 万(优化后并发更高),可以根据业务实际并发估计节点数量。

5.Zookeeper集群节点规划

Zookeeper 节点规划:集群开始搭建时3节点就够用了,如果发现 zookeeper 负载过高或有超时现象时可以考虑扩展到 5 节点。

6.大数据集群厂商选择

集群中的每个组件要做高可用,一般国企会用 CDH,互联网公司会用开源社区版演化自己平台。

02大数据集群硬件规划

1.磁盘阵列概念

RAID:磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"数块独立磁盘构成具有冗余能力的阵列”之意。

RAID0 是把多个(最少2个)硬盘合并成1个逻辑盘使用,数据读写时对各硬盘同时操作,不同硬盘写入不同数据,速度快。

RAID1是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

Raid5是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中,“parity”部分存放的就是数据的奇偶校验信息,换句话说,Raid5技术实际上没有备份磁盘中的真实数据,而是当硬盘设备出现问题后,通过奇偶校验技术来尝试重建损坏的数据。Raid5这样的技术特性 “妥协”的兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。

Raid10是Raid1和Raid0的组合体,Raid10技术至少需要4块硬盘来组建,其中先分别两两制成Raid1磁盘阵列,以保证数据的安全性。然后再对两个Raid1磁盘按阵列实施Raid0技术,进一步提高硬盘设备的读写速度。

2.HDFS集群硬件规划

内存:NameNode 内存一般 100 万个 block 对应 1G 的堆内存,比如我们最大的一个集群的 block 达到了 9000 万,会占内容 90G,NameNode 的内存不止存放 block,我们产线环境配置的是 200G+。

磁盘:主节点NameNode主要 CPU/内存配置高些,系统盘做 RAID1,hdfs要安装在系统盘上,如果有其他的数据盘,可以做 RAID5,容量所需不大,500G~ 1T 即可。

从节点 datanode 内存/CPU/磁盘都有要求,我们产线存储每服务器 4T*10=40T 台

备注:DataNode对磁盘要求比较高。

3.YARN集群硬件配置

主节点 ResourceManager 主要 CPU/内存配置高些,系统盘做 RAID1,yarn要安装在系统盘上,如果有其他的数据盘,可以做 RAID5,容量所需不大, 500G~1T 即可。

备注:因为ResourceManager要做调度,所以CPU可以分配多一点,内存不用太大。

从节点 NodeManager 对 CPU 和内存都有要求。

备注:NodeManager一般与DataNode共用节点,对内存要求不是很高,主要是计算。

4.HBase集群硬件配置

主节点 Master CPU 内存中配就行。

从节点 RegionServer 内存可以大些。

备注:RegionServer对内存要求较高,blockcache和Memstore都需要占用内存。

5.Kafka集群硬件配置

03大数据集群目录规划

1.管理节点的系统盘与数据盘

OS磁盘建议RAID1,建议200G以上,并且做LVM(逻辑卷),这样可以动 态调整OS空间大小,安装包需要安装在OS盘,namenode的fsimage/editlog、jouralnode的/editlog、zookeeper的数据日志都放在OS盘(RAID1)。 

管理节点的数据盘做RAID5,管理节点的数据盘如下所示: 

2.数据节点的数据盘

数据节点的数据盘做RAID0(一块盘做RAID0,硬件RAID)作为数据盘,文件格式为xfs,并配置noatime,不做LVM,最好是同构。数据节点的数据盘: 

备注:数据盘大小建议一致,避免数据不均衡;磁盘不能做LVM,避免影响存储性能。

04Kafka Topic分区规划

1.Kafka磁盘规划

么磁盘总存储就是 165000g。 

2.Kafka Topic分区方式1

合理预分区:所有分区数量为磁盘总数的整数倍。如所有的 topic 总数据量为 50000g,磁盘个数为 200,那么就可以设置总分区数为 200/400/600.具体多少分区数视业务决定。若分区数为 400,那么一个分区的大小约 125g。

案例1:

某一个 topic:cbss001 的预估数据量是 210g,那么通过计算(每个分区:125g)可以将其分成两个分区。这样根据 kafka 副本落盘策略,各个主机磁盘就能保证最大限度的存储均衡。 

案例2:​

如果我们建立了一个非常大的 topic(100个分区),那么此 topic 的分区数量应该是磁盘数的整数倍;如果说我们还有建立一个小的 topic(如10个分区),那么此 topic 的每个分区大小应该跟之前的大的 topic 分区的大小保持一致。

3.Kafka Topic分区方式2

确定分区数量的方法:

(1)创建一个只有1个分区的topic

(2)测试这个topic的producer吞吐量和consumer吞吐量。

(3)假设他们的值分别是Tp和Tc,单位可以是MB/s.

(4)然后假设总的目标吞吐量是Tt,那么分区数=Tt/min(Tp,Tc)

kafka性能基准测试:

(1)Kafka Producer压力测试

bin/kafka-producer-perf-test.sh  --topic test --record-size 100 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=hadoop1:9092,hadoop2:9092,hadoop3:9092

说明:

record-size是一条信息有多大,单位是字节。

num-records是总共发送多少条信息。

throughput 是每秒多少条信息,设成-1,表示不限流,可测出生产者最大吞吐量。

(2)Kafka Consumer压力测试

bin/kafka-consumer-perf-test.sh --broker-list hadoop1:9092,hadoop2:9092,hadoop3:9092 --topic test --fetch-size 10000 --messages 10000000 --threads 1

参数说明:

--zookeeper 指定zookeeper的链接信息

--topic 指定topic的名称

--fetch-size 指定每次fetch的数据的大小

--messages 总共要消费的消息个数

05HBase 表Region规划

1.业务场景

每天写入5亿+条数据

每天写入176G+数据量

region分裂大小为10G

TTL为20天

rowkey为手机号

2.预建分区个数

预建分区的个数=最终保有的数据量/每个regin配置的大小

(1)Region最大值推荐10-20Gb, 最优值推荐5-10Gb。

(2)数据总量=176*20=3520G

3.预分区实现

方法一:

admin.createTable(tabledesc,startkey,endkey,numRegion)

方法二:

admin.createTable(tableDesc ,splitKeys);​

来源:大数据研习社内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯