我打算在EC2上设置spark群集。主实例需要多少资源?由于master不参与处理任何任务,它可能是最小的EC2实例吗?
答案 0 :(得分:0)
这显然取决于你计划运行的工作类型,集群有多大等等,所以在这个意义上,简单地尝试不同配置的建议是好的。但是,在我纯粹的个人经验中,驱动程序实例应该至少处于从属实例的级别。这主要是由于两个原因。
首先,有时您需要在一个地方完成工作的结果。也许你只是不想花时间组合文件,也许你需要以某种特定顺序的结果,这很难以分布式方式实现,但这意味着驱动程序应该能够保存所有数据(当rdd.collect将结果收集到驱动程序实例时。)
其次,许多基于shuffle的操作似乎需要驱动程序的大量内存。我不确定为什么会发生这种情况的详细信息(如果有人知道,请分享)但我无法计算我看过reduceyKey会导致内存不足错误的次数司机。
答案 1 :(得分:-2)
编辑:我假设您使用的是 Spark 的spark-ec2
脚本,我相信它会安装 NameNode 在主实例中。但是,如果未在master intance中安装 NameNode ,则我的答案没有在评论中 @DemetriKots 正确指出的有效性。
虽然 master 实例不涉及数据处理,但它在管理工作负载和资源分配期间起着重要作用,例如(所有信息都来自源):
NameNode是HDFS文件系统的核心。它保留文件系统中所有文件的目录树,并跟踪整个集群中文件数据的保存位置。它不会存储这些文件本身的数据。
客户端应用程序只要希望找到文件,或者想要添加/复制/移动/删除文件,就可以与NameNode通信。 NameNode通过返回数据所在的相关DataNode服务器列表来响应成功的请求。
This(在左侧索引中查找 Hadoop硬件建议) Hortonworks 文档为 Hadoop <中的主实例指定了一些建议/ em>集群。虽然它可能不适合从属实例(由于 Spark 的内存使用),但我认为它对于 Spark中的主实例非常有用群集。