<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 一、問題 初始需求:有一個100M的txt文本文件,需要過濾出我想要的內容。 解決方案:那么有幾種方式來實現它。比如:用linux的命令grep,通過編程來讀取文件; 進階需求:如果文本文件的大小是1G,或者1T,甚至1PB,那么,上面的解決方案顯然就行不通了;那么,對于這種超大數據文件,我們怎么得到我們想要的結果呢? 解決方案:Haddop!它就是為了解決這類大數據問題而誕生的,Haddop 可以很輕易的把很多PC組成分布式結點,開發人員也不需要知道分布式算法之類,只需要根據MapReduce的規則定義好接口方法,剩下的就交給Haddop,它會自動把相關的計算分布到各個結點上去,然后得出結果; ## 二、概述 **Hadoop就是存儲海量數據和分析海量數據的工具;** Hadoop是由java語言編寫的框架,其核心是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算; ### **背景** 1998年9月4日,Google公司在美國硅谷成立。正如大家所知,它是一家做搜索引擎起家的公司,一位名叫**Doug?Cutting**的美國工程師,也迷上了搜索引擎。他做了一個用于文本搜索的函數庫(姑且理解為軟件的功能組件),命名為**Lucene**;Lucene是用JAVA寫成的,目標是為各種中小型應用軟件加入全文檢索功能;2001年底,Lucene成為**Apache軟件基金會**jakarta項目的一個子項目; 2004年,Doug Cutting再接再勵,在Lucene的基礎上,和Apache開源伙伴Mike Cafarella合作,開發了一款可以代替當時的主流搜索的開源搜索引擎,命名為**Nutch**; Nutch是一個建立在Lucene核心之上的網頁搜索應用程序,可以下載下來直接使用。它在Lucene的基礎上加了網絡爬蟲和一些網頁相關的功能,目的就是從一個簡單的站內檢索推廣到全球網絡的搜索上,就像Google一樣; 隨著時間的推移,無論是Google還是Nutch,都面臨搜索對象“體積”不斷增大的問題; 2003年,Google發表了一篇技術學術論文,公開介紹了自己的谷歌文件系統**GFS(Google?File?System)**。這是Google公司為了存儲海量搜索數據而設計的專用文件系統; 2004年,Doug?Cutting基于Google的GFS論文,實現了**分布式文件存儲系統**,并將它命名為**NDFS(Nutch Distributed File?System)**; 2004年,Google又發表了一篇技術學術論文,介紹自己的**MapReduce編程模型**。這個編程模型,用于大規模數據集(大于1TB)的并行分析運算; 2006年,當時依然很厲害的**Yahoo(雅虎)公司**,招安了Doug?Cutting; 加盟Yahoo之后,Doug?Cutting將NDFS和MapReduce進行了升級改造,并重新命名為**Hadoop**(NDFS也改名為HDFS,Hadoop Distributed File?System); 第二年(2005年),Doug?Cutting又基于MapReduce,在Nutch搜索引擎實現了該功能; 2006年,Google又發論文了,介紹了自己的**BigTable**。這是一種分布式數據存儲系統,一種用來處理海量數據的非關系型數據庫; Doug?Cutting當然沒有放過,在自己的hadoop系統里面,引入了BigTable,并命名為**HBase**; 某種程度上,Hadoop的核心部分,基本都有Google的影子: 2008年1月,Hadoop成功上位,正式成為Apache基金會的頂級項目; ## 三、核心架構 Hadoop的核心,說白了,就是HDFS和MapReduce。HDFS為海量數據提供了**存儲**,而MapReduce為海量數據提供了**計算框架**; ### **HDFS(Hadoop Distribute File System)** HDFS是一個分布式文件系統:引入存放文件元數據信息的服務器Namenode和實際存放數據的服務器Datanode,對數據進行分布式儲存和讀取; >[danger] 簡單的來說,可以把HDFS理解為一個分布式的,有冗余備份的,可以動態擴展的用來存儲大規模數據的大硬盤; ### **MapReduce** MapReduce是一種編程模型,是一種編程方法,是抽象的理論,采用了分而治之的思想。MapReduce框架的核心步驟主要分兩部分,分別是Map和Reduce。每個文件分片由單獨的機器去處理,這就是Map的方法,將各個機器計算的結果匯總并得到最終的結果,這就是Reduce的方法; >[danger] 簡單來說,可以把MapReduce理解成為一個計算引擎,按照MapReduce的規則編寫Map/Reduce計算的程序,可以完成計算任務; ### **YARN(Yet Another Resource Negotiator,另一種資源協調者)** Hadoop 的資源管理器,負責海量數據運算時的資源調度; 在Hadoop1.0 中,MapReduce 的 JobTracker 負責了太多的工作,包括資源調度,管理眾多的 TaskTracker 等工作。這自然是不合理的,于是 Hadoop 在 1.0 到 2.0 的升級過程中,便將 JobTracker 的資源調度工作獨立了出來,而這一改動,直接讓 Hadoop 成為大數據中最穩固的那一塊基石。 而這個獨立出來的資源管理框架,就是 YARN; ## 四、應用領域 OLAP領域,而非OLTP領域,具體如: 大數據存儲:分布式大數據存儲; 日志處理:大數據量日志分析; ETL:數據抽取到oracle、mysql、DB2、mongdb及主流數據庫; 機器學習:如Apache Mahout項目; 搜索引擎:Hadoop + lucene實現; 數據挖掘:目前比較流行的廣告推薦,個性化廣告推薦; >[danger] Hadoop是專為**離線和大規模數據**分析而設計的,并不適合在線事務處理應用; ## 五、使用流程 ### **搭建Hadoop集群;** ### **上傳文件到Hadoop集群;** Hadoop集群搭建好以后,可以通過web頁面查看集群的情況,還可以通過Hadoop命令來上傳文件到hdfs集群,通過Hadoop命令在hdfs集群上建立目錄,通過Hadoop命令刪除集群上的文件等等; ### **編寫map/reduce程序** 通過集成開發工具(例如eclipse)導入Hadoop相關的jar包,編寫map/reduce程序,將程序打成jar包扔在集群上執行,運行后出計算結果; ## 六、關聯技術 **Hive** 用戶處理存儲在HDFS中的數據,hive的意義就是把好寫的hive的sql轉換為復雜難寫的map-reduce程序; **Hbase** 是一款基于HDFS的數據庫,是一種NoSQL數據庫,主要適用于海量明細數據(十億、百億)的隨機實時查詢,如日志明細、交易清單、軌跡行為等; **Pig** 是Hadoop數據操作的客戶端是一個數據分析引擎; **Spark** 是一種通用的大數據計算框架,正如傳統大數據技術Hadoop的MapReduce、Hive引擎,以及Storm流式實時計算引擎等; Spark主要用于大數據的計算,而Hadoop以后主要用于大數據的存儲(比如HDFS、Hive、HBase等),以及資源調度(Yarn); **Zookeeper** Hadoop生態圈中很多開源項目使用動物命名,那么需要一個管理員來管理這些“動物”;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看