為什麼如此難用?Hadoop 的 12 個技術痛點

edithfang發表於2014-10-29
文章作者Andrew C. Oliver是一位專業的軟體顧問,同時還是北卡羅來納州達勒姆大資料諮詢公司Open Software Integrators的總裁和創始人。長時間的使用Hadoop,他發現了這12件事情真的影響了Hadoop的易用性。

Hadoop是一個很神奇的創造,但它發展過快而表現出一些瑕疵。我愛大象,大象也愛我。不過這世上沒什麼是完美的,有的時候,即使是再好的朋友間也會起衝突。就像我和Hadoop之間的存在鬥爭一樣。下面是我列舉的12個痛點。


1. Pig vs. Hive

你 在 Pig 裡用不了 Hive UDFS。在 Pig 中你必須用 HCatalog 來訪問 Hive 表。你在 Hive 裡用不了Pig UDFS。在 Hive 中無論是多麼小的額外功能,我都不會感覺像寫一個 Pig 指令碼或者“啊,如果是在 Hive 裡我可以輕易地完成”,尤其是當我寫 Pig 指令碼的時候,當我在寫其中之一的時候,我經常想,“要是能跳過這堵牆就好了!”。

2. 被迫儲存我所有共享庫到 HDFS

這 是 Hadoop 的復發機制。如果你儲存你的 Pig 指令碼到 HDFS 上,那麼它會自動假設所有的 JAR 檔案都會在你那裡一樣。這種機制在 Oozie 和別的工具上也出現了。這通常無關緊要,但有時,必須儲存一個組織的共享庫版本就很痛苦了。還有,大多數時候,你安裝在不同客戶端的相同 JAR,那麼為什麼要儲存兩次?這在 Pig 中被修復了。別的地方呢?

3. Oozie

Debug 並不好玩,所以文件裡有很多老式的例子。當你遇到錯誤,可能並不是你做錯了什麼。可能是配置列印錯誤或者格式驗證錯誤,統稱“協議錯誤”。很大程度上,Oozie 就像 Ant 或 Maven,除了分散式的,不需要工具、有點易錯。

4. 錯誤資訊

你在開玩笑,對吧?說到錯誤資訊。我最喜歡的是任何 Hadoop 工具說的,“失敗,無錯誤返回,”可以翻譯成“發生了什麼,能找到是你的運氣。”

5. Kerberos 身份認證協議

如 果你想要想出一種相對安全的 Hadoop,你就要用到 Kerberos。記住 Kerberos 和它是多麼的老舊?所以你只要 LDAP,除了它 Hadoop 中的都沒有被整合:沒單點登入,無 SAML,無 OAuth,無證照傳遞(相反地,它會重新認證)。更有趣的是,Hadoop 是生態系統的每一個部分都寫它自己的LDAP 支援,所以這就是矛盾的。

6. Knox 資料保護應用程式

因 為用 Java 寫一個合適的 LDAP 聯結器需要做至少100次才能保證正確。哎呀,看看那程式碼。它並不真正地有效維護好連線池。實際上,我想 Knox 就是為 Java 或者一時的熱情而創造出來的。你可以通過一個寫好的 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行錯了——更糟糕的是,網路上的所有文章都錯了。這證明沒有人會費心在執行前檢查一下。Oozie 文件更可怕,大多數例子對它給的格式校驗都無法通過。

10. Ambari 覆蓋範圍

我曾批評過Ambari,就我所知的 Hadoop 架構來說,Ambari 能夠工作真是很神奇。那麼,他們可能會抱怨,Ambari 的缺點到底在哪?例如,Ambari 不能安裝,或者有些情況下不能正確安裝,包括多種HA 設定,Knox 等等。我確定它會變得更好,但是“手動安裝之後”或者“我們已經建立了一個備份指令碼”,這些不應該出現在我的郵件和文件中。

11. 知識庫管理

說 到Ambari,當知識正在升級的時候,你有完成過安裝嗎?我有過,但是它表現的並不好。實際上,有時候它找到了最快的映象。Ambari 並不關注它下 載下來的東西是否相容。你可以用你自己的方式配置那部分,但是它在數百個 Hadoop 節點上仍然會報說你安裝有誤。

12. Null 指標異常

我經常在執行過程中遇到這樣的轉換錯誤,換句話說,他們不應該在Pig、Hive 等資料查詢和處理工具中被表示為 Null 指標異常。對任何相似的抱怨,都會有的答覆,“歡迎補丁!”或者“嘿,我正在處理。”

Hadoop 已經出來很長時間了,它一直是我最喜歡的工具之一,但是那些令人發狂的尖銳問題也使我很生氣。只是希望開發者能多用心解決這些問題。不知道你有沒有相似的 Hadoop bug 可以拿出來和大家分享一下,目的是督促Hadoop能做得更好!

英文:networkworld

相關連結
相關閱讀
評論(1)

相關文章