IT經理網點評:Hadoop屬于底層基礎軟件,今天大多數IT技術人員并不熟悉這個層面的技術,這造成Hadoop實施難度大,極為難用,開源數據庫SciDB開發(fā)商Paradigm4進行的一項針對111名北美數據科學家的調查顯示,只有48%的受訪數據科學家表示他們在工作中曾使用過Hadoop或者Spark,高達76%的數據科學家抱怨Hadoop太慢,編程速度過慢,以及其他一些局限性。不少專家指出,如果不解決易用性問題,Hadoop將被自己終結。近日一位軟件顧問經過親身實踐,發(fā)現了這12件事影響了Hadoop的易用性。原文由CSDN編譯如下:
本文作者Andrew C. Oliver是一位專業(yè)的軟件顧問,同時還是北卡羅來納州達勒姆大數據咨詢公司Open Software Integrators的總裁和創(chuàng)始人。
Hadoop是一個很神奇的創(chuàng)造,但它發(fā)展過快而表現出一些瑕疵。我愛大象,大象也愛我。不過這世上沒什么是完美的,有的時候,即使是再好的朋友間也會起沖突。就像我和Hadoop之間的存在斗爭一樣。下面是我列舉的12個痛點。
1. Pig vs. Hive
你 在 Pig 里用不了 Hive UDFS。在 Pig 中你必須用 HCatalog 來訪問 Hive 表。你在 Hive 里用不了Pig UDFS。在 Hive 中無論是多么小的額外功能,我都不會感覺像寫一個 Pig 腳本或者“啊,如果是在 Hive 里我可以輕易地完成”,尤其是當我寫 Pig 腳本的時候,當我在寫其中之一的時候,我經常想,“要是能跳過這堵墻就好了!”。
2. 被迫存儲我所有共享庫到 HDFS
這 是 Hadoop 的復發(fā)機制。如果你保存你的 Pig 腳本到 HDFS 上,那么它會自動假設所有的 JAR 文件都會在你那里一樣。這種機制在 Oozie 和別的工具上也出現了。這通常無關緊要,但有時,必須存儲一個組織的共享庫版本就很痛苦了。還有,大多數時候,你安裝在不同客戶端的相同 JAR,那么為什么要保存兩次?這在 Pig 中被修復了。別的地方呢?
3. Oozie
Debug 并不好玩,所以文檔里有很多老式的例子。當你遇到錯誤,可能并不是你做錯了什么??赡苁桥渲么蛴″e誤或者格式驗證錯誤,統稱“協議錯誤”。很大程度上,Oozie 就像 Ant 或 Maven,除了分布式的,不需要工具、有點易錯。
4. 錯誤信息
你在開玩笑,對吧?說到錯誤信息。我最喜歡的是任何 Hadoop 工具說的,“失敗,無錯誤返回,”可以翻譯成“發(fā)生了什么,能找到是你的運氣?!?/p>
5. Kerberos 身份認證協議
如 果你想要想出一種相對安全的 Hadoop,你就要用到 Kerberos。記住 Kerberos 和它是多么的老舊?所以你只要 LDAP,除了它 Hadoop 中的都沒有被集成:沒單點登錄,無 SAML,無 OAuth,無證書傳遞(相反地,它會重新認證)。更有趣的是,Hadoop 是生態(tài)系統的每一個部分都寫它自己的LDAP 支持,所以這就是矛盾的。
6. Knox 數據保護應用程序
因 為用 Java 寫一個合適的 LDAP 連接器需要做至少100次才能保證正確。哎呀,看看那代碼。它并不真正地有效維護好連接池。實際上,我想 Knox 就是為 Java 或者一時的熱情而創(chuàng)造出來的。你可以通過一個寫好的 Apache config,mod_proxy,mod_rewrite 做同樣的事情。實際上,那是 Knox 的基礎,除了在 Java 中。對于啟動,在認證之后,它不傳遞信息給 Hive 或 WebHDFS 或你正在訪問的東西,但是會啟動它。
7. Hive 不會讓我制作外部表格,但也不會刪除它
如 果你讓 Hive 來管理表格,要是你終止對表格的使用的話,它會自動將它們全部刪除。如果你有一個外部表格,它就不會將它刪除。為什么不能有一個“也刪除外部表”的功能 呢?為什么我必須在外部刪除?還有,當 Hive 特別是與 RDBMS 一起應用時,為什么不能有 Update 和 Delete 功能?
8. Namenode 失敗
Oozie、Knox 和 Hadoop 的其它部分都不遵循新的 Namenode HA 資料。你可以在 Hadoop 中啟用HA,只要你不使用與之相關的東西。
9. 文檔
抱怨都是陳詞濫調了,但是還是檢查一下。37行錯了——更糟糕的是,網絡上的所有文章都錯了。這證明沒有人會費心在執(zhí)行前檢查一下。Oozie 文檔更可怕,大多數例子對它給的格式校驗都無法通過。
10. Ambari 覆蓋范圍
我 曾批評過Ambari,就我所知的 Hadoop 架構來說,Ambari 能夠工作真是很神奇。那么,他們可能會抱怨,Ambari 的缺點到底在哪?例如,Ambari 不能安裝,或者有些情況下不能正確安裝,包括多種HA 設置,Knox 等等。我確定它會變得更好,但是“手動安裝之后”或者“我們已經創(chuàng)建了一個備份腳本”,這些不應該出現在我的郵件和文檔中。
11. 知識庫管理
說 到Ambari,當知識正在升級的時候,你有完成過安裝嗎?我有過,但是它表現的并不好。實際上,有時候它找到了最快的鏡像。Ambari 并不關注它下 載下來的東西是否兼容。你可以用你自己的方式配置那部分,但是它在數百個 Hadoop 節(jié)點上仍然會報說你安裝有誤。
12. Null 指針異常
我經常在運行過程中遇到這樣的轉換錯誤,換句話說,他們不應該在Pig、Hive 等數據查詢和處理工具中被表示為 Null 指針異常。對任何相似的抱怨,都會有的答復,“歡迎補??!”或者“嘿,我正在處理?!?/p>
Hadoop 已經出來很長時間了,它一直是我最喜歡的工具之一,但是那些令人發(fā)狂的尖銳問題也使我很生氣。只是希望開發(fā)者能多用心解決這些問題。不知道你有沒有相似的 Hadoop bug 可以拿出來和大家分享一下,目的是督促Hadoop能做得更好!