數據產品經理術語之hadoop
數據產品經理的工作描述中,“了解hadoop”是一個高頻出現的內容。大多數產品經理并沒有直接與hadoop打交道的經驗,本文希望能夠幫助大家對Hadoop有一個基礎的理解。
一、是什么
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構,它封裝了復雜的分布式底層細節,使開發人員能夠低門檻地開發分布式程序,充分利用集群的威力進行高速運算和存儲。
Hadoop是一個針對于大數據的存取、計算、加工、分析,由多個工具構成的解決方案。
二、為了解決什么問題
任何新技術的提出,都是為了解決問題。那么,Hadoop是在什么樣的情況下應運而生的,它又解決了什么問題呢?
隨著互聯網數據量增多,數據產生速度增快,數據類型多樣性提高,之前的集中式的數據處理系統顯露出了很多問題。
- 原有系統存儲容量有限,無法承載每日TB甚至PB級的數據量。
- 原有系統適合處理簡單數據,對于音視頻、圖片等多種類型的文件支持一般。
- 原有系統應對故障的能力弱。
- 原有系統對機器要求高,構建成本高。
Hadoop構建了可以運行在多個廉價小型機的分布式系統架構,以低成本的方案解決了上述問題,從而得到了行業中大量的應用。
三、工作原理
1. 示意圖
Hadoop中的核心設計包括兩點:HDFS和MapReduce。
圖中白色塊屬于HDFS,黑色塊屬于MapReduce。
2. HDFS
HDFS(Hadoop Distributed File System)是一個高度容錯性的分布式文件系統,可以被廣泛的部署于廉價的PC上。它以流式訪問模式訪問應用程序的數據,這大大提高了整個系統的數據吞吐量,因而非常適合用于具有超大數據集的應用程序中。
一個典型的HDFS集群包含一個NameNode節點和多個DataNode節點,NameNode節點負責整個HDFS文件系統中的文件的元數據的保管和管理,集群中通常只有一臺機器上運行NameNode實例,DataNode節點保存文件中的數據,集群中的機器分別運行一個DataNode實例。
在HDFS中,NameNode節點被稱為名稱節點,DataNode節點被稱為數據節點。DataNode節點通過心跳機制與NameNode節點進行定時的通信。
NameNode :
可以看作是分布式文件系統中的管理者,存儲文件系統的meta-data,主要負責管理文件系統的命名空間,集群配置信息,存儲塊的復制。
Secondary NameNode:
幫助 NameNode 收集文件系統運行的狀態信息 。
DataNode :
是文件存儲的基本單元,它存儲文件塊在本地文件系統中,保存了文件塊的meta-data,同時周期性的發送所有存在的文件塊的報告給NameNode。
3. MapReduce
MapReduce是一種編程模型,用于大規模數據集的并行運算。Map(映射)和Reduce(化簡),采用分而治之思想,先把任務分發到集群多個節點上,并行計算,然后再把計算結果合并,從而得到最終計算結果。
舉個通俗的例子:
我們要數圖書館中的所有書,你數1號書架,我數2號書架,這就是“Map”。我們人越多,數書就更快。
現在我們到一起,把所有人的統計數加在一起,這就是“Reduce”。
用戶提交任務給JobTracer,JobTracer把對應的用戶程序中的Map操作和Reduce操作映射至TaskTracer節點中;輸入模塊負責把輸入數據分成小數據塊,然后把它們傳給Map節點;Map節點得到每一個key/value對,處理后產生一個或多個key/value對,然后寫入文件;Reduce節點獲取臨時文件中的數據,對帶有相同key的數據進行迭代計算,然后把終結果寫入文件。
JobTracker:
當有任務提交到 Hadoop 集群的時候負責 Job 的運行,負責調度多個 TaskTracker 。
TaskTracker:
負責某一個 map 或者 reduce 任務 。
四、優缺點
1. 優勢
- 大數據文件,非常適合上T級別的大文件或者一堆大數據文件的存儲,如果文件只有幾個G甚至更小就沒啥意思了。
- 文件分塊存儲,HDFS會將一個完整的大文件平均分塊存儲到不同計算器上,它的意義在于讀取文件時可以同時從多個主機取不同區塊的文件,多主機讀取比單主機讀取效率要高得多。
- 流式數據訪問,一次寫入多次讀寫,這種模式跟傳統文件不同,它不支持動態改變文件內容,而是要求讓文件一次寫入就不做變化,要變化也只能在文件末添加內容。
- 廉價硬件,HDFS可以應用在普通PC機上,這種機制能夠讓給一些公司用幾十臺廉價的計算機,就可以撐起一個大數據集群。
- 硬件故障,HDFS認為所有計算機都可能會出問題,為了防止某個主機失效讀取不到該主機的塊文件,它將同一個文件塊副本分配到其它某幾個主機上,如果其中一臺主機失效,可以迅速找另一塊副本取文件。
2. 缺陷
HDFS不適合用在:要求低時間延遲數據訪問的應用,存儲大量的小文件,多用戶寫入,任意修改文件。
五、適用場景
搜索、日志處理、推薦系統、數據分析、視頻圖像分析、數據保存等。
六、生態
- 部署,配置和監控:Ambari,Whirr
- 監控管理工具:Hue, karmasphere, eclipse plugin, cacti, ganglia
- 數據序列化處理與任務調度:Avro, Zookeeper
- 數據收集:Fuse,Webdav,Chukwa,Flume, Scribe , Nutch
- 數據存儲:HDFS
- 類SQL查詢數據倉庫:Hive
- 流式數據處理:Pig
- 并行計算框架:MapReduce, Tez
- 數據挖掘和機器學習:Mahout
- 列式存儲在線數據庫:HBase
- 元數據中心:HCatalog (可以和Pig,Hive ,MapReduce等結合使用)
- 工作流控制:Oozie,Cascading
- 數據導入導出到關系數據庫:Sqoop,Flume, Hiho
- 數據可視化:drilldown,Intellicus
本文由 @?流風 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Pixabay,基于 CC0 協議
大家期待已久的《數據產品經理實戰訓練營》終于在起點學院(人人都是產品經理旗下教育機構)上線啦!
本課程非常適合新手數據產品經理,或者想要轉崗的產品經理、數據分析師、研發、產品運營等人群。
課程會從基礎概念,到核心技能,再通過典型數據分析平臺的實戰,幫助大家構建完整的知識體系,掌握數據產品經理的基本功。
學完后你會掌握怎么建指標體系、指標字典,如何設計數據埋點、保證數據質量,規劃大數據分析平臺等實際工作技能~
現在就添加空空老師(微信id:anne012520),咨詢課程詳情并領取福利優惠吧!
分析得挺細致的