大数据集群规划的一点建议

简介: 大数据集群规划的一点建议

大数据集群规划原则:

1:分别对增量数据、全量数据进行规模测算。在实际业务中,对于任何一个企业其业务条线都会有其自己的业务增长趋势,这样随着业务规模的增长企业数据量也会不断增长,所以我们在规划集群时可以按照短期业务(1~2年)、中长期(3~5年)业务增长进行规划,而不是在集群初始化时一次性导入的初始数据量。
比如:我们假设企业的客户量x,所有客户产生的所有业务数据量为y,在构建集群时的初始数据量为c,那么可能的一种企业数据量增长模型为
y = a*f(x) + b*g(x) + c
其中,在大部分企业中如果客户量增加一个量级dx,那么其所对应的日志和订单业务数据量可能是客户量的线性模型f(x),而对于交易类业务的数据量可能是客户量的非线性增长模型g(x),比如笛卡尔积模型。
所以不能通过简单的节点动态增加来调整集群规模和存储计算能力,最好还是通过构建短期业务和中长期业务增长趋势模型来规划集群。
2:针对离线和实时场景,需要做好压测(QPS(每秒查询率)=并发数/平均响应时间),评估任务量、任务数以及各个组件在不同配置下的处理性能。
3:集群高可用保证,针对关键性管理节点,尽可能散落在不同的机器节点上,避免集中在某一两台机器上。
4:对于管理节点与NameNode,ResourceManager,Master,JobManager...等,存储和内存,尽量分配小一点。
5:对于存储 如HDFS DataNode尽量磁盘分配比较大的机器,选择合适的文件格式,并且进行数据压缩。而对于计算节点,如spark 、flink、doris等尽量分配比较高CPU和内存的机器。
6.任务提交参数合理优化:消耗内存的分批次提交。堆内存进行估算,设置合理并行度。
对于计算资源内存的估算没有绝对的标准,需要根据公司使用的计算系统来区分,需根据实际使用的组件(MR\Flink\Spark\),执行了多少任务,实时任务数量,离线任务数量、算法模型等进行实际估算。
一般实时任务占用的资源都是固定的,可以根据业务个数估算。离线任务可以根据 ETL 任 务数和任务资源配置情况估算,计算资源离线和实时同时启用的时候不能超过资源 90%。实时任务资源占用需要小于 50%,如果数据增量为 570G,实时任务 7407/s 的 QPS,一分 钟窗口,如全量计算 444420*(2/1024/1024)=0.85G,有的设置 5 分钟窗口,如全量计算大概是 4.25G。 
如果离线任务,可以把 1/4 的数据放到内存,那就就需要 47.5G 的内存。如果二者同时运行,按照不超过 90%来计算,需要 57.5G。上面只是单纯的从实时和离线单任务来计算,可以选择 64G 内存(一般机器比较新的情况下)。
7.kafka、ZK、Flume传输数据比较紧密的放在一起。
8.客户端尽量放在1到2台服务器上,一是风险隔离,导致集群内部受到不必要的干扰。二是作为跳板机,方便工程师外部访问。
9.有依赖关系的尽量放到同一台服务器(例如:HIVE和DS)
10.CPU和内存的比例一般为1:2,1:3或者1:4三种,具体分配要重点看有多少线程。CDH集群中的MR任务一般采用1:3,实时接收数据的kafka端一般配比高一些,对于spark、kudu这类需要先缓存到内存再保存到磁盘的组件,一般内存需要设置大一些。
11. 对于集群中产生的数据可以按照业务中间数据、临时数据、集群的系统日志、集群的预留空间安全系数等来进行规划。业务中间数据和临时数据会分配一定的空间比例,对于集群的预留空间安全系数可以按照当集群的总体规模使用达到80%就需要进行横向扩容,等等。
笔者曾经在实践中遇到过如下情形,原始的业务数据大概有15T左右,通过多副本存储策略、数据处理过程中产生的大量中间和临时数据、再加上集群需要有预留空间的安全系数等,当时整个集群120T的总空间尽然都不够用,也就是说现实中的业务数据在使用中总体上可能会膨胀好多倍。

