《Hadoop核心技術》作者翟周偉 :我與Hadoop的不解之緣

2021-01-08 CSDN技術社區

翟周偉,資深Hadoop技術專家,專注於Hadoop&大數據,數據挖掘,自然語言處理領域,目前就職於百度。2009年,利用Hadoop構建商業級大數據系統,是國內該領域最早的一批人之一;負責設計多個基於Hadoop的大數據平臺和分析系統;2011年合著出版《Hadoop開源雲計算平臺》,並在自然語言處理領域申請過一項發明專利;2015年,完成著作《Hadoop核心技術》一書。

日前,CSDN記者採訪了翟周偉,請他解讀Hadoop發展現狀、特性及發展前景,分享創作《Hadoop核心技術》一書的靈感來源以及經驗感悟。

翟周偉:不斷學習、不斷思考,享受一章一節帶來的喜悅

CSDN:首先請介紹下自已、目前所在公司以及負責的領域。

翟周偉:北京郵電大學研究生畢業,目前任職於百度,主要從事網頁搜索相關的大規模數據挖掘和自然語言處理領域相關研發工作。

CSDN:Hadoop在百度主要運用在哪些領域?使用情況是怎樣的?

翟周偉:Hadoop在百度的應用領域主要包括:大數據挖掘與分析,日誌分析平臺,數據倉庫系統,用戶行為分析系統,廣告平臺等存儲與計算服務。

目前百度的Hadoop集群規模已經超過數十個至多,單集群節點數目超過5000臺,每天處理的數據量超過8000TB。同時百度在Hadoop的基礎上還開發了自己的日誌分析平臺、數據倉庫系統,以及統一C++編程接口,並對Hadoop深度改造,開發了性能更強的HCE(Hadoop C++ Extend Systerm)系統。

邂逅Hadoop

CSDN:你是從什麼時候開始接觸Hadoop?作為一名Hadoop技術專家最吸引你的是什麼?有沒有背後的故事分享給大家?

翟周偉:我從2009年9月份開始接觸Hadoop,Hadoop已經成為工業界大數據領域的事實標準,最吸引我的是最初Hadoop在大數據處理領域給我的震感,因為在使用Hadoop之前如果要處理上百TB的數據是一件非常困難的事情,首先需要考慮如何將這些數據存儲下來,然後還需要考慮如何劃分,以及數據容錯性等複雜問題,而要完成這樣的工作沒有1個月的時間是很難搞定的,但是在Hadoop的幫助下一天甚至幾個小時就可以完成從程序開發到最終數據產出,而且想想自己可以在很短的時間內操作成千上百臺的集群來處理上百TB的數據,還是很震撼的。

CSDN:在國內,你是利用Hadoop構建商業級大數據系統領域最早的人選之一,可以說是敢於吃螃蟹的第一人。那麼,你是如何成為核心成員的?在開發期間有沒有遇到過什麼困難?又是如何克服的?

翟周偉:早在2009年的時候我們就嘗試使用Hadoop技術為中國電信研究院,移動研究院等機構構建大數據云平臺並作為生產平臺為線上業務提供雲存儲與計算分析服務。這在當時來講是國內將Hadoop落地應用的最早實踐者之一。

在最初參與開發這些項目的時候我還並不是核心成員,而我要做的就是在項目中不斷學習並積累Hadoop和大數據相關知識,最重要的就是在項目開發過程中證明自己,證明自己有足夠的知識積累和能力完成項目並超出預期,當然在這個過程中也會遇到一些困難和挫折,例如數據的產出和預期不符,系統性能遇到瓶頸等問題,在面對這些問題的時候首先就是不能怕,對自己能解決這些問題要有足夠的信心,然後就是認真分析問題,一步一步DEBUG定位問題,最終就可以解決掉這些問題,這也是一個艱苦的工作,不過我更享受成功後的那種喜悅之情,因為我喜歡技術挑戰。

Hadoop發展現狀、特性及發展前景

CSDN:你怎麼看待國內外的Hadoop發展現狀?可否預測下Hadoop未來的發展前景?

翟周偉:目前Hadoop可以說是已經成為工業界大數據領域的事實標準,在國外主要以Yahoo、Facebook、EBay、IBM等為代表;在國內則以百度、騰訊、阿里等網際網路公司為主。而Hadoop作為開源軟體,這些大公司的使用和改進迭代進而又完善並推動Hadoop的進一步發展,因此Hadoop的發展是離不開這些網際網路公司的使用,從本質上看還是因為網際網路的快速發展導致了海量數據的分布式存儲和計算需求,而Hadoop正是為這樣的需求提供了非常好的解決方案。

對於Hadoop的發展前景我從以下幾個方面談談:

