Hadoop 生产基础架构 - 存储困境
Posted
技术标签:
【中文标题】Hadoop 生产基础架构 - 存储困境【英文标题】:Hadoop Production Infrastructure - Storage Dilema 【发布时间】:2017-03-30 02:40:11 【问题描述】:几个月前,我设法设置了一个非常基本的 Hadoop 集群,仅使用 3 个虚拟机 2 作为 Namenode(活动和备用)和 1 个作为 DataNode。我什至安装了 Zookeeper 来为 Namenode 启用 HA。我也使用 Namenode 作为 Datanode(我知道这在生产环境中是 BIG NO),我只是为了测试。我所做的安装基本上是通过下载 Hadoop 和其他二进制文件,而不是使用任何 CDH 安装,只是为了了解底层配置文件以及它如何影响设置。
这三个 VM 的存储空间已映射到 NFS 的专用卷共享(我们已经设置并使用了 NFS 基础架构)。
现在在玩弄了所有设置和安装之后,我们决定移动 fwd 并设置生产环境。起初,这将是一个非常基本的集群,最多有 4-5 个数据节点。我计划购买两台高端服务器作为 Namenode 和 Standby Namenode。而对于 Datanode ,我很困惑。
我们不会使用 MapReduce 框架,而是计划使用 Apache Spark。所以我们的工作在使用 Spark 时会占用大量内存。所以我的基本理解是,这些 Datanode 的内存(RAM)应该在高端运行 Spark Worker 守护进程。 Datanode 的存储怎么样?是否必须使用本地硬盘空间在 Datanode 中存储数据?或者我可以像测试环境一样将存储映射到 NFS 卷。
谁能告诉我通过 NFS 而不是物理本地存储在 Datanode 上设置存储的优缺点 - 特别是当我计划运行 Spark Jobs 时。这会影响处理速度吗?
此外,NFS 基础架构设置为具有 RAID 功能。所以在那种情况下,我什至应该费心在 Hadoop 中设置复制因子 - 如果我最终使用 NFS 进行存储。
抱歉这些问题,希望有人能澄清这个歧义。
【问题讨论】:
【参考方案1】:与使用集中式存储(像 SAN、NAS)。
所以我想说,如果您对从 NFS 获得的 IOPS 没问题,但请记住您必须将其呈现为 HDFS。如果您的 RAID 满足您的要求,您可以选择 1 作为复制因子并节省存储成本。
如果您不打算使用 MapReduce 并使用 NFS 作为存储并且对 Spark 感兴趣,则不需要 Hadoop/HDFS,您可以直接在没有 Hadoop 的裸机(或 VM)上安装 Spark,然后做任何您想做的事情。
【讨论】:
以上是关于Hadoop 生产基础架构 - 存储困境的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop-由Apache基金会所开发的分布式系统基础架构