hadoop 可以使用 nas 吗?

2023-08-08 11:54:21 +08:00
dtgxx  dtgxx
大佬们,最近公司要做大数据计算,因为要的存储比较大,计算资源还好,所以服务器不多,所以想把存储和计算分离。 我们考虑的方案是,使用 nas 的 nfs 去挂载到每一台服务器,然后 hadoop 直接配置 nfs 挂载到那个盘,这样磁盘扩容方便,存储大,安全性高,用万兆的网卡去对 nas 做并发读写。

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

因为我们想存储计算分离,除了这个方案,还有更好的方案吗?
909 次点击
所在节点   问与答  问与答
10 条回复
heyjei
heyjei
2023-08-08 13:11:59 +08:00
可以这样做,有些企业就是用挂存储的方式做的。但是这样做是传统的思维用在了新技术上。

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
heyjei
2023-08-08 13:14:40 +08:00
很多云上的 Hadoop 解决方案,其实用的也都是挂存储的方案,甚至有些挂的是 S3
qianxaingmoli
qianxaingmoli
2023-08-08 13:18:20 +08:00
应该可行,但是貌似都在搞 MinIO 这种对象存储形式的,也有类似云厂商那样为 hadoop 优化对象存储的产品
https://www.minio.org.cn/hdfs-migration.html
https://juicefs.com/zh-cn/product/community-edition
billlee
billlee
2023-08-08 13:28:30 +08:00
你把问题想复杂了,HDFS 和 YARN 本来就可以分开部署
dtgxx
dtgxx
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
billlee
2023-08-08 14:19:25 +08:00
你说的并行 I/O 访问,多块硬盘肯定是并行的,但是总速度你要考虑 HBA 和 PCIe 的带宽限制。如果是一块 HBA 插到 PCIe x16 上,那无论有多少硬盘,速度的瓶颈就在那个 PCIe 接口上。那种五六十个盘位的存储密集型的机器适合对需要容量的需求远大于带宽的场合。Hadoop 的方案大部分情况下是性价比最高的了,一般会用 2U 12 盘位的机器,用 10 TB 硬盘,每台就有 100 TB 容量。
dtgxx
dtgxx
2023-08-08 14:25:47 +08:00
@billlee #6 非常感谢,您说的这个我理解了,确实跟我们考虑的点,有带宽瓶颈。
heyjei
heyjei
2023-08-08 14:29:40 +08:00
@dtgxx 有啥 NAS 可以插 10 根网线?再说这个万兆网卡也不便宜吧。就算一个 NAS 插了 10 根万兆的线,NAS 本身的存储 IO 有限制的吧,你的 NAS 插几个硬盘,组不组 RAID ,总的 IO 有多少


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

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

@xuelu520 #9 嗯呢,确实固态快得多,价格也上来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/963338

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX