Hadoop是一個(gè)很神奇的創(chuàng)造,但它發(fā)展過快而表現(xiàn)出一些瑕疵。我愛大象,大象也愛我。不過這世上沒什么是完美的,有的時(shí)候,即使是再好的朋友間也會(huì)起沖突。就像我和Hadoop之間的存在斗爭(zhēng)一樣。下面是我列舉的12個(gè)痛點(diǎn)。

1. Pig vs. Hive
你在 Pig 里用不了 Hive UDFS。在 Pig 中你必須用 HCatalog 來訪問 Hive 表。你在 Hive 里用不了Pig UDFS。在 Hive 中無論是多么小的額外功能,我都不會(huì)感覺像寫一個(gè) Pig 腳本或者“啊,如果是在 Hive 里我可以輕易地完成”,尤其是當(dāng)我寫 Pig 腳本的時(shí)候,當(dāng)我在寫其中之一的時(shí)候,我經(jīng)常想,“要是能跳過這堵墻就好了!”。
2. 被迫存儲(chǔ)我所有共享庫到 HDFS
這是 Hadoop 的復(fù)發(fā)機(jī)制。如果你保存你的 Pig 腳本到 HDFS 上,那么它會(huì)自動(dòng)假設(shè)所有的 JAR 文件都會(huì)在你那里一樣。這種機(jī)制在 Oozie 和別的工具上也出現(xiàn)了。這通常無關(guān)緊要,但有時(shí),必須存儲(chǔ)一個(gè)組織的共享庫版本就很痛苦了。還有,大多數(shù)時(shí)候,你安裝在不同客戶端的相同 JAR,那么為什么要保存兩次?這在 Pig 中被修復(fù)了。別的地方呢?
3. Oozie
Debug 并不好玩,所以文檔里有很多老式的例子。當(dāng)你遇到錯(cuò)誤,可能并不是你做錯(cuò)了什么。可能是配置打印錯(cuò)誤或者格式驗(yàn)證錯(cuò)誤,統(tǒng)稱“協(xié)議錯(cuò)誤”。很大程度上,Oozie 就像 Ant 或 Maven,除了分布式的,不需要工具、有點(diǎn)易錯(cuò)。
4. 錯(cuò)誤信息
你在開玩笑,對(duì)吧?說到錯(cuò)誤信息。我最喜歡的是任何 Hadoop 工具說的,“失敗,無錯(cuò)誤返回,”可以翻譯成“發(fā)生了什么,能找到是你的運(yùn)氣。”
5. Kerberos 身份認(rèn)證協(xié)議
如果你想要想出一種相對(duì)安全的 Hadoop,你就要用到 Kerberos。記住 Kerberos 和它是多么的老舊?所以你只要 LDAP,除了它 Hadoop 中的都沒有被集成:沒單點(diǎn)登錄,無 SAML,無 OAuth,無證書傳遞(相反地,它會(huì)重新認(rèn)證)。更有趣的是,Hadoop 是生態(tài)系統(tǒng)的每一個(gè)部分都寫它自己的LDAP 支持,所以這就是矛盾的。
6. Knox 數(shù)據(jù)保護(hù)應(yīng)用程序
因?yàn)橛?Java 寫一個(gè)合適的 LDAP 連接器需要做至少100次才能保證正確。哎呀,看看那代碼。它并不真正地有效維護(hù)好連接池。實(shí)際上,我想 Knox 就是為 Java 或者一時(shí)的熱情而創(chuàng)造出來的。你可以通過一個(gè)寫好的 Apache config,mod_proxy,mod_rewrite 做同樣的事情。實(shí)際上,那是 Knox 的基礎(chǔ),除了在 Java 中。對(duì)于啟動(dòng),在認(rèn)證之后,它不傳遞信息給 Hive 或 WebHDFS 或你正在訪問的東西,但是會(huì)啟動(dòng)它。
7. Hive 不會(huì)讓我制作外部表格,但也不會(huì)刪除它
如果你讓 Hive 來管理表格,要是你終止對(duì)表格的使用的話,它會(huì)自動(dòng)將它們?nèi)縿h除。如果你有一個(gè)外部表格,它就不會(huì)將它刪除。為什么不能有一個(gè)“也刪除外部表”的功能呢?為什么我必須在外部刪除?還有,當(dāng) Hive 特別是與 RDBMS 一起應(yīng)用時(shí),為什么不能有 Update 和 Delete 功能?
8. Namenode 失敗
Oozie、Knox 和 Hadoop 的其它部分都不遵循新的 Namenode HA 資料。你可以在 Hadoop 中啟用HA,只要你不使用與之相關(guān)的東西。
9. 文檔
抱怨都是陳詞濫調(diào)了,但是還是檢查一下。37行錯(cuò)了——更糟糕的是,網(wǎng)絡(luò)上的所有文章都錯(cuò)了。這證明沒有人會(huì)費(fèi)心在執(zhí)行前檢查一下。Oozie 文檔更可怕,大多數(shù)例子對(duì)它給的格式校驗(yàn)都無法通過。
10. Ambari 覆蓋范圍
我曾批評(píng)過Ambari,就我所知的 Hadoop 架構(gòu)來說,Ambari 能夠工作真是很神奇。那么,他們可能會(huì)抱怨,Ambari 的缺點(diǎn)到底在哪?例如,Ambari 不能安裝,或者有些情況下不能正確安裝,包括多種HA 設(shè)置,Knox 等等。我確定它會(huì)變得更好,但是“手動(dòng)安裝之后”或者“我們已經(jīng)創(chuàng)建了一個(gè)備份腳本”,這些不應(yīng)該出現(xiàn)在我的郵件和文檔中。
11. 知識(shí)庫管理
說到Ambari,當(dāng)知識(shí)正在升級(jí)的時(shí)候,你有完成過安裝嗎?我有過,但是它表現(xiàn)的并不好。實(shí)際上,有時(shí)候它找到了最快的鏡像。Ambari 并不關(guān)注它下載下來的東西是否兼容。你可以用你自己的方式配置那部分,但是它在數(shù)百個(gè) Hadoop 節(jié)點(diǎn)上仍然會(huì)報(bào)說你安裝有誤。
12. Null 指針異常
我經(jīng)常在運(yùn)行過程中遇到這樣的轉(zhuǎn)換錯(cuò)誤,換句話說,他們不應(yīng)該在Pig、Hive 等數(shù)據(jù)查詢和處理工具中被表示為 Null 指針異常。對(duì)任何相似的抱怨,都會(huì)有的答復(fù),“歡迎補(bǔ)丁!”或者“嘿,我正在處理。”
Hadoop 已經(jīng)出來很長(zhǎng)時(shí)間了,它一直是我最喜歡的工具之一,但是那些令人發(fā)狂的尖銳問題也使我很生氣。只是希望開發(fā)者能多用心解決這些問題。不知道你有沒有相似的 Hadoop bug 可以拿出來和大家分享一下,目的是督促Hadoop能做得更好!
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://m.hanmeixuan.com/
本文標(biāo)題:這12件事讓我很討厭Hadoop
本文網(wǎng)址:http://m.hanmeixuan.com/html/news/10515317113.html