底層——存儲層,文件系統HDFShtml
中間層——資源及數據管理層,YARN以及Sentry等數據庫
上層——MapReduce、Impala、Spark等計算引擎網絡
頂層——基於MapReduce、Spark等計算引擎的高級封裝及工具,如Hive、Pig、Mahout等等架構
hadoop相關子系統:app
那什麼是MapReduce呢?
舉例來講,統計一系列的文檔中的詞彙。文檔數量規模很大,有1000萬個文檔,英文單詞的總數可能只有3000。那麼input M=10000000,output N=3000.因而咱們搞了10000個PC作Mapper,100個PC作Reducer。
每一個Mapper作1000個文檔的詞頻統計,統計以後把凡是和同一個Word相關的統計中間結構傳給同一個Reducer作彙總,這10000個MapperPC把各自處理後和詞表中前30個詞彙相關的中間結果都傳給這個Reducer作最終的處理分析。
其實MapReduce講的就是分而治之的程序處理概念,把一個複雜的任務劃分爲若干個簡單的任務分別來作。另外,就是程序的調度問題,哪些任務給哪些Mapper來處理是一個着重考慮的問題,MapReduce的根本原則是信息處理的本地化,哪臺PC持有相應要處理的數據,哪臺PC就負責該部分的數據,這樣作的意義在於能夠減小網絡通信負擔。框架
Apache Hive (昨天講的Hive Over Hbase)基於Hadoop的一個數據倉庫工具,能夠將結構化的數據文件映射爲一張數據庫表,經過類SQL語句快速實現簡單的MapReduce統計,沒必要開發專門的MapReduce應用,十分適合數據倉庫的統計分析。yii
Apache Hive相關:分佈式
Apache Hive文檔資料: | https://www.yiibai.com/hive/hive_installation.html |