hdfs 为何用 Java 实现?

2023-09-11 13:56:45 +08:00
 0littleboy

现在有个需求要实现一个 hdfs

要用 C 开发,查了下官方的实现,用的是 java

这是为啥

3118 次点击
所在节点    程序员
19 条回复
Oktfolio
2023-09-11 14:07:44 +08:00
可能是因为它叫 HADOOP Distributed File System
ConfusedBiscuit
2023-09-11 14:51:23 +08:00
如果它是用 C 开发的话,就又有人要问 “hdfs 为何用 C 实现?”

----- 抖机灵分割线 -----

1. 关于实现语言
( 1 )由于它属于 Hadoop 生态,大数据生态,特别是 Hadoop 生态,Java 就是主力语言啊,如果算上 Spark 和 Flink ,即使不是 Java 生态,也是 JVM 生态。
( 2 )可能看到 FS 就觉得很底层,底层就该用 C ,但是实际上这个 FS 和操作系统的 FS 比,完全不是底层的东西,所以……

2. 它用什么语言实现跟用户基本没啥关系。“现在有个需求要实现一个 hdfs”,这个就很奇怪,因为
( 1 )正常来说,没必要重复造轮子,直接用 hdfs 的接口或 SDK 就行,你用什么语言区别不大(虽然用 Java 可能最省事)
( 2 )如果真是按照字面的理解,要重复造一个轮子了……那如果语言一致的话……你是想直接复制粘贴吗?
liprais
2023-09-11 14:53:56 +08:00
yahoo 当年那伙人就愿意拿 java 写
我还问过给 hadoop 起名那哥们,答案就是他当时就愿意用 java ,问能不能用 cpp ,他说他不会......
ysn2233
2023-09-11 15:01:56 +08:00
因为最开始想写这个的人想用 java 写
lbbff
2023-09-11 15:02:45 +08:00
你们这需求挺离谱的。HDFS 很多功能不需要用 C 去实现啊,而且这种一般都是取决于主力开发的技术栈
banmuyutian
2023-09-11 15:04:49 +08:00
不是所有高性能系统都要用 C 写呀,kafka 也是用 Java 开发的
roundgis
2023-09-11 15:10:39 +08:00
用 c 把 java 的實現抄一遍?
abcbuzhiming
2023-09-11 15:10:52 +08:00
你们要自己从头实现一个 HDFS ?还要用 C 来实现?我能否问贵方打算投入多少人进去? HDFS 当年也是投入了不少人力的,我记得围绕其还有公司的起起落落
ZZ74
2023-09-11 15:12:38 +08:00
你用 C
写出来了 绩效到手,再开源下 名利双收
写不出来,也能有所收获,比如回答了自己的这个问题
Leviathann
2023-09-11 15:24:28 +08:00
感觉不如 rewrite in rust
kuituosi
2023-09-11 15:28:30 +08:00
阿里巴巴内部实现是 cpp 写的,但是不开源跑在阿里云上
dif
2023-09-11 16:03:00 +08:00
HDFS 不是基于 Google 的论文写的么?你看论文用 CPP 实现一遍就行了呀。
matepi
2023-09-11 16:07:20 +08:00
我来咬勾

Namenode 当文件数多的时候,还仰仗 JVM 的堆内存管理,其实挺有问题的。fullgc 一下就整体不服务。

有没有 namenode 的非 java 的实现呢?
leo97
2023-09-11 16:19:22 +08:00
@matepi 拯救世界的任务就交给你了
me1onsoda
2023-09-11 16:20:20 +08:00
他可能不会 c
flyqie
2023-09-11 18:03:30 +08:00
这问题感觉把 c 换成 cpp 会比较好。。
ensonmj
2023-09-11 18:38:51 +08:00
不是有 libhdfs 吗?
julyclyde
2023-09-11 20:00:21 +08:00
其实你这里才存在问题吧
为什么要用 C 再写一遍
谁来负责后续的兼容问题
troywinter
2023-09-13 10:47:19 +08:00
其实这东西够牛逼的话用 python 写都没毛病,不够牛逼的话用 c 写出来也是个玩具

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

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

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

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

© 2021 V2EX