【问题标题】:Hadoop SAN Storage ReuseHadoop SAN 存储重用
【发布时间】:2014-08-02 08:42:24
【问题描述】:
我们有 600TB 的 EMC SAN 存储。目前,Oracle RAC 正在使用这种存储。出于可扩展性的原因,我们正在用 Hadoop 存储(Yarn、Spark - Hive、Shark)替换 Oracle RAC - 尽管我们在性能上有所妥协。
对于 Hadoop,建议使用本地存储而不是 SAN 存储。但是我们的管理层不愿意浪费 SAN 存储。他们希望保护对 SAN 存储的投资。
我们如何将 SAN 用于 Hadoop?以太网升级会有帮助吗?有哪些选项可以最大限度地利用 SAN 存储(作为 Hadoop 存储)。
【问题讨论】:
标签:
hadoop
hdfs
ethernet
san
oracle-rac
【解决方案1】:
假设我们使用相同的术语 - 特别是 SAN 是通过光纤通道网络访问的块设备 - 那么“本地存储”和“SAN 存储”之间没有太大区别。
您从中获得的性能受到相同因素的限制 - 控制器数量、心轴数量、争用率等。您购买存储阵列/SAN 的原因首先是因为您可以整合您的工作负载并以相同(或更低)的平均值获得更高的突发性能。
但是还有一个额外的因素 - SAN 通常包含一个结构,这是一个用于传输磁盘存储流量的网络。您使用的交换机通常具有高性能/低延迟 - 但它们也可能成为瓶颈和争用点。
Hadoop... 通过使用 HDFS 有效地做同样的事情 - 使用它的多个本地磁盘来获得大的“突发”。这必然会导致您的 SAN 争用,因此您不会再获得太多整合优势 - 而且您最终可能会变得更糟,因为争用意味着瓶颈和延迟。
如果您的存储阵列具有良好的峰值吞吐量、良好的重复数据删除机制和大型缓存,您可能会发现您的情况会更好。只要确保您有足够的端到端峰值吞吐量和 IOP 容量即可。
可能您会发现自己的情况比实际情况更糟 - 但是您是否应该以较低的成本重复使用某些东西,而不是支付额外费用来正确使用它,这更像是一种 IT 政策决定,而不是一个技术的。
【解决方案2】:
显然您将 SAN 用于 Hadoop,但不建议这样做。 SAN 控制器会发生争用,从而降低性能。
将 SAN 用于 hadoop 的最佳方式是:
1.使用 RAID-0 创建 LUN。
2.LUN不应该共享,它只需要专用于一个DataNode服务器
3.如果 DataNode 需要 10GB,则创建 2 个 LUN(或偶数)并在 SAN 的两个控制器之间对这些 LUN 进行负载平衡。
显然,您可以将 SAN 用于具有适当 RAID 级别(具有冗余 - 非零)的 NameNode。