第一個方向就是統一資源管理與調度方向,目前各大網際網路公司商用的Hadoop集群還是以Hadoop-1.X版本為主,Hadoop-1.X版本的有效性和穩定性已經得到驗證,但是Hadoop-1.X也存在很多問題,例如資源分配以槽位為基本單元,沒有考慮到應用實際需要的內存,CPU等資源;還有就是Hadoop-1.X僅僅只支持MapReduce模型,計算資源利用率不高,一個MR任務只能包含一個map和一個reduce任務,而實際需求往往是一個DAG任務。針對這些問題社區版Hadoop-2.X提出了YARN框架,在資源管理層來解決這些問題,同時各大商用發行版以及網際網路公司也提出類似的框架來解決Hadoop-1.X中的問題。

第二個發展方向就是Hadoop高可用性解決方案,目前的Hadoop還是單Master節點設計,因此集群的規模受到主節點的硬體配置限制,同時可靠性上存在單點故障(SPOF )問題,這一點目前各大Hadoop商業發行版以及各大網際網路公司都在研發多Master節點設計的解決方案,因此也是未來重點方向。

第三個發展方向就是Hadoop生態系統集成,目前Hadoop已經發展為一個完備的生態系統,這個生態系統最底層以HDFS和MapReduce為核心,上層為各種存儲,計算,分析等應用系統,如何將這些系統很好的集成起來形成一個類似完善的分布式作業系統和雲計算應用系統是一個非常誘人的發展方向。

第四點就是靈活性上,目前的Hadoop為用戶提供了非常便利的並行計算框架,但是這個框架本身的流程過於複雜,用戶實際的需求往往很簡單,例如Hadoop中在map的輸出和reduce的輸入都需要進行排序,而實際上並不是所有的任務都需要排序,因此對於那些不需要排序的應用就會造成資源的浪費又消耗了時間。如果可以提供是否配需的可控制參數就可以很好的解決類似的問題。因此Hadoop的靈活性上也是一個發展方向。

CSDN:Hadoop與Spark相比,兩者之間有哪些異同點?各自的優勢是什麼?此外,Hadoop與Spark都支持容錯性,Spark在容錯性方面是否比Hadoop更具優越性?你怎麼看?

翟周偉:在基本原理上:Hadoop和Spark最大的區別在於Hadoop是基於磁碟的大數據批處理系統;而Spark是基於彈性分布式數據集(RDD,顯式地將數據存儲到磁碟和內存中)。在模型上,Hadoop以MapReduce模型為核心,而Spark除了map和reduce函數操作之外的很多函數操作,諸如join、groupBy、reduceByKey等。

在優勢上,Hadoop可以處理超大規模的數據,適合日誌分析挖掘等較少迭代的長任務需求,同時Hadoop很好的結合了數據的分布式存儲和計算;而Spark適合數據挖掘,機器學習等多輪迭代式計算任務,Spark本身並沒有提高數據的分布式存儲解決方案,還需要依賴HDFS等第三方存儲系統。

在容錯性上需要考慮兩個方面,第一就是數據容錯性;第二就是節點容錯性。Hadoop在數據容錯性上考慮的很全面,從HDFS本身的冗餘複製機制,到安全模式,數據校驗,元數據保護,快照機制等,在節點容錯性上Hadoop從資源調度層次來解決。而Spark在數據容錯性上是建立在RDD概念之上,當一個節點出現故障時,Spark會根據存儲信息重新構造數據集。因此Spark在容錯性上並不比Hadoop具有優越性,應該是在容錯性上Hadoop考慮的更全面,而Spark更加在意處理數據的效率和響應時間。

CSDN:Hadoop已經成為大數據工業級的標準,有很多組件,比如Hive、Hbase、HDFS等,能說說各自的優缺點以及適合的場景嗎?

翟周偉:優缺點以及適應場景如下表格:

 

Hive

Hbase

HDFS

優點

提供了類似SQL的 HiveQL語言進行數據查詢。

基於HDFS以多維度排序的映射表形式,key-value存儲檢索非常高效。

接口簡單,使用方便。

缺點

延時大,大規模數據後置處理,數據的前置處理比較簡單使得數據預處理不充分。

不支持SQL類似語法,在實時性處理方面不如傳統關係資料庫。

隨機讀寫性能較差。

適合場景

適應T、P 規模的數據分析。

適合於非結構化數據存儲的分布式資料庫。

適合一次寫入多次讀取的場景。

寫書感悟——書中自有黃金屋

CSDN:2011年你參與著作了《Hadoop開源雲計算平臺》,今年你又著寫了《Hadoop核心技術》,是什麼機緣讓你想到要寫這本書的?

