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

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