apache hadoop 是一個免費軟體,但實際上,除非是擁有龐大工程師團隊的大公司,否則最好不要去建立僅供内部使用的hadoop版本,因為如果要購買技術支援,那 hadoop 就不是免費的了。jim scott 是 mapr 企業戰略&架構部門的負責人。2009年,他接觸了自己的第一個 hadoop 版本 cloudera。他發現,apache hadoop 平台存在一些固有的設計缺陷。近日,他從以下幾個方面分析了這些缺陷,并介紹了 mapr 的解決方案。
hdfs 的 append-only 檔案通路方式是一個巨大的障礙,導緻下遊項目不得不解決這個問題。例如,hbase 就實作了“墓碑化(tombstoning)”和“合并(compactions)”功能。但是,如果這些動作發生在負載高峰期,會嚴重影響生産系統的性能。mapr 通過建立 mapr-db 解決了該問題。mapr-db 模仿了谷歌的 bigtable,支援 hbase api,是一個零管理實時資料庫。
hdfs 不相容 posix 和 nfs。要檢視 hdfs 中的檔案,隻能通過 hdfs 指令行接口來查詢。mapr-fs 是一個作業系統級的檔案系統,相容 posix。檢視該分布式檔案系統中的檔案,隻需要使用 ls 指令。編輯其中的檔案,也不需要專門的工具。linux 中任何可以讀寫 nfs 系統的應用程式都可以讀寫 mapr-fs。
apache hadoop 在災難恢複和備份方面存在嚴重不足。hadoop 的資料複制可以有效應對磁盤故障,但對資料損壞和人為錯誤無能為力。謹慎起見,在向生産環境部署新軟體之前,需要生成一個資料快照。但是,apache hadoop 的快照隻是一個中繼資料副本。而 mapr 快照則近乎是資料的瞬時拷貝,即使檔案正在被寫入也可以生成。并且,使用者還可以生成 mapr-db 表的快照。
任何優秀的企業應用程式都離不開維護、管理和更新,hadoop 也不例外。但 hadoop 的更新維護可能會非常麻煩。mapr 每次釋出都會針對許多開源軟體項目的多個版本進行測試。它是唯一一個支援在同一個叢集上運作軟體的不同版本的 hadoop 版本。
在使用 hadoop 的時候,相關開源軟體的選擇是個難題。mapr 支援開放式 api,提供了一個無偏見的 hadoop 開源軟體集合,使使用者能夠選擇自己需要的開源項目。
此外,jim 還提到,namenode 是個單點故障點。感興趣的讀者可以進一步閱讀。
對 mapr 感興趣的讀者,可以下載下傳 mapr m3 社群版本,免費體驗 mapr 的性能。