E-MapReduce(Hadoop)10大类问题之集群规划

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 Tair(兼容Redis),内存型 2GB
简介:

集群规划类问题

所有的使用Hadoop或者打算使用Hadoop的人肯定会遇到集群规划的问题,我到底使用多大的集群规模呢?有没有一个标准呢? 本篇文章就为你介绍集群规划。

在云环境E-MapReduce中,各种搭配是比较自由的。当前,cpu跟memory的比例有1:2及1:4的。磁盘是单机4快盘,从不同的性能有普通云盘、高校云盘、SSD云盘,价格也分别不同,单盘的容量也从40g到32T。

对于 有钱的公司,本文就不用看了,直接用最贵最多的肯定是满足需求的。对于广大的创业公司或者本着开源节流的思想来用的公司,还是需要研究下的。

基本原则

  • 离线在线分开,主要是把在线的流式计算(SparkStreamingStorm)、存储服务(Hbase)与离线计算分开。因为两者追求的目标不一样,在线追求qps响应时间,离线追求吞吐。
  • Hbase需要使用SSD云盘,直接使用EMR提供的HDFS,因为Hbase需要低延迟。
  • 冷数据尽量放在OSS中。
  • 尽量合并小文件,把数据放在OSS中。
  • 对于离线计算,存储计算尽量分离。如果放在OSS中对于的性能较低(小文件特别多),则需要本地磁盘。
  • 在波峰期间,启动EMR按需集群,分析数据,待波峰通过释放集群,以节约成本。
  • 对于spark,尽量配置cpu:memory为1cpu:4g的比例。

用户评估集群的规模的一般步骤:
评估数据量 -> 测试一个小规模的集群的量化性能 -> 最终选择集群的规格。

典型的离线场景

用户每天增加100G的数据,1个月3T,压缩后为 1T(假设压缩率为30%) 数据全部存储在HDFS中,1年之前数据分析比较少,但是希望数据存下来。计算主要以离线机器学习及ETL为主,主要使用hive及spark,并发作业5-10个左右。那客户1年大约有12T的数据。存在HDFS中大约需要36T的磁盘。一般来讲,ETL与机器学习是比较耗费CPU的。目前E-MapReduce作业是从master提交,master可以大一点。

  • 用户的存储需求为12T物理数据,放HDFS需要36T的磁盘
  • 计算的需求,这个不好评估,需要看实际的运行情况,一般来讲,是用户根据运行时间、跟规模一起来评估的。可以先跑一个基本的case,评估一个小集群的运行时间。再按照一定的线性比例上调机器规模。
    假设用户运行大约需要 20slave 8cpu 32g,则

    • 2 master 8cpu32g的机器,磁盘搭配 350G 高校云盘(350G可以保证最大的磁盘IO)
    • 20 slave 8cpu32g 450g*4块的高效云盘
    • 一年之前的数据全部放在OSS中,需要时E-MapReduce直接连接OSS分析

一般来讲,业务的变化,集群就可能不合适了,这个时候需要重新调整集群的规格,最常见的方式就是 增加节点、重新创建一个新的规格的集群(所以最好是包月,当快到期时,需要再创建一个集群)

流式计算

此块比较好规划,基本磁盘可以忽略不计,主要是以 cpu为主。
按照先测试,再按照比例增大。
流式计算纯粹统计uv等cpu与memory按照1:2的比例,需要在内存暂存数据的按照1:4
以saprkstreaming暂存数据为例:

  • 1台master 4cpu8g 350*1 高效云盘
  • 2台slave 4cpu16g 100*4 高效云盘
  • 后续可以按照实际情况扩展节点。

存储服务Hbase

此块磁盘最好使用SSD云盘,考虑到iops
流式计算cpu与memory按照1:4的比例,slave规格可以大一些
开始可以按照:

  • 2台master 4cpu8g 250*1 SSD云盘
  • 2台slave 16cpu64g 250g*4 SSD云盘
  • 后续可以按照实际情况扩展节点。

离线计算 存储与计算分离

离线计算其实可以做到存储与计算分离的,比如把数据全部放在OSS中,再通过无状态的E-MapReduce分析。那E-MapReduce就纯粹的计算,不存在存储跟计算搭配来适应业务了,这样最为灵活。后续会专门有一篇文章讲述存储计算分离的。

后记

集群的规格最终还是需要用户按照自身的业务特点来最终评估,以上只是一些大体的原则。欢迎各位E-MapReduce及Hadoop用户给出自己的建议。


HBase技术交流社区 - 阿里官方“HBase生态+Spark社区大群”点击加入:https://dwz.cn/Fvqv066s

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
149 6
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
69 4
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
33 3
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
57 3
|
1月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
62 1
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
64 2
|
17天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
62 2
|
18天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
57 1
|
1月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
55 1
|
1月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
75 5