因為最近PTT的SoftJob版,有關Hadoop的討論引起了版友之間的激烈討論,
一開始的那篇引起爭論的文章,我認為他講的沒有錯,
http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html
基本上資料量不大,就別用Hadoop,MapReduce在初始化的時候真的有點慢。
當你資料量大到單台主機沒辦法進行運算,Hadoop算其中一個選擇...
之前有聽過一個強者大大說過,不要從你現有的技術為出發點,去想有什麼應用,而是要從解決問題下手,去思考有什麼技術可以來解決。
剛接觸到Hadoop的時候,總會遇到問題就想說,那就來玩玩看Hadoop,用MapReduce來解,結果發現光是debug就花去不少時間,還不如用Python或是直接把資料轉到DB用SQL語句解。
另外就是做迭代類型的運算,其實用Hadoop也不太適合,因為光是I/O處理和等其他Job的時間,就顯得很沒有效率,不過前陣子聽到spark/shark,覺得蠻酷了,而且用Scala寫MapRecude感覺好容易。
而且蠻多NoSQL的資料庫也能達到分散式儲存與運算,其實也不一定要用Hadoop,端看應用情境來做使用。不過最近使用Impala後(可相容Hive,而且蠻快了!),因為他底層還是有使用到HDFS的架構,就會覺得,儘管這隻大象步履闌珊,但是也激起其他Open Source專案的互動。