Gav*_*iel 6 hadoop elastic-map-reduce instancetype
我试图找出有多少MASTER,CORE,TASK实例对我的工作是最佳的.我找不到任何解释如何弄明白的教程.
我怎么知道我是否需要超过1个核心实例?我会在EMR的控制台中看到哪些"症状"的指标会暗示我需要多个核心?到目前为止,当我尝试使用1*core + 7*任务实例执行相同的工作时,它的运行方式与8*core相似,但对我来说没有多大意义.或者,我的工作是如此受CPU限制,以至于IO很小?(我有一个仅映射作业,将apache日志文件解析为csv文件)
是否有这样的东西有超过1个主实例?如果是,何时需要?我想知道,因为我的主节点几乎只是等待其他节点在95%的时间内完成工作(0%CPU).
主设备和核心节点可以完全相同吗?当1和唯一节点执行所有操作时,我可以拥有仅主集群.看起来能够拥有一个集群,其中一个节点是主节点和核心节点,其余节点是任务节点,这似乎是合乎逻辑的,但似乎不可能通过EMR以这种方式设置它.这是为什么?
主实例充当管理器并协调整个集群中的所有内容。因此,它必须存在于您运行的每个作业流程中,但您只需要一个实例即可。除非您部署单节点集群(在这种情况下,主实例是唯一运行的节点),否则就实际的 MapReducing 而言,它不会执行任何繁重的工作,因此该实例不必是功能强大的机器。
您需要的核心实例数量实际上取决于作业以及您想要处理它的速度,因此没有单一的正确答案。一件好事是您可以调整核心/任务实例组的大小,因此如果您认为您的作业运行缓慢,那么您可以向正在运行的进程添加更多实例。
核心实例组和任务实例组之间的一个重要区别是,核心实例将实际数据存储在 HDFS 上,而任务实例则不然。反过来,您只能增加核心实例组(因为删除正在运行的实例会丢失这些实例上的数据)。另一方面,您可以通过添加或删除任务实例来增加和减少任务实例组。
因此,这两种类型的实例可用于调整作业的处理能力。通常,您对核心实例使用按需实例,因为它们必须始终运行且不能丢失,而对任务实例使用竞价实例,因为丢失任务实例不会终止整个作业(例如,任务实例未完成的任务)将在核心实例上重新运行)。这是使用竞价实例经济高效地运行大型集群的一种方法。
此处提供了每种实例类型的一般描述:
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/InstanceGroups.html
此外,该视频对于有效使用 EMR 可能很有用:
https://www.youtube.com/watch?v=a5D_bs7E3uc
归档时间: |
|
查看次数: |
1737 次 |
最近记录: |