天天看點

大資料入門(一)大資料入門

大資料入門

  • hadoop
  • HDFS
  • YARN
  • SPARK

hadoop

hadoop生态圈包括以下各個組成部分: 

大資料入門(一)大資料入門

HDFS:用于分布式檔案存儲,切分成塊,多副本存于多台機器。 

YARN:用于資源管理和排程,job scheduling & cluster mangment 

Zookeeper:各個架構的管理和協調 

Hive:使系統支援SQL語句 

ooize:工作流 

pig:使用腳本scripting離線 

Flume:收集log 

sqoop:DB中資料轉向别處

原生的hadoop有諸多問題,如jar包沖突,難以管理,一般不直接用于生産環境。 

是以一般使用CDH版的hadoop。 

特點:可靠性—多副本存儲+作業重新排程計算 

可擴充—橫向多機擴充+縱向單叢集多節點 

可建設在廉價機器上,并有可靠而完整的生态圈子

HDFS

特性: 

分塊- - -每塊小,可以并行;每台機器存儲量差不多,存儲量均衡 

備援- - -備援機制保障了可靠性 

分為管理節點的namenode NN和存儲資料的節點DataNode DN 

NN:相應client請求,管理檔案名,副本系數,block存放的DN 

DN:存儲block,向NN發送心跳以及block report 

注:NN和DN可同台機器,但是不建議這樣配置

副本因子決定了每個副本存放幾份。 

副本的存放政策:先在本台機器上存儲,再在本機架上的DN上存儲,最後存放在别的機架上的DN。 

調用HDFS的方式有shell方式和調用java API接口的方式完成

HDFS讀寫檔案流程: 

大資料入門(一)大資料入門

特點總結: 

備援容錯機制,廉價機器組建,處理流的資料通路(一次寫入多次讀取)适合存取大檔案。但是不适合存儲小檔案,通路慢,中繼資料太多存取吃力。

YARN

Yet Another Resource Negotiator 

産生的背景在于:原來版本的hadoop架構存在問題,單點壓力過大,不易擴充,不支援别的計算架構(如spark) 

效果:hadoop1.x隻支援MapReduce架構 

2.x之後有了YARN,可以支援多種計算架構 

提升了資源使用率,多個叢集可以化為1個共享叢集使用,不用跨域。

SPARK

MapReduce缺陷:M和R過程都要有,隻能一個接一個的計算。計算結果放在磁盤落地存儲,IO開銷過大。程序級别消費(Map和Reduce) 

Spark的改進:程式編寫簡單,支援多種計算方式,計算結果放在記憶體,适合于疊代處理、流式處理、互動式處理。 

spark是一個分布式的計算架構,最早來源于一篇論文。快在基于線程和記憶體計算。支援多種語言編寫(Java/Scala/Python)有互動式指令行可以随機測試。可在多種環境下運作,通路多種資料源。 

spark也有相應hadoop的BDAS生态圈 

大資料入門(一)大資料入門

繼續閱讀