### 1宏觀
Hadoop分布式文件系統(Hadoop Distributed File System, HDFS)
另一種資源協調器(Yet Another Resource Negotiator, YARN)
大數據分析分類:數據分析(分析歷史,不迭代)和數據科學(預測未來,迭代);
數據分析:描述性分析和診斷性分析;
數據科學:預測性分析和規范性分析;
關系型數據庫管理系統(Relational Database Management System, RDBMS)采用寫時模式(schema-on-write),寫數據的時候用各種方法;
提取、轉換和加載(Extract, Transform, and Load, ETL)
將數據轉換為易于訪問的格式容易丟失原始/原子數據。
大數據分析通常借助Hive和HBase在Hadoop平臺上使用讀取模式(schema-on-read),讀數據的時候用各種方法;
同一組原始數據可以應用多個模式。
實際環境中的用例:客戶分析、運營分析、數據驅動的產品和服務、企業數據倉庫(Enterprise Data Warehouse, EDW)優化、特定領域的解決方案
### 2入門
Apache Hadoop使用故障率較高的低價通用硬件來構建。采用了讓計算貼近數據(move computation to data)的方法,從而顯著降低網絡流量。包含四個項目:Hadoop Common,Hadoop分布式文件系統(Hadoop Distributed File System, HDFS),YARN(Yet Another Resource Negotiator)和MapReduce。HDFS用來存儲數據,MapReduce用來計算數據,YARN用來管理集群的資源(CPU和內存)及支持Hadoop的公共應用程序。
大數據4V+1O(variety、volume、velocity、value【價值】/veracity【真實性】、online)
MR1包含資源管理(集群中每個節點的計算資源固定分配好了,不能調配),到MR2把資源管理交給YARN管理,
YARN:資源管理器(Resource Manager)、應用管理器(Application Master)、從機節點管理器(slave node Manger)、容器(container)
#### 2.1存儲選擇
Hadoop文件格式:順序文件(sequence file);
序列化格式:Thrift、協議緩沖區(Protocol Buffers)、Avro
列格式:Parquet,記錄列文件(Record Columnar File, RCFile)、優化行列(Optimized Row Columnar, ORC)
順序文件用例:每個文件600字節的空間(管理節點元數據),100萬個100KB的文件需要572M管理節點內存,MR作業創建100萬個映射器;創建一個順序文件,文件名為key,文件內容為value,600字節管理節點內存,MR作業創建762個具有128MB區塊大小的映射器。
壓縮的好處:加速I/O、節省存儲、加快網絡;缺點:增加CPU時間;
#### 2.2spark
Spark被設計為快速進行交互式查詢和迭代的算法;
MR作業中的每個作業都把數據存儲在硬盤上,Spark把中間數據存儲在內存中;
運算:MR是映射和化簡,Spark是映射、化簡、連接、Cogroup等;
執行模式:MR是批處理,Spark是批處理、交互式和流式;
Spark架構組件:Spark Core, Spark SQL, Dataset和Dataframe, Spark Streaming(構建可擴展和流式應用程序), Structured Streaming(流式計算新格局), MLlib, GraphX以及SparkR;
#### 2.3hadoop版本
Cloudera Hadoop發行版(Cloudera Distribution for Hadoop, CDH),使用Cloudera Manager管理;
Hortonworkds數據平臺(Hortonworks Data Platform, HDP),使用Ambari管理;
MapR,使用MapR控制系統(MapR Control System, MCS)管理;
### 3Spark
彈性分布式數據集(Resilient Distributed Dataset, RDD)
彈性:數據丟失可重建,分布式:集群中分布,數據集:初始數據來自文件或者編程方式創建;
---
數據處理只有兩種范式:批處理和實時處理;
Spark Streaming是微量批處理,Storm是一次處理一條記錄;
MLlib:Machine Learning Library