Coursera, Big Data 1, Introduction (week 3)
?
什么是分布式文件系統?為什么需要分布式文件系統?
如果文件系統可以管理用網絡連接的很多個存儲單元,叫分布式文件系統. 分布式文件系統提供了數據可擴展性,容錯性,高并發. 這些是傳統文件系統不具有的.
?
Hadoop getting started
?為什么用Hadoop? Hadoop 的 4 個What 和 How.
?
?
Hadoop 的主要Goal:
1. 可擴展來增加 node
2. 容錯,Node down 可以很容易recover
3. 可以讀取各種格式的數據(structured, unstructured)
4. 把task 分配到不同node,具有并行計算能力
?
Hadoop 生態系統:
?
接下來先將整個Hadoop 生態系統,然后講主要模塊(HDFS分布式存儲, YARN提供調度和資源管理, MapReduce并行計算) ,最后講云計算(IaaS, PaaS, SaaS), 此外還有什么時候不適用 Hadoop.
?
Hadoop生態系統:
?前面已經提到了HDFS 是管理分布式存儲的, YARN 是負責調度和管理資源的,MapReduce 是做分布式計算的,用戶只需要寫兩個函數就可以實現分布式計算了.
?
MapReduce 支持的數據model 有限,Hive 和 Pig 是分別針對 SQL-Like query 和 dataflow 類型數據的,可以理解為對MapReduce的擴展.
?
?Giraph 用來處理大規模圖表.?
?
?Storm, Spark, Flink 是內存處理大數據的技術.
Strom for streaming data analysis. Spark for in-memory data analysis.
?
HBase, Cassandra, MongoDB 來處理一些不適合放在關系型數據庫的數據,比如 key-value 數據,Sparse tables 數據. 這些都屬于 NoSQL 數據庫.
?
?有了上面介紹的這么多模塊,需要一個統一的集中管理工具來管理,就是Zookeeper.
?
?這么多工具,如果自己來安排配置其實挺麻煩的,所有就有一些公司提供了集成的預裝好的core工具集合,并對production env提供Support. 比如 Cloudera, MAPR, Hortonworks.
?
?講完了整個生態系統,接下來分別講模塊.
HDFS:?
HDFS 怎么提供擴張性和可靠性? 以及它的兩個關鍵模塊 NameNode 和 DataNode.
?
HDFS 默認每一塊數據放三份拷貝來提供可靠性. HDFS支持多種數據類型, 讀和寫時都需要提供數據類型.
HDFS由兩種node 組成, Name Node (一般一個cluster就一個)和 Data Node (每個machine都是一個 data node).
?
YARN: Resource manager for Hadoop
?
1. Resource manager and node manager
?
2. Appliacation Master 就像一個談判人員, 從resource manager 協調資源,讓node manager 來負責執行。
?
?
?3. Container: 可以把它看做資源的抽象.
?
?
MapReduce:
計算分三步:Map -> Shuffle and Sort -> Reduce
下面圖片用了WordCount 例子來顯示這三個步驟
?
全局圖
?
?哪些情況不適合使用MapReduce: 因為每次都需要讀取Input數據,所有Input數據不能隨時變化,還有task 不能有先后依賴,還有MR 算完了才出結果也就不適合交互型的task.
?
什么情況下Hadoop使用或者不適用?
適用的場景包括了數據量比較大,數據格式多樣等
不適用的場景:小數據量;一些數據之間有依賴的高級算法也不適用
?
?
?
云計算:
把基礎架構交給云服務商,團隊只需要關注應用.
IaaS: 比如 Amazon EC2, 阿里云
PaaS: Microsoft Azure, Google App Engine
SaaS: Dropbox
?
Value from Hadoop:
?
?
?
Ref:
About YARN:?https://www.ibm.com/developerworks/cn/data/library/bd-yarn-intro/
?
轉載于:https://www.cnblogs.com/mashuai-191/p/10045394.html
總結
以上是生活随笔為你收集整理的Coursera, Big Data 1, Introduction (week 3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动化测试(三)如何用python写一个
- 下一篇: [源码和文档分享]基于JAVA EE框架