Hadoop于2006年1月28日誕生,至今已有10年,它改變了企業(yè)對數(shù)據(jù)的存儲、處理和分析的過程,加速了大數(shù)據(jù)的發(fā)展,形成了自己的極其火爆的技術(shù)生態(tài)圈,并受到非常廣泛的應(yīng)用。在2016年Hadoop十歲生日之際,InfoQ策劃了一個Hadoop熱點系列文章,為大家梳理Hadoop這十年的變化,技術(shù)圈的生態(tài)狀況,回顧以前,激勵當(dāng)下。本文是InfoQ處于一線開發(fā)的社區(qū)編輯對盧億雷老師進(jìn)行的采訪,對大家關(guān)心的問題進(jìn)行了專業(yè)的解答。
InfoQ:Hadoop會考慮內(nèi)存或磁盤動態(tài)管理技術(shù)嗎?
盧億雷:隨著實時計算的發(fā)展,Hadoop會考慮內(nèi)存管理技術(shù)的。動態(tài)管理的目的一個是資源自動發(fā)現(xiàn),一個是系統(tǒng)的效率。從資源自動發(fā)現(xiàn)來看,比如新的Hadoop版本已經(jīng)支持根據(jù)機(jī)器內(nèi)存大小的不同,自動計算可以使用的內(nèi)存量;從系統(tǒng)效率角度來講,比如新的Hadoop已經(jīng)支持對內(nèi)存/ssd/硬盤的分級存儲管理,可以更高效地使用存儲。
InfoQ:基于Hadoop實現(xiàn)的設(shè)計本身,它能做到的最好性能是什么?以及哪些瓶頸是設(shè)計本身造成的,不可改變的?
盧億雷:基于Hadoop架構(gòu)設(shè)計本身,它能做到最好的性能是大批量數(shù)據(jù)離線統(tǒng)計,對于多次迭代計算等是它現(xiàn)在設(shè)計本身的瓶頸。但是隨著YARN的發(fā)展,Hadoop的計算層變得越來越像一個純粹的計算資源管理系統(tǒng),Spark/Storm/Flink等多種計算模型都可以在YARN上來執(zhí)行,極大豐富了Hadoop支持的計算,可以說,Hadoop已經(jīng)變得更像一個大數(shù)據(jù)的框架,相信它的性能也會越來越好。
InfoQ:Hadoop能否在底層就實現(xiàn)基于廣義shema的存儲結(jié)構(gòu),而不是現(xiàn)在的block,這樣會不會性能更好?
盧億雷:Hadoop原來設(shè)計主要是基于文本存儲,后續(xù)也進(jìn)行了改進(jìn),可以設(shè)計特定的Schema存儲結(jié)構(gòu)來提高性能,如Hive中使用的RCFile,就是按需取字段,這樣大大減少磁盤和網(wǎng)絡(luò)IO,可以提高性能。另一方面,Hadoop底層存儲是高度抽象的,具體的存儲結(jié)構(gòu)甚至可以由用戶來自定義,比如現(xiàn)在就有用AWS做底層存儲的模塊,還有用阿里云做底層存儲的模塊,用戶可以根據(jù)自己的需求來優(yōu)化相應(yīng)的存儲結(jié)構(gòu)。
InfoQ:Hadoop越來越跟隨著spark的方向在開發(fā),那是不是spark新功能的出現(xiàn)會比較大的影響到Hadoop的發(fā)展?
盧億雷:之前談到,Hadoop的YARN已經(jīng)可以支持多種計算模型,Spark就可以在YARN上來執(zhí)行。從這個層面來講,Spark新功能的出現(xiàn),會讓Hadoop使用者更多地受益,YARN的優(yōu)化也會更好地支持Spark的新功能。另一方面,在大數(shù)據(jù)量的存儲方面,Hadoop的HDFS基本上就是大數(shù)據(jù)事實上的存儲標(biāo)準(zhǔn),Spark的大數(shù)據(jù)輸入/輸出也是基于HDFS的。
InfoQ:Hadoop代碼越來越大,學(xué)起來成本更大,怎樣才能更優(yōu)雅的掌握?
盧億雷:廣義的Hadoop指Hadoop家族,包括HDFS/MapReduce/YARN/HBase/Zookeeper等等組件,狹義的Hadoop單單指HDFS/MapReduce/YARN,建議先從這些組件學(xué)起。
首先需要學(xué)習(xí)和理解分布式存儲和分布式計算的原理,可以參考Google的相關(guān)論文,然后自己手動搭建一個Hadoop平臺,測試各種組件,學(xué)習(xí)寫MapReduce程序,之后可以學(xué)習(xí)使用HBase的搭建和基本使用。對這些都有一個基本概念之后,可以先編程使用這些組件,看可以解決自己的什么實際問題。最后,學(xué)習(xí)最好的資源就是Hadoop的社區(qū)和源碼,是大數(shù)據(jù)學(xué)習(xí)的不二選擇。如果有條件的話,在一個大數(shù)據(jù)公司工作,實際使用它們,會學(xué)習(xí)更快的。
InfoQ:Hadoop解決異構(gòu)存儲介質(zhì)上的功能現(xiàn)在有生產(chǎn)環(huán)境可以用嗎?或者對應(yīng)性能測試怎么樣?
盧億雷:Hadoop解決異構(gòu)存儲介質(zhì)上的功能主要支持普通硬盤、SSD、內(nèi)存這三個存儲介質(zhì),且在Hadoop2.6以后重點實現(xiàn)了,管理員可以在一個限定的Datanode跨磁盤存儲層,以及應(yīng)用程序可利用的API將數(shù)據(jù)存儲到這些不同的存儲層。這意味著管理員可以優(yōu)化他們的應(yīng)用程序通過使用Hadoop運行:在SSD存儲層以提高讀/寫延遲;內(nèi)存存儲層進(jìn)行快速讀/寫;普通硬盤可以進(jìn)行歸檔存儲層,以提高存儲效率。所以可以在生產(chǎn)環(huán)境上使用的,前提是需要有同學(xué)對這塊了解才可以。具體的測試性能需要看對應(yīng)的應(yīng)用場景,如果搭配的好,性能提升是比較顯現(xiàn),但是也需要注意的是如果內(nèi)部數(shù)據(jù)交換比較多或者帶寬有限制,從而導(dǎo)致文件IO不是瓶頸,帶寬才是瓶頸,則性能基本不會有提升。總的來說如果業(yè)務(wù)沒有特別的要求,其實也不用Hadoop的異構(gòu)存儲的功能。
InfoQ:Hadoop有從底層來設(shè)計支持DAG優(yōu)化(比如現(xiàn)在有的Tez,F(xiàn)link)mapreduce嗎?
盧億雷:目前沒有,如果要從底層支持DAG優(yōu)化,那就是重寫Hadoop架構(gòu)了。其實現(xiàn)在的YARN已經(jīng)把計算的管理獨立了出來,完全可以在YARN上玩出計算的各種花樣。現(xiàn)有的Tez、Flink等都是基于Hadoop之上來實現(xiàn)DAG優(yōu)化的。大家都知道ApacheTez是基于HadoopYarn之上的DAG(有向無環(huán)圖,DirectedAcyclicGraph)計算框架。它把Map/Reduce過程拆分成若干個子過程,同時可以把多個Map/Reduce任務(wù)組合成一個較大的DAG任務(wù),減少了Map/Reduce之間的文件存儲。同時合理組合其子過程,減少任務(wù)的運行時間,由Hortonworks開發(fā)并提供主要支持;而Flink是一個開源的針對批量數(shù)據(jù)和流數(shù)據(jù)的處理引擎,且支持DAG的運算。像Tez、Flink等都可以直接運行在YARN上,所以對于Hadoop來也不是必須一定要在底層上支持DAG的優(yōu)化,這樣分層后也有利于各自的發(fā)展。
InfoQ:集群在上百臺機(jī)器的規(guī)模,增加(移出)十來臺機(jī)器時怎么遷移其上的數(shù)據(jù)?
盧億雷:通過rebalance來實現(xiàn),前提是帶寬需要做控制。一般大規(guī)模的集群都會有一個rebalance在持續(xù)運行的。如Hadoop的rebalance是一個非自動的管理功能,換句話說,它是由人工啟動的。在任意一臺能夠連接到HDFS的機(jī)器上命令行下輸入hadoopbalancer[-threshold]即會啟動。如果集群處于不平衡狀態(tài),這個過程就會在不平衡的節(jié)點之間遷移數(shù)據(jù),如果rebalance過程沒有被打斷的話,完成此次rebalance目標(biāo)后過程會自動停止。
受訪嘉賓:盧億雷,精碩科技(AdMaster)技術(shù)副總裁兼總架構(gòu)師,大數(shù)據(jù)資深專家,CCF(中國計算學(xué)會)大數(shù)據(jù)專委委員,北航特聘教授。主要負(fù)責(zé)數(shù)據(jù)的采集、清洗、存儲、挖掘等整個數(shù)據(jù)流過程,確保提供高可靠、高可用、高擴(kuò)展、高性能系統(tǒng)服務(wù),提供Hadoop/HBase/Storm/Spark/ElasticSearch等離線、流式及實時分布式計算服務(wù)。對分布式存儲和分布式計算、超大集群、大數(shù)據(jù)分析等有深刻理解及實踐經(jīng)驗。有超過10年云計算、云存儲、大數(shù)據(jù)經(jīng)驗。曾在聯(lián)想、百度、Carbonite工作,并擁有多篇大數(shù)據(jù)相關(guān)的專利和論文。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(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)載請注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標(biāo)題:談Hadoop生態(tài)的最新發(fā)展
本文網(wǎng)址:http://www.guhuozai8.cn/html/news/10515519202.html