Adv

4/26/2011

近况和 Hadoop

很久沒有寫 blog 了,不過沒差.反正原本就該沒有人會看.XD

差不多都是忙工作,和 mysql 戰鬥也在和 Hadoop 戰鬥.

不容易,卻很有挑戰性

最近 Hadoop 的名聲開始高而且使用這個 open source project 的人也越來越多

感覺上好像有很多人有在用,但試用或小玩一下的人比較多.真的大量投入 production 的人還比較少;所以發現問題時很大機會都要自己去解決而不是從其他人的錯誤中學習.看它 source code 多了,也大聲罵它的次數多了.

我必需說...它的 coding implementation 很有問題;而且我還只是說最基本的 HDFS 的部份.差不多沒有文檔,也經常更改Client-Server API protocol 的情況下,最快了了解它的運作方式我都是去直接去看它的 source code

它用它自己類 IPC/RPC 的 Proxy 連去 namedode.... stafeful ; 我不明白為何不用 stateless 而且可以加入不同版本支持的做法 (如果我自己沒看錯,  application 和 cloud 的版本必需一樣,   也就是說應該不能一個 client 連到不同 version 的 hadoop; 至少 0.20 和 0.21 不能)

用 NIO 卻沒有用上 thread-pool;簡單的一個寫入一個 file 的動作原來需要大約三條 threads,同時寫入十個文件則是三十條 threads..) 而且都是 non-pooled-thread ;也不支持 Channel 和 ByteBuffer 寫入

大部份使用的 API都是停留在 1.4 年代的,直接 extend Thread 沒有用 Executor,用 NIO 的部份現在只是為了 read/write timeout;在 Filesystem 可以找到大量 global synchronize 的 method,也奇怪也難以理解的 helper proxy 去實現 RETRY

最大的問題是....它居然真的能跑
所以大家看到有問題都不能不想也不敢去嘗試修正

 

2 則留言:

Derek Lio 說...

wakaka, 我好鐘意你呢句 --> 最大的問題是....它居然真的能跑

beneo 說...

谁说你的博客没有人看,你share的太多太多了