翟周偉:在2011年《Hadoop開源雲計算平臺》出版之後可以說是當時國內國人寫的第一本Hadoop技術叢書,但是當時這本書編寫的時間較為倉促同時相對較為簡單,而後2011年8月多進入百度之後發現Hadoop技術在網際網路公司內部已經大規模使用,而大多數研發人員都不是很熟悉Hadoop技術的使用,因為我就萌發了再編寫一本較為全面又有實戰講解的相關書籍。

CSDN:《Hadoop核心技術》這本書歷時多久完成著作的?主要適合哪些開發者?在撰寫此書中給你留下最深的感悟是什麼?

翟周偉:《Hadoop核心技術》這本書歷時2年完成,主要適合大數據Hadoop研發人員、Hadoop應用開發人員、Hadoop運維管理人員等。

撰寫此書中給我留下最深的感悟就是理解一門技術和使用專業的術語並且用通俗易懂的語言將所理解的技術講解出來是有很大不同的,而在這個寫作過程中也是我自己不斷深入學習提高的一個過程。

CSDN:你如何在進度壓力下,享受寫書帶來的快樂?

翟周偉:寫作是一個再創作的過程,因此需要大量的時間進行思路梳理,語言組織,然後才能進行真正的寫作,而這些工作時要在工作之餘利用空閒時間完成的,因此進度壓力還是蠻大的,但是這個過程也是自己不斷深入學習,不斷思考的過程,而且想想自己的書要被上千上萬的讀者學習還是很有動力的,每當完成一張一節的時候都可以帶給我一個喜悅,而我本身也是享受這樣的快樂的。

CSDN:在日常生活中你是通過哪些方式來提升自己技能的?平時的生活節湊是怎樣的?

在日常生活工作中我主要還是通過項目實戰來提升自己技能的,當發現自己不懂的原理細節時我首先想到的是從相關英文文獻或者書籍中了解基本原理,然後閱讀源碼來進一步深入理解。

平時的生活還是挺緊張的,因為搞網際網路的幾乎很少有不加班的,而百度的項目安排期往往比較緊,這樣留個自己的空閒業餘時間就很少了,因此我通常也會很珍惜業餘空閒時間。

CSDN:給學習Hadoop集群方面的開發者分享些經驗吧。

翟周偉:首先搞清楚什麼是Hadoop以及Hadoop可以用來做什麼,可以查閱相關網站介紹或者Hadoop綜述相關論文文獻資料等。

然後,可以從最經典的詞頻統計程序開始,初步了解MapReduce的基本思路和處理數據的方式。這裡建議大家直接瀏覽Hadoop的官方網站上WiKi文章,並按照WiKi一步一步完成實例的理解和學習。

接著,就可以正式學習Hadoop的基本原理,包括HDFS和MapReduce,先從整體,宏觀核心原理看,先別看源碼級別。建議這塊先閱讀Google的相關兩篇核心論文:《The Google File System》、《MapReduce: Simplied Data Processing on Large Clusters》;進一步,就可以深入HDFS、MapReduce和模塊細節,這個時候可以結合源碼深入理解,以及實現機制。

最後就是需要實戰了,可以結合自己的項目或者相關需求來完成一些Hadoop相關應用,建議一些比較經典的Hadoop英文原版技術相關叢書:《Hadoop TheDefinitive Guide》、《Hadoop inAction》、《Pro Hadoop》,以及我新出版的《Hadoop核心技術》。

CSDN現開啟圖書作者專訪欄目,歡迎推薦採訪人或自薦,來分享你的成長經歷和相關技術,相關信息請發送郵件至:xiamz#csdn.net(#換成@)。更多精彩內容,請點擊社區之星或搜索關鍵字圖書作者查看。

相關閱讀:


