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