运行 Hadoop 集群:全面指南
1. EC2 实例与集群调优
EMR 集群的规模取决于数据集大小、文件和块的数量(决定分片数量)以及工作负载类型(需避免任务内存不足时将数据溢出到磁盘)。一般来说,理想的集群规模应能最大化并行性。每个实例的映射器(mappers)和归约器(reducers)数量以及每个 JVM 守护进程的堆大小,通常在集群配置时由 EMR 进行配置,并在可用资源发生变化时进行调整。
2. 集群调优的通用思路
除了针对 EMR 集群的特定调优建议外,在任何类型的集群上运行工作负载时,还需考虑以下通用思路:
- JVM 相关考虑
- 版本与模式 :应运行 64 位版本的 JVM 并使用服务器模式。虽然生成优化代码可能需要更长时间,但它采用更激进的策略,并会随时间重新优化代码,非常适合像 Hadoop 进程这样的长期运行服务。
- 内存分配 :要为 JVM 分配足够的内存,以防止过于频繁的垃圾回收(GC)暂停。目前,并发标记 - 清除收集器是 Hadoop 最经测试和推荐的选择。自 JDK7 引入以来,G1 收集器在许多其他工作负载中已成为首选的 GC 选项,因此值得关注其最佳实践的发展。这些选项可在 Cloudera Manager 每个服务的配置部分中作为自定义 Java 参数进行配置。
- 小文件问题
- 问题描述 :Hadoop 针对大文件和大分块大小进行了优化,但某些工作负载或数据源可能会将大量小文件推送到 HDFS
超级会员免费看
订阅专栏 解锁全文
1230

被折叠的 条评论
为什么被折叠?