本文為CSDN原創文章,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • hadoop基礎知識介紹_hadoop是什麼語言開發的_hadoop能做什麼
    Hadoop=HDFS(文件系統,數據存儲技術相關)+ Mapreduce(數據處理),Hadoop的數據來源可以是任何形式,在處理半結構化和非結構化數據上與關係型資料庫相比有更好的性能,具有更靈活的處理能力,不管任何數據形式最終會轉化為key/value,key/value是基本數據單元。
  • hadoop最新發行穩定版:DKHadoop版本介紹
    Hadoop對於從事網際網路工作的朋友來說已經非常熟悉了,相信在我們身邊有很多人正在轉行從事hadoop開發的工作,理所當然也會有很多hadoop入門新手。Hadoop開發太過底層,技術難度遠比我們想像的要大,對新手而言選擇一個合適的hadoop版本就意味著上手更快!
  • hadoop入門基礎教程操作篇
    關於hadoop的分享此前一直都是零零散散的想到什麼就寫什麼,整體寫的比較亂吧。最近可能還算好的吧,畢竟花了兩周的時間詳細的寫完的了hadoop從規劃到環境安裝配置等全部內容。寫過程不是很難,最煩的可能還是要給每一步配圖,工程量確實比較大。
  • hadoop開發應用實例_hadoop應用開發技術實例詳解 - CSDN
    hadoop是什麼?hadoop能有哪些應用?hadoop和大數據是什麼關係?下面我們將圍繞這幾個問題詳細闡述。hadoop是什麼?Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
  • 銀興智能:助力廣發銀行打造Hadoop資源管理平臺
    據深圳銀興智能數據有限公司(簡稱:銀興智能)介紹,隨著廣發銀行大數據平臺hadoop集群應用場景越來越多,研發中心、數據中心、卡中心和分行等部門均在大數據平臺上進行數據開發和數據分析,由於數據開發和分析的場景各不相同,使用和購置的資源也不同。
  • Hadoop資源管理與作業調度框架yarn剖析
    提到Hadoop,大家可能首先想到的是Hdfs存儲、mapreduce離線計算,Hadoop2.x推出yarn(Yet Another Resource Negotiator)之後,hadoop已搖身一變為資源管理與作業調度平臺,基於yarn可在hadoop集群上可運行mepreduce(離線計算
  • 8臺Hadoop伺服器進行集群規劃前配置
    通過VMware將虛擬機分布在這8塊硬碟上,模擬在一個機架上的8臺伺服器:編號:/BJ0/LG0/hadoop221-228其中:221-222:NameNode,223-228:DataNode集群規劃集群規劃如下:(伺服器編號為hadoop221-hadoop228)註:1、NameNodes和zkfc
  • Apache Hadoop 3.0.0 GA 正式發布,要求 Java 8
    更多關於HDFS的糾刪碼可以參見http://hadoop.apache.org/docs/r3.0.0-beta1/hadoop-project-dist/hadoop-hdfs/HDFSErasureCoding.html或者直接閱讀本博客Hadoop 3.0糾刪碼(Erasure Coding):節省一半存儲空間的相關介紹。
  • Hadoop是低成本的大數據解決方案?別逗了!
    現在伴隨公有雲技術的成熟,Hadoop甚至連硬體成本也不佔優了。 Hadoop與阿里雲MaxCompute的成本對比國內做大數據,基本就這兩個選擇:自建Hadoop或者使用阿里雲的MaxCompute(就是原來的ODPS)。像Amazon、Google、微軟的大數據服務在國內基本處於不可用或者很難用的狀態。
  • 比自建Hadoop便宜 雲棲大會揭秘阿里雲數加MaxCompute
    我們就來對比一下這兩個主流的技術選型:以企業擁有10TB數據為例,自建hadoop集群,則至少需要6臺機器(3nodes+2NameNode+1jobtracker),成本在20萬左右。除此之外,還需要投入機房資源,網絡設備和運維成本。這其中主要是運維成本,要知道一個運維人員的成本一年至少15萬。這樣,整體算下來要55萬左右。
  • hadoop:集群網絡介紹,及相關文件配置指南!
    到這裡master節點配置任務就只剩下hadoop相關文件啦,我們下次繼續。
  • 更快、更強——解析Hadoop新一代MapReduce框架Yarn
    編者按:對於業界的大數據存儲及分布式處理系統來說,Hadoop 是耳熟能詳的卓越開源分布式文件存儲及處理框架,對於 Hadoop 框架的介紹在此不再累述,隨著需求的發展,Yarn 框架浮出水面, @依然光榮復興的 博客給我們做了很詳細的介紹,讀者通過本文中新舊 Hadoop MapReduce 框架的對比,更能深刻理解新的 yarn 框架的技術原理和設計思想
  • android技術發展趨勢 - CSDN
    去年11月16、17日,我有幸參加了北京2017安卓技術大會,做了關於車載Android系統的演講,並主持了諸多大咖參與的圓桌討論,對Android未來幾年的發展趨勢進行了一番討論。作為一個Android的忠實用戶和擁躉,我相信Android在汽車領域一定能夠爭得一席之地,但是我也覺得Android不可能做到像手機行業一樣一枝獨秀的地位,百花齊放還是最可能看到的情況。    增強VR/AR和AI領域研發投入,搭建更強大Android技術平臺    除了開闢新的領域,Android最近還有哪些新的動態呢?
  • Hadoop技術生態簡介
    大數據的發展歷史當中,Hadoop技術框架是佔據著重要地位的,歷經十多年的時間,依然是企業搭建大數據平臺基礎架構的主流選擇,圍繞著Hadoop而生的大數據生態組件,也都各自發揮著各自的作用。今天的Hadoop大數據培訓分享,我們來坐Hadoop技術生態做一個簡單的介紹。