【问题标题】:Distributed Spark and HDFS Cluster with 6 to 7 Nodes hardware configuration具有 6 到 7 个节点硬件配置的分布式 Spark 和 HDFS 集群
【发布时间】:2017-12-24 16:21:40
【问题描述】:
我计划旋转我的开发集群,用于基础设施监控应用程序的趋势分析,我计划使用 Spark 构建该应用程序来分析故障趋势,并使用 Cassandra 来存储传入数据和分析的数据。
考虑从大约 25000 台机器/服务器(可能是不同服务器上的相同应用程序集)收集性能矩阵。我期望每台机器的性能矩阵大小为 2MB/秒,我计划将其推送到具有时间戳、服务器作为主键和应用程序以及一些重要矩阵作为集群键的 Cassandra 表中。我将在此存储信息之上运行 Spark 作业,以进行性能矩阵故障趋势分析。
谈到这个问题,考虑到上述情况,我需要多少个节点(机器)以及 CPU 和内存方面的配置来启动我的集群。
【问题讨论】:
标签:
hadoop
apache-spark
matrix
cassandra
hardware-infrastructure
【解决方案1】:
Cassandra 需要一个精心规划的数据模型才能让事情顺利运行。在您拥有大型数据集并发现您可能会更好地重新安排数据模型之前,花时间在这个阶段进行计划是非常值得的!
“一般”的经验法则是根据查询来塑造模型,同时注意避免诸如非常大的行、大的删除、批处理等可能对性能造成很大影响的事情。
文档在 planning 和 testing 上提供了一个良好的开端,您可能会发现它们很有用。我还建议使用Cassandra stress 工具。您可以使用它将性能测试推送到您的 Cassandra 集群中,以检查延迟和任何性能问题。您也可以使用自己的架构,我个人认为这非常有用!
如果您使用的是 AWS 等基于云的硬件,那么扩展/缩减相对容易,看看哪种方法最适合您。你不需要向 Cassandra 扔大硬件,横向扩展比纵向扩展更容易。
我假设您也将数据拉回一个单独的 Spark 集群以供分析方面使用,因此这些节点将运行普通的 Cassandra(硬件规格较少)。但是,如果您使用的是 Datastax Enterprise 版本(您可以在其中以 spark“模式”运行节点),那么您将需要更强大的硬件以及 spark 驱动程序、执行程序等所需的额外负载。另一个很好的文档链接是 DSE hardware recommendations