现在有个需求要实现一个 hdfs
要用 C 开发,查了下官方的实现,用的是 java
这是为啥
1
Oktfolio 2023-09-11 14:07:44 +08:00 1
可能是因为它叫 HADOOP Distributed File System
|
2
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 )如果真是按照字面的理解,要重复造一个轮子了……那如果语言一致的话……你是想直接复制粘贴吗? |
3
liprais 2023-09-11 14:53:56 +08:00
yahoo 当年那伙人就愿意拿 java 写
我还问过给 hadoop 起名那哥们,答案就是他当时就愿意用 java ,问能不能用 cpp ,他说他不会...... |
4
ysn2233 2023-09-11 15:01:56 +08:00
因为最开始想写这个的人想用 java 写
|
5
lbbff 2023-09-11 15:02:45 +08:00 via Android
你们这需求挺离谱的。HDFS 很多功能不需要用 C 去实现啊,而且这种一般都是取决于主力开发的技术栈
|
6
banmuyutian 2023-09-11 15:04:49 +08:00
不是所有高性能系统都要用 C 写呀,kafka 也是用 Java 开发的
|
7
roundgis 2023-09-11 15:10:39 +08:00
用 c 把 java 的實現抄一遍?
|
8
abcbuzhiming 2023-09-11 15:10:52 +08:00
你们要自己从头实现一个 HDFS ?还要用 C 来实现?我能否问贵方打算投入多少人进去? HDFS 当年也是投入了不少人力的,我记得围绕其还有公司的起起落落
|
9
ZZ74 2023-09-11 15:12:38 +08:00
你用 C
写出来了 绩效到手,再开源下 名利双收 写不出来,也能有所收获,比如回答了自己的这个问题 |
10
Leviathann 2023-09-11 15:24:28 +08:00
感觉不如 rewrite in rust
|
11
kuituosi 2023-09-11 15:28:30 +08:00
阿里巴巴内部实现是 cpp 写的,但是不开源跑在阿里云上
|
12
dif 2023-09-11 16:03:00 +08:00
HDFS 不是基于 Google 的论文写的么?你看论文用 CPP 实现一遍就行了呀。
|
13
matepi 2023-09-11 16:07:20 +08:00
我来咬勾
Namenode 当文件数多的时候,还仰仗 JVM 的堆内存管理,其实挺有问题的。fullgc 一下就整体不服务。 有没有 namenode 的非 java 的实现呢? |
15
me1onsoda 2023-09-11 16:20:20 +08:00
他可能不会 c
|
16
flyqie 2023-09-11 18:03:30 +08:00
这问题感觉把 c 换成 cpp 会比较好。。
|
17
ensonmj 2023-09-11 18:38:51 +08:00 via iPhone
不是有 libhdfs 吗?
|
18
julyclyde 2023-09-11 20:00:21 +08:00
其实你这里才存在问题吧
为什么要用 C 再写一遍 谁来负责后续的兼容问题 |
19
troywinter 2023-09-13 10:47:19 +08:00
其实这东西够牛逼的话用 python 写都没毛病,不够牛逼的话用 c 写出来也是个玩具
|