hdfs 为何用 Java 实现?

241 天前
 0littleboy

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

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

这是为啥

2830 次点击
所在节点    程序员
19 条回复
Oktfolio
241 天前
可能是因为它叫 HADOOP Distributed File System
ConfusedBiscuit
241 天前
如果它是用 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
241 天前
yahoo 当年那伙人就愿意拿 java 写
我还问过给 hadoop 起名那哥们,答案就是他当时就愿意用 java ,问能不能用 cpp ,他说他不会......
ysn2233
241 天前
因为最开始想写这个的人想用 java 写
lbbff
241 天前
你们这需求挺离谱的。HDFS 很多功能不需要用 C 去实现啊,而且这种一般都是取决于主力开发的技术栈
banmuyutian
241 天前
不是所有高性能系统都要用 C 写呀,kafka 也是用 Java 开发的
roundgis
241 天前
用 c 把 java 的實現抄一遍?
abcbuzhiming
241 天前
你们要自己从头实现一个 HDFS ?还要用 C 来实现?我能否问贵方打算投入多少人进去? HDFS 当年也是投入了不少人力的,我记得围绕其还有公司的起起落落
ZZ74
241 天前
你用 C
写出来了 绩效到手,再开源下 名利双收
写不出来,也能有所收获,比如回答了自己的这个问题
Leviathann
241 天前
感觉不如 rewrite in rust
kuituosi
241 天前
阿里巴巴内部实现是 cpp 写的,但是不开源跑在阿里云上
dif
241 天前
HDFS 不是基于 Google 的论文写的么?你看论文用 CPP 实现一遍就行了呀。
matepi
241 天前
我来咬勾

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

有没有 namenode 的非 java 的实现呢?
leo97
241 天前
@matepi 拯救世界的任务就交给你了
me1onsoda
241 天前
他可能不会 c
flyqie
241 天前
这问题感觉把 c 换成 cpp 会比较好。。
ensonmj
241 天前
不是有 libhdfs 吗?
julyclyde
241 天前
其实你这里才存在问题吧
为什么要用 C 再写一遍
谁来负责后续的兼容问题
troywinter
239 天前
其实这东西够牛逼的话用 python 写都没毛病,不够牛逼的话用 c 写出来也是个玩具

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

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

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

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

© 2021 V2EX