V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dtgxx
V2EX  ›  问与答

hadoop 可以使用 nas 吗?

  •  
  •   dtgxx · 2023-08-08 11:54:21 +08:00 · 841 次点击
    这是一个创建于 484 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大佬们,最近公司要做大数据计算,因为要的存储比较大,计算资源还好,所以服务器不多,所以想把存储和计算分离。 我们考虑的方案是,使用 nas 的 nfs 去挂载到每一台服务器,然后 hadoop 直接配置 nfs 挂载到那个盘,这样磁盘扩容方便,存储大,安全性高,用万兆的网卡去对 nas 做并发读写。

    现在就是不知道业内有没有这么搞的,因为之前都是买好多服务器,每个服务器插好多硬盘,没直接用过 nas ,不知道 hadoop 这套业内是不是也有基于 nas 搞的,有啥问题没。

    因为我们想存储计算分离,除了这个方案,还有更好的方案吗?
    10 条回复    2023-08-08 14:53:30 +08:00
    heyjei
        1
    heyjei  
       2023-08-08 13:11:59 +08:00   ❤️ 2
    可以这样做,有些企业就是用挂存储的方式做的。但是这样做是传统的思维用在了新技术上。

    HDFS 设计理念里面有一个非常重要的就是“Moving Computation is Cheaper than Moving Data”,上面的做法正好违反了这个理念。

    举一个简单的例子,你的集群有 10 个节点,挂的万兆网卡的 NAS ,那么你的集群总的 IO 读写就是 1 万兆,因为所有的节点共享这 1 万兆的带宽。
    如果 10 个节点,每个节点,插了 8 个 SATA3 接口的 SSD ,速度算 5G 吧( 6G 稍微打个折),那一个节点的 IO 读写就是 40G ,也就是 4 万兆,10 个节点就是 40 万兆。

    IO 读写性能差了 40 倍。

    但是 Hadoop 的性能并不是单纯的看 IO 性能,如果你的计算类型比较耗 CPU 的话,能够通过分布式的计算来加速运算的话,你的方案也是可行的。
    heyjei
        2
    heyjei  
       2023-08-08 13:14:40 +08:00   ❤️ 1
    很多云上的 Hadoop 解决方案,其实用的也都是挂存储的方案,甚至有些挂的是 S3
    qianxaingmoli
        3
    qianxaingmoli  
       2023-08-08 13:18:20 +08:00   ❤️ 1
    应该可行,但是貌似都在搞 MinIO 这种对象存储形式的,也有类似云厂商那样为 hadoop 优化对象存储的产品
    https://www.minio.org.cn/hdfs-migration.html
    https://juicefs.com/zh-cn/product/community-edition
    billlee
        4
    billlee  
       2023-08-08 13:28:30 +08:00 via Android   ❤️ 1
    你把问题想复杂了,HDFS 和 YARN 本来就可以分开部署
    dtgxx
        5
    dtgxx  
    OP
       2023-08-08 13:45:38 +08:00
    @heyjei #1 谢谢大佬,我们上午讨论的时候纠结过这个问题,一个是我们打算每台机器挂八块机械硬盘,每台机器大约 IO 是 200m/s*8=1600m/s ,比万兆慢一些;但是 10 台机器的话,是插 10 跟万兆的线连接 NAS ,而不是十根线插入交换机,然后引一根线到 nas ,所以这块的性能计算的时候没有打折扣。 我心里其实也有些疑问,nas 可以支持并行的 io 访问吗,类似我说的 10 根线都插到 nas 上,提供 10 万兆的速度?

    @qianxaingmoli 谢谢,我学习下

    @billlee 我是知道存算可以分离的,但是单台设备的存储有限,我需要的计算不多,需要加存储就只能买设备,不划算,所以想通过 nas 解决存储问题。
    billlee
        6
    billlee  
       2023-08-08 14:19:25 +08:00   ❤️ 1
    你说的并行 I/O 访问,多块硬盘肯定是并行的,但是总速度你要考虑 HBA 和 PCIe 的带宽限制。如果是一块 HBA 插到 PCIe x16 上,那无论有多少硬盘,速度的瓶颈就在那个 PCIe 接口上。那种五六十个盘位的存储密集型的机器适合对需要容量的需求远大于带宽的场合。Hadoop 的方案大部分情况下是性价比最高的了,一般会用 2U 12 盘位的机器,用 10 TB 硬盘,每台就有 100 TB 容量。
    dtgxx
        7
    dtgxx  
    OP
       2023-08-08 14:25:47 +08:00
    @billlee #6 非常感谢,您说的这个我理解了,确实跟我们考虑的点,有带宽瓶颈。
    heyjei
        8
    heyjei  
       2023-08-08 14:29:40 +08:00   ❤️ 1
    @dtgxx 有啥 NAS 可以插 10 根网线?再说这个万兆网卡也不便宜吧。就算一个 NAS 插了 10 根万兆的线,NAS 本身的存储 IO 有限制的吧,你的 NAS 插几个硬盘,组不组 RAID ,总的 IO 有多少


    其实不用纠结存储的问题,我们很多时候用 Hadoop ,看中的就是 map reduce 的编程模型,用他可以简化很多的计算,把一些单机跑不起来的数据处理跑起来。

    不要纠结能不能把 hadoop 的优势发挥到极致,先跑起来再说。如果要一步到位,那要找厂商提供解决方案。
    xuelu520
        9
    xuelu520  
       2023-08-08 14:47:51 +08:00   ❤️ 1
    要不要考虑下服务器上 PCIE 的固态,比万兆快多了
    dtgxx
        10
    dtgxx  
    OP
       2023-08-08 14:53:30 +08:00
    @heyjei #8 确实是这样,感谢。

    @xuelu520 #9 嗯呢,确实固态快得多,价格也上来了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1066 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:13 · PVG 03:13 · LAX 11:13 · JFK 14:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.