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是啥:分布式系统基础架构

Hadoop-由Apache基金会所开发的分布式系统基础架构

Hadoop总结——Hadoop基础

SmartX发布SMTX OS 4.0 与 分布式块存储产品, 升级“生产就绪”的新一代IT基础架构

Hive基础架构

Hadoop | 02架构简介