京東商城布局云計算 自主研發(fā)Hadoop解決方案
記者近日獲悉,京東商城在Hadoop高可用方面的研究,取得了重大成果。在Hadoop集群運維方面,一直以來都有這樣一個難題困擾著業(yè)界:線上集群,由于NameNode的異常,極有可能導(dǎo)致Hadoop集群服務(wù)中斷;NameNode軟硬件系統(tǒng)定期維護、升級也一直是讓人頭疼的問題——整個集群可用性會受到影響。集群可能隨時都有任務(wù)在執(zhí)行,有些業(yè)務(wù)是需要7*24小時不間斷地提供服務(wù),服務(wù)中斷會造成比較大的影響,被影響的業(yè)務(wù)有可能又會間接影響到其它業(yè)務(wù)。
到底是什么讓線上集群存在這樣的憂患呢?我們知道,NameNode的備份可以分為冷備,溫備,熱備等方案。目前,絕大多數(shù)Hadoop線上集群使用的是冷備的方案。冷備方案中,只存在一個NameNode節(jié)點對外提供服務(wù),如果此節(jié)點服務(wù)發(fā)生異常,那么整個Hadoop集群提供的服務(wù)就會中斷,造成集群不可用,且只能是人工介入修復(fù),如果Hadoop集群存儲的文件數(shù)量很多,NameNode重新啟動的時間會很長,這就會給所有線上集群任務(wù)造成較大的影響,其損失無法估量。這個問題不僅是京東商城的問題,更是業(yè)界普遍面臨的一個問題。
京東Hadoop高可用解決方案,很好地解決了以上問題。熱備方案是在冷備方案的基礎(chǔ)上,引入了一個從節(jié)點作為熱備節(jié)點。當主節(jié)點出現(xiàn)異常時,從節(jié)點切換為主節(jié)點,Hadoop繼續(xù)對外提供服務(wù)。
京東Hadoop高可用解決方案是以Cloudera CDH3作為基礎(chǔ),并在其上進行了大量的改造工作,完全自主研發(fā)實現(xiàn)的。目前,已經(jīng)支持主、從熱備的部署方式,并且通過共享存儲設(shè)備,實現(xiàn)主、從節(jié)點的元數(shù)據(jù)同步。在熱備基礎(chǔ)之上,我們也實現(xiàn)了NameNode的自動切換功能??蛻舳恕⒅?、從節(jié)點、數(shù)據(jù)節(jié)點均通過zookeeper判斷主節(jié)點信息,通過心跳判斷NameNode健康狀態(tài)。
Hadoop高可用解決方案邏輯架構(gòu)圖

在業(yè)界,對于Hadoop NameNode熱備機制也有一些實現(xiàn)方案,例如: facebook,cloudera等IT巨頭均在不遺余力地對Hadoop進行高可用方案的改造,并且已經(jīng)取得了較大成果。京東商城對Hadoop的持續(xù)升級改造一直在進行著:通過zookeeper、心跳等實現(xiàn)了主、從節(jié)點的自動切換功能,同時充分地考慮到了防止網(wǎng)絡(luò)波動、服務(wù)假死等情況;其次,引入了共享存儲異常的處理機制,解決了在共享存儲設(shè)備出現(xiàn)異常的情況下,也不會造成元數(shù)據(jù)丟失或者主/從節(jié)點元數(shù)據(jù)一致性的問題。
京東商城在Hadoop方面的技術(shù)突破,標志著京東商城在云計算領(lǐng)域的研究已經(jīng)進入了深入階段。