常见的分配公式

zookeeper :(100台服务器下)3台; (>=100)5台
kafka:根据数据量的io需求实际测试
  点数计算方式:
   按照吞吐量计算:X(总吞吐量,MB/秒) / 100(单节点最大Producer吞吐量,MB/秒) / 0.85(预留比例)
   按照存储量计算:X(总吞吐量,MB/秒) * 3600 * 24 * D(天数,默认7)* 2(副本数) / 1024 / 1024 / (25 * 0.96) / 0.85(预留比例)
   二者取大值,最少配置2台。
hbase:hbase数据写入快,节点数计算公式:
  节点数 = 规划数据量 * 1.5 (数据膨胀率) * 1(数据压缩率) * 3(3副本)/ 0.8(磁盘利用率) / 0.9 (磁盘进制转换)/ (12 (磁盘个数) * 4T (磁盘容量))
es:写入慢读取快,同样数据写入es和hbase,一般服务器数量多于hbase
  节点数 = 规划数据量 * 1.5 (数据膨胀率) * 1(数据压缩率) * 2(2副本)/ 0.8(磁盘利用率) / 0.9 (磁盘进制转换)/ (24 (磁盘个数) * 0.96T (磁盘容量)* 5 / 6 (RAID系数))
hdfs:数据的总计算资源存储资源。

大数据平台对硬件的规划原则: 如果能够确切地知道存储和计算的资源需要,那么就按照这个需求来配置即可;但如果无法准确地评估出存储和计算资源需求量,那么一定要留下可扩展的余地,比如留下足够的机柜位置、网络接口、磁盘接口等。在实际应用中,存储容量一般很好预估,但计算资源很难预估,因此留下足够的扩展接口,是必须要考虑的一个问题。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
6月前
|
存储 分布式计算 负载均衡
大数据集群节点多块磁盘负载不均衡怎么办?
大数据集群节点多块磁盘负载不均衡怎么办?
|
6月前
|
分布式计算 Hadoop Java
hadoop完全分布式集群搭建(超详细)-大数据集群搭建
hadoop完全分布式集群搭建(超详细)-大数据集群搭建
528 1
|
4月前
|
安全 大数据 Java
elasticsearch|大数据|低版本的elasticsearch集群的官方安全插件x-pack的详解
elasticsearch|大数据|低版本的elasticsearch集群的官方安全插件x-pack的详解
52 0
|
6月前
|
数据采集 消息中间件 监控
大数据组件-Flume集群环境搭建
大数据组件-Flume集群环境搭建
108 0
|
4月前
|
SQL 分布式计算 大数据
大数据技术之集群数据迁移
大数据技术之集群数据迁移
52 0
|
4月前
|
资源调度 大数据 容器
[已解决]大数据集群CPU告警问题解决
[已解决]大数据集群CPU告警问题解决
36 0
|
4月前
|
SQL 分布式计算 Hadoop
最新大数据集群安装方法CentOS7.6__大数据环境安装和配置
最新大数据集群安装方法CentOS7.6__大数据环境安装和配置
139 0
|
4月前
|
分布式计算 Hadoop 大数据
大数据成长之路-- hadoop集群的部署(4)退役旧数据节点
大数据成长之路-- hadoop集群的部署(4)退役旧数据节点
52 0
|
4月前
|
分布式计算 Hadoop 大数据
大数据成长之路-- hadoop集群的部署(3)HDFS新增节点
大数据成长之路-- hadoop集群的部署(3)HDFS新增节点
64 0
|
4月前
|
分布式计算 大数据 Hadoop
大数据错题集----集群的机架感知配置
大数据错题集----集群的机架感知配置
31 0

热门文章

最新文章