(1)大資料和應用場景介紹
(2)大資料技術綜述總結
(3)Hadoop原理和應用背景介紹
1.技術發展綜述
(1)兩大重要事件
-
大資料技術發展的基礎:03和04年Google開源了GFS以及MapReduce這兩篇論文,其中, GFS (Google File System)提供了相對于傳統存盤方案,更加高效、海量的一種 資料存盤方案分布式檔案系統, MapReduce是對于海量資料的高效的 分布式計算框架,
-
大資料落地標志:之后Doug Cutting基于這這兩篇文論通過Java做了開源實作, GFS對應于開源的HDFS,MapReduce名稱不變,HDFS、MapReduce構成了Hadoop,并且,在2008年年初Hadoop正式成為了Apache基金會的頂級專案,自此開始Hadoop在各大公司及領域迅猛推廣,
(2)Hadoop體系成熟
-
代表性Hadoop商業公司:如2008年Cloudera公司推出了 CDH發行版,在其平臺上將各個主流技術做了整合等,
-
Hadoop體系成熟:Hadoop擴大促進了——① 易用性方面SQL框架的支持Hive、② 高可用性NameNode HA、③資源擴展性管理Yarn等方面,但是隨著時間推移Hadoop也暴露出不足之處——④如MapReduce在性能、以及像迭代計算等方面不足,所以 Spark推出了記憶體計算的思路,2014年代替MapReduce成為運行于Hadoop之上的核心專案,
-
星環大資料平臺,區別于CDH,開源整合+自主研發,例如:1. 底層引擎方面選擇了Spark ,而非MapReduce ;2.開發介面上, 提供一套豐富的SQL介面,而非Java、Python、Scala等方式,3.在專案遷移、開發成本、專案管控等上邊優勢顯而易見;4.除基本資料分析外,對于像智能演算法研發,可以以 插件的方式方便的整合在平臺上穩定運行,
(3)以星環科技為代表介紹商業化大資料平臺(給老東家打波廣告)

2.大資料體系代表性開源產品
(1)HDFS (Hadoop Distributed Filesystem)
-
錯誤檢測和快速自動恢復: 分布式方案可以選擇多臺低配的服務器,而不是單臺超高配的服務器,但低配設備故障概率可能會提高,如何有一個好的錯誤檢測以及快速恢復機制,顯得很重要,否則資料丟失是一件非常嚴重的問題;
-
實時訪問 :檔案系統的存盤只是一方面,還要解決 保證資料快速的、流式的高效訪問;
-
可擴展性:單臺服務器磁盤接滿后無法擴容,HDFS分布式框架必須提供更靈活的擴容方案;
-
一致性模型: 一次寫入、多次讀寫;以及對于資料分析這方面, 移動計算比移動資料更便宜(這就是后來的計算向資料靠攏理論),(關于移動計算VS移動資料:移動資料涉及磁盤、網路IO的開銷,資料量大之后開銷會非常大,但是計算任務的移動開銷就非常少, 如何做到資料存放結點直接計算而不去直接拷貝資料給計算的服務器是個需要考慮的問題,例如Mysql掃表1000W行資料不到1s,而通過jdbc發送則要1分鐘左右)
-
高可靠性以及容錯性:有副本策略以及故障檢測的機制提供(見后),保證構建在低成本的服務器上,以及在Hadoop 2.X之后提出的高可用機制,都是HDFS高可靠性以及容錯性的體現,
-
可擴展性:在可靠性及容錯性保證下,HDFS集群的構建成本可以非常低,在比較廉價的商用機器上運行完全沒有問題,結點個數也非常之多, 10K節點規模沒有問題,集群規模如此之大,資料量支持也沒有問題PB級別完全可以應對,
-
并發性:支持高并發的訪問,批量讀取資料,關注資料吞吐量, 對于批處理的支持非常好(如MapReduce分布式批處理計算框架)
(2)MapReduce(兩大核心設計理念)
(3)Yarn
-
兼容性好:1.x中 除MapReduce以外的計算框架要對于HDFS資料進行分析時, 都需要自身單獨實作資源底層的一系列管理,但是推出Yarn之后第三方如,Spark就不需要再去實作資源管理,整合得簡單不如1.x繁雜,
-
高可擴展性:提供了高可用的支持,并且作為分布式組件也同樣具有高擴展性,
(4)Spark
-
記憶體計算:MapReduce計算時有很多 記憶體磁盤互動浪費資源,但Spark計算時, 資料全部在記憶體中完成、不同結點若需要資料,則全部通過網路傳輸來走(相當于記憶體和網路異步操作,避免了某些磁盤IO阻塞場景),這樣很大程度上提高了計算的效率, Spark實作中將記憶體抽象為RDD介質,
-
基于DAG優化任務流程,
-
易于部署,豐富API支持,
-
通用易用性,Spark針對不同的場景都有針對性的組件,不管是批處理、流處理、互動式計算還是機器學習、圖計算,都可以使用Spark來完成,并且Spark提供的 各種RDD算子以及Scala提供的 鏈式編程等,使得Spark也具有良好的易用性,
-
多種運行模式,包括 Local( 在本地運行,只有一個作業行程,無并行計算能力 )、Standalone(類似于HDFS/Yarn集群模式,也分master和slave主從模式)、YARN( 客戶端直接連接Yarn,無需構建spark集群 )、Mesos ( 客戶端直接連接Mesos無需構建spark集群 ) ,
(5)Hive
-
提供SQL查詢語言 ;
-
針對海量資料的高性能查詢和分析系統;
-
用戶介面豐富: cli( 控制命令列介面 )、Beeline、jdbc都支持;
-
提供靈活的擴展性,支持復雜型別資料、自定義UDF支持、腳本等,
(6)HBase
-
高性能:海量資料存盤查詢性能肯定不是問題;
-
可擴展,分布式集群、動態擴容也不會有問題;
-
高可用,HBase架構本身有高可用機制支持、并且用到的檔案系統為HDFS、HDFS本身容錯能力就非常之好,
3.大資料產品分布
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295112.html
標籤:其他
下一篇:Spark的RDD序列化
