<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Hadoop – 大數據教程 > 原文: [https://howtodoinjava.com/hadoop/hadoop-big-data-tutorial/](https://howtodoinjava.com/hadoop/hadoop-big-data-tutorial/) 在這個 **hadoop 教程**中,我將討論**大數據技術**的需求,他們打算解決的問題以及有關所涉及的技術和框架的一些信息。 ```java Table of Contents How really big is Big Data? Characteristics Of Big Data Systems How Google solved the Big Data problem? Evolution of Hadoop Apache Hadoop Distribution Bundle Apache Hadoop Ecosystem ``` ## 大數據到底有多大? 讓我們從一些事實開始。 從開始到 2003 年,我們產生的數據量為 50 億千兆字節。 2011 年每兩天和 2013 年每十分鐘創建一次相同的數量。此速度仍在極大地增長。 統計數據顯示,每天有 500 TB 以上的新數據被攝入社交媒體網站 Facebook 的數據庫中。 這些數據主要以照片和視頻上傳,消息,評論等形式生成([參考](https://gigaom.com/2012/08/22/facebook-is-collecting-your-data-500-terabytes-a-day/))。 Google 每天處理 20 PB 的信息。 參見下面的信息圖。 它將幫助您認識到生成了這些源的數據量與數千個源相似。 ![Big Data Growth](https://img.kancloud.cn/10/d1/10d1c1b27de907ae5f81f6b96e7be233_630x1002.png) 大數據增長 圖片: [Erik Fitzpatrick](https://www.flickr.com/photos/22244945@N00/3278869535/in/photolist-5ZK4Fn-wZhZd-6aGNbC-9AsggZ-7XE95z-9Avbkf-5nJkso-55zRNp-aPstJp-9Y4VMY-deUcef-99Gf16-gcg8mw-4TnMfy-a5vF3K-deqnNq-9Y4VN1-acLqa5-cf9tko-asSJNJ-Rc1BX-acLrrb-igDmy-93s25S-7euQsi-526UdZ-9fv4y3-mzQCL6-8WPwKd-A9xpa-4y3Rug-2khxUo-bUdjEY-6arb1v-75umLC-9X5xcb-86ezqV-481hNa-mzRq8D-7dZZR8-7e4TBN-47GeJT-vyNc5-b4gX2t-6zVsV8-5v16L3-3jz3Bw-9qpCK5-7qtryv-7e4S1u) [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/) 現在,您知道正在生成的數據量。 盡管如此大量的數據本身就是一個很大的挑戰,但由于該數據沒有固定格式,因此帶來了更大的挑戰。 它具有圖像,視頻,線路記錄,GPS 跟蹤詳細信息,傳感器記錄以及許多其他形式。 簡而言之,它是非結構化數據。 傳統系統擅長處理結構化數據(也受限制),但它們無法處理如此大量的非結構化數據。 有人可能會問這個問題,為什么還要關心存儲和處理數據呢? 出于什么目的? 答案是,我們需要這些數據,以便在我們正在研究的任何領域中做出更明智和可計算的決策。 業務預測并不是什么新鮮事物。 過去也已完成,但數據非常有限。 為了領先于競爭對手,企業必須使用這些數據,然后做出更明智的決策。 這些決定的范圍從猜測消費者的喜好到提前預防欺詐活動。 每個領域的專業人員都可能找到他們分析此數據的原因。 ## 大數據系統的特征 當您想確定下一個項目需要使用任何大數據系統時,請查看應用將產生的數據,并嘗試尋找這些特征。 這些特性稱為 4V 大數據。 1. #### 容量 容量無疑是使大數據變得龐大的一部分。 互聯網移動革命帶來了大量社交媒體更新,來自設備的傳感器數據以及電子商務的爆炸式增長,這意味著每個行業都充斥著數據,如果您知道如何使用它,那將是非常有價值的數據 。 您的數據是否正在擴展/或可能像上述統計數據一樣呈爆炸式增長? 2. #### 種類 存儲在 SQL 表中的結構化數據已成為過去。 如今,從地理空間數據到可以分析內容和情感的推文,再到視覺數據(如照片和視頻),各種形式和形式的 90% 生成的數據都是“非結構化”的。 您的數據是否始終保持結構化? 還是半結構化還是非結構化? 3. #### 速度 每天每一分鐘,全局用戶在 YouTube 上上傳 100 個小時的視頻,發送超過 2 億封電子郵件,以及發送 30 萬條推文。 并且速度正在迅速增加。 您的數據速度如何,或者將來會怎樣? 4. #### 真實性 這是指營銷商可獲得的數據的不確定性(或可變性)。 這也可能適用于可能不一致的數據流的可變性,這使得組織更難以快速,更適當地做出反應。 您是否總是以一致的形式獲取數據? ## Google 如何解決大數據問題? 這個問題可能首先是因為搜索引擎數據使 Google 感到頭疼,但隨著互聯網行業的革命而爆炸(盡管沒有任何證據)。 他們使用并行處理的概念巧妙地解決了這個問題。 他們創建了一種稱為 MapReduce 的算法。 該算法將任務分為小部分,并將這些部分分配給通過網絡連接的許多計算機,然后收集結果以形成最終結果數據集。 當您意識到 I/O 是數據處理中最昂貴的操作時,這似乎合乎邏輯。 傳統上,數據庫系統將數據存儲到單臺計算機中,并且當您需要數據時,可以通過 SQL 查詢的形式向它們發送一些命令。 這些系統從存儲中獲取數據,將其放入本地內存區域,進行處理并發送回給您。 這是最好的事情,您可以處理有限的數據和有限的處理能力。 但是,當您獲得大數據時,就無法將所有數據存儲在一臺計算機中。 您必須將其存儲到多臺計算機(可能是數千臺計算機)中。 而且,當您需要運行查詢時,由于高 I/O 成本,您無法將數據聚合到一個位置。 那么 MapReduce 算法的作用是什么? 它會將您的查詢獨立運行到存在數據的所有節點中,然后匯總結果并返回給您。 它帶來了兩個主要的改進,即 I/O 成本非常低,因為數據移動很少。 因為您的工作并行地在多臺計算機中分解成較小的數據集,所以時間減少了第二秒。 ## Hadoop 的演變 這一切始于 1997 年,當時 [Doug Cutting](https://en.wikipedia.org/wiki/Doug_Cutting) 開始編寫 [Lucene](https://lucene.apache.org/)(全文搜索庫)以對整個 Web 進行索引(就像 Google 一樣)。 后來 Lucene 被 Apache 社區改編,Cutting 與華盛頓大學研究生 Mike Cafarella 一起創建了一個 Lucene 子項目“[Apache Nutch](https://nutch.apache.org/)”。 Nutch 現在被稱為網絡爬蟲。 Nutch 抓取網站,并在其獲取頁面時,Nutch 使用 Lucene 對頁面內容進行索引(使其“可搜索”)。 最初,他們將應用部署在具有 1GB RAM 和 8 個硬盤驅動器,總容量 8 TB 的單臺計算機中,索引速率約為每秒 1000 頁。 但是,一旦應用數據增長,就會出現限制。 不能將整個互聯網數據存儲到一臺機器中是可以理解的。 因此,他們又增加了 3 臺計算機(主要用于存儲數據)。 但這是一個挑戰,因為現在他們需要將數據從一臺機器手動移動到另一臺機器。 他們希望使應用易于擴展,因為即使 4 臺計算機也將很快裝滿。 因此,他們開始研究一種系統,該系統可以是沒有模式的,沒有預定義的結構,經久耐用,能夠處理組件故障的系統。 硬盤故障并自動重新平衡,以平衡整個計算機群集中的磁盤空間消耗。 幸運的是,2003 年 10 月,Google 發表了他們的 [Google 文件系統](http://research.google.com/archive/gfs.html)論文。 本文旨在解決他們面臨的完全相同的問題。 太好了! 他們出色地在 Java 中實現了該解決方案,并將其稱為 **Nutch 分布式文件系統(NDFS)**。 根據 GFS 論文,Cutting 和 Cafarella 通過將每個文件分成 64MB 塊并將每個塊存儲在 3 個不同的節點(復制因子設置為 3)上,解決了持久化和容錯性問題。 如果發生組件故障,系統將自動發現缺陷,并通過使用其他兩個副本的數據重新復制故障節點上的數據塊。 因此,發生故障的節點對 NDFS 的整體狀態沒有任何作用。 NDFS 解決了他們的一個問題,即存儲,但帶來了另一個問題“如何處理此數據”? 至關重要的是,新算法應具有與 NDFS 相同的可擴展性。 該算法必須能夠達到盡可能高的并行度(能夠同時在多個節點上運行的能力)。 幸運再次使勇敢者受益。 2004 年 12 月,Google 發表了另一篇關于類似算法“[MapReduce](http://research.google.com/archive/mapreduce.html)”的論文。 太棒了!! MapReduce 論文解決的三個主要問題是并行化,分布和容錯。 這些是切特和卡法雷利亞面臨的確切問題。 MapReduce 的主要見解之一是,不應強迫他人為了處理數據而移動數據。 而是將程序發送到數據所在的位置。 與傳統的數據倉庫系統和關系數據庫相比,這是一個關鍵的區別。 在 2005 年 7 月,Cutting 報告說 MapReduce 已集成到 Nutch 中,作為其基礎計算引擎。 2006 年 2 月,Cutting 從 Nutch 代碼庫中刪除了 NDFS 和 MapReduce,并創建了 Hadoop。 它由 Hadoop Common(核心庫),HDFS 和 MapReduce 組成。 這就是 hadoop 誕生的方式。 此后發生了許多事情,導致 Yahoo 在 MapReduce “[Pig](https://pig.apache.org/)”之上貢獻了他們的高級編程語言,而 Facebook 在“[Hive](https://hive.apache.org/)”之上貢獻了 SQL,這是 SQL 的第一個化身。 MapReduce 的頂部。 ## Apache Hadoop 分發套件 開源 Hadoop 由 Apache 軟件基金會維護,網站位置為 [http://hadoop.apache.org/](https://hadoop.apache.org/)。 當前的 Apache Hadoop 項目(版本 2.7)包括以下模塊: * **Hadoop 通用**:支持其他 Hadoop 模塊的通用工具 * **Hadoop 分布式文件系統(HDFS)**:提供對應用數據的高吞吐量訪問的分布式文件系統 * **Hadoop YARN**:用于作業調度和集群資源管理的框架 * **Hadoop MapReduce**:基于 YARN 的系統,用于并行處理大型數據集 可以通過以下三種模式部署 Apache Hadoop: 1. **獨立**:用于簡單分析或調試到單機環境中。 2. **偽分布式**:它可幫助您模擬單個節點上的多節點安裝。 在偽分布式模式下,每個組件進程都在單獨的 JVM 中運行。 3. **分布式**:具有數十個,數百個或數千個多個節點的群集。 ## Apache Hadoop 生態系統 除了上述隨 hadoop 分發的核心組件之外,還有許多組件可以補充基本的 Hadoop 框架,并為公司提供獲得所需 Hadoop 結果所需的特定工具。 ![Hadoop Ecosystem](https://img.kancloud.cn/cd/62/cd624d0cbfab54105053c47c92e0f61e_767x750.png) Hadoop 生態系統 1. **數據存儲層**:這是將數據存儲在分布式文件系統中的位置,該文??件系統由 HDFS 和 HBase ColumnDB 存儲組成。 HBase 是可擴展的分布式數據庫,支持大型表的結構化數據存儲。 2. **數據處理層**:此處要計算的調度,資源管理和集群管理。 使用 Map Reduce 的 YARN 作業調度和群集資源管理位于此層。 3. **數據訪問層**:這是將來自管理層的請求發送到數據處理層的層。 Hive,一種數據倉庫基礎結構,提供數據匯總和臨時查詢; Pig,一種用于并行計算的高級數據流語言和執行框架; Mahout,可擴展的機器學習和數據挖掘庫; Avro,數據序列化系統。 4. **管理層**:這是滿足用戶需求的層。 用戶通過該層訪問系統,該層具有以下組件:Chukwa,一個用于管理大型分布式系統的數據收集系統,以及 ZooKeeper,用于分布式應用的高性能協調服務。 在下一組文章中,我將詳細介紹 hadoop 集群中涉及的編程概念。 **祝您學習愉快!** #### 參考文獻 [https://zh.wikipedia.org/wiki/Doug_Cutting](https://en.wikipedia.org/wiki/Doug_Cutting) [http://hadoop.apache.org/](https://hadoop.apache.org/) [http://lucene.apache.org/](https://lucene.apache.org/) [http://nutch.apache.org/](https://nutch.apache.org/) [http://hive.apache.org/](https://hive.apache.org/) [http://pig.apache.org/](https://pig.apache.org/) [http://research.google.com/archive/gfs.html](http://research.google.com/archive/gfs.html) [http://research.google.com/archive/mapreduce.html](http://research.google.com/archive/mapreduce.html) [https://medium.com/@markobonaci/the-history-of-hadoop-68984a11704](https://medium.com/@markobonaci/the-history-of-hadoop-68984a11704)(推薦閱讀) [https://www.linkedin.com/pulse/100-open-source-big-data-architecture-papers-anil-madan](https://www.linkedin.com/pulse/100-open-source-big-data-architecture-papers-anil-madan)(必須閱讀)
                  <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>

                              哎呀哎呀视频在线观看