大數據和Hadoop平臺介紹

大數據和Hadoop平臺介紹

定義

大數據是指其大小和複雜性沒法經過現有經常使用的工具軟件,以合理的成本,在可接受的時限內對其進行捕獲、管理和處理的數據集。這些困難包括數據的收入、存儲、搜索、共享、分析和可視化。大數據要知足三個基本特徵(3V),數據量(volume)、數據多樣性(variety)和高速(velocity)。數據量指大數據要處理的數據量通常達到TB甚至PB級別。數據多樣性指處理的數據包括結構化數據、非結構化數據(視頻、音頻、網頁)和半結構化數據(xml、html)。高速指大數據必須可以快速流入而且能獲得快速處理。html

大數據發展背景

數據爆炸。伴隨信息技術的應用,全球數據量呈幾何級數增加。過去幾年間的數據總量超過了人類歷史上的數據總和。芯片、攝像頭、各自傳感器遍及世界各個角落,本來不能被感知的事物均可以被監測。軟硬件技術的不斷進步,也爲處理大數據創造的條件。java

大數據的應用領域

  • 在公共領域,跨部門提供大數據服務,能大幅減小檢索和處理時間。提升公共服務的效率。
  • 企業經過收集產品在使用中產生的海量數據,進行分析,能夠改善產品性能。
  • 大數據能幫助企業對用戶進行更加細化的區分,並針對用戶的不一樣需求提供個性化的服務。這是營銷和危機管理經常使用的辦法。
  • 利用自動化算法支持或替代人工決策。對大數據的分析能極大改善決策效果,下降風險,並挖掘出其餘方法沒法發現的寶貴信息。
  • 商業模式、產品與服務創新。Netflix根據大數據分析結果,製做《紙牌屋》。

大數據研究課題

  1. 數據獲取問題。包括哪些數據須要保存,哪些數據須要丟棄,如何可靠的存儲咱們須要的數據。
  2. 數據結構問題。微博博客是沒有結構的數據,圖像和視頻在存儲和顯示方面具備結構,可是沒法包含語義信息進行檢索。若是將沒有語義的內容轉換爲結構化的格式,並進行後續處理,是須要面對的另外一項挑戰。
  3. 數據集成問題。不一樣來源數據之間進行關聯,才能充分發揮數據的做用。
  4. 數據分析、組織、抽取和建模
  5. 如何呈現分析結果

科技公司大數據產品

  • 谷歌:MapReduce
  • IBM:InfoSphere大數據分析平臺
  • SAS:高性能分析服務器和SAS DataFlux數據流處理引擎
  • EMC:Greenplum 支持海量並行處理
  • Teradata:Aster Data 基於MapReduce,提供了多種統計軟件包

大數據發展趨勢

  • 數據資源化。大數據成爲企業和社會關注的重要戰略資源,並已經成爲你們爭相搶奪的焦點。
  • 與雲計算深度結合。大數據離不開雲處理,雲處理爲大數據提供彈性可拓展的基礎服務。
  • 帶動科學理論的突破。帶動數據挖掘、機器學習、人工智能和數據科學等相關技術的發展。

大數據處理通常步驟

  1. 數據的收集。

第一個方式是抓取或者爬取。例如搜索引擎就是這麼作的:它把網上的全部的信息都下 載到它的數據中心,而後你一搜才能搜出來。
第二個方式是推送,有不少終端能夠幫我收集數據。好比說小米手環,能夠將你天天跑 步的數據,心跳的數據,睡眠的數據都上傳到數據中內心面。node

  1. 數據的傳輸

通常會經過隊列方式進行,由於數據量實在是太大了,數據必須通過處理纔會有用。可系統處理不過來,只好排好隊,慢慢處理。ios

  1. 數據的存儲

存儲要確保安全,不易丟失,高容錯性。算法

  1. 數據的處理和分析

存儲的數據是原始數據,原始數據可能是雜亂無章的,有不少垃圾數據在裏面,於是須要清洗和過濾,獲得一些高質量的數據。對於高質量的數據,就能夠進行分析,從而對數據進行分類,或者發現數據之間的相互關係,獲得知識。數據庫

  1. 數據的檢索和挖掘

使想要的信息容易被搜索到。挖掘信息之間的相互關係。安全

開源框架

由於大數據的這些特色,針對其收集、傳輸、存儲、處理分析和檢索使用產生了許多開源框架。
|功能|框架|
|--|--|
|文件存儲|Hadoop HDFS、Tachyon、KFS|
|離線計算|Hadoop MapReduce、Spark|
|流式、實時計算|Storm、Spark Streaming、S四、Heron|
|K-V、NOSQL數據庫|HBase、Redis、MongoDB|
|資源管理|YARN、Mesos|
|日誌收集|Flume、Scribe、Logstash、Kibana|
|消息系統|Kafka、StormMQ、ZeroMQ、RabbitMQ|
|查詢分析|Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid|
|分佈式協調服務|Zookeeper|
|集羣管理與監控|Ambari、Ganglia、Nagios、Cloudera Manager|
|數據挖掘、機器學習|Mahout、Spark MLLib|
|數據同步|Sqoop|
|任務調度|Oozie|服務器

通常大數據平臺的框架以下圖

Hadoop HDFS和Hadoop MapReduce做爲大數據存儲和處理的開山鼻祖,大數據平臺上都處於核心位置。下面介紹一下兩個框架的基本原理。網絡

Hadoop HDFS基本原理

HDFS全稱Hadoop Distributed File System。HDFS是一個分佈式文件系統,能夠部署在一個服務器集羣上。Java語言開發,能夠部署在任何支撐java的機器上。
HDFS有幾個基本概念NameNode、DataNode和block。
NameNode負責整個分佈式文件系統的元數據管理,也就是文件路徑名,數據block的ID以及存儲位置等信息。還要記錄一些事情,好比哪些節點是集羣的一部分,某個block有幾份副本等。

DataNode是實際存儲文件數據的節點。DataNode會經過心跳和NameNode保持通訊,若是DataNode超時未發送心跳,NameNode就會認爲這個DataNode已經失效,當即查找這個DataNode上存儲的block有哪些,以及這些block還存儲在哪些服務器上,隨後通知這些服務器再複製一份block到其餘服務器上,保證HDFS存儲的block備份數符合用戶設置的數目,即便再有服務器宕機,也不會丟失數據。

Block是HDFS中的存儲單元,文件被寫入HDFS時,會被切分紅多個block塊,默認的塊大小是128MB,每一個數據塊默認會有三個副本。

數據寫入:首先將文件分紅多個block,每一個block會被寫入三個DataNode中,寫入哪三個DataNode中是由NameNode指定的,寫入完成,NameNode會記錄這些信息。同一個文件中不一樣的block可能會被寫入徹底不一樣的DataNode中。

數據讀取:數據讀取時按block讀取。每個block時,會從NameNode獲取信息,知道從哪一個DataNode中讀取,通常是就近原則。全部該文件的block讀取完成,構成完整的文件。
客戶端和Datanode是同一個機器:距離爲0 ,表示最近
客戶端和Datanode是同一個機架的不一樣機器 :距離爲2 ,稍微遠一點
客戶端和Datanode位於同一個數據中心的不一樣機架上 :距離爲4,更遠一點數據結構

Hadoop MapReduce基本原理

Hadoop MapReduce是一個分佈式計算框架,其中的運算均可以在多個機器上並行進行。使用者只須要完成運算自己的編碼,不須要關心並行計算的底層細節。
MapReduce背後的思想很簡單,就是把一些數據經過Map來歸類,經過Reduce來把同一類的數據進行處理。Map和reduce的過程都是利用集羣的計算能力並行執行的。計算模型的核心是Map和Reduce函數,兩個函數由用戶自行實現。

把原始大數據集切割成小數據集時,一般小數據集小於等於HDFS的一個block的大小,這樣一個小數據集位於一個物理機上,便於本地計算。Map和reduce各自的啓動任務數量能夠由用戶指定。

上圖表示一個MapReduce統計單詞出現次數的過程,原始數據分割爲4個子文件,對每一個子文件按照用戶的Map函數會產生<單詞, 出現次數>的<k2,v2>形式的結果。而後把相同單詞的<k2,v2>組合在一塊兒構成<k2,List(v2)>的形式,做爲Reduce函數的輸入,相同的k2必定分發給相同的Reduce任務處理,例如單詞lorem的全部計算都由第一個Reduce任務來完成。按照這個思想,即便要統計的文件數量上千萬個,單詞數量有幾千個,可是經過MapReduce框架,只要集羣機器數量夠多,也是能夠在可接受時間內計算完成的。

大數據行業應用

  • 互聯網:定向廣告、用戶行爲分析、內容推薦、搜索引擎優化
  • 金融:反洗錢、反欺詐、客戶價值分析、目標市場客戶聚類、償還能力預測、股票投資組合趨勢分析
  • 電信:業務設計優化、客戶流失預測、網絡質量優化
  • 醫療衛生:臨牀數據比對、決策支持、就診行爲分析、疾病模式分析
  • 公共安全:嫌疑人行爲預測分析、恐怖活動檢測、危險性分析、關係人分析
  • 智慧交通:整個傳感器、GPS和健康視頻等設備產生的海量數據,結合氣象監測設備的天氣情況數據、人口分佈數據、移動通訊數據,實現智能公共交通。

推廣使用面臨的挑戰

  • 少數機構對數據絕對壟斷,大部分數據集中在這些機構內部。就像罕見病數據,只有經過共享機制和平臺,才能爲患者提供幫助。
  • 大數據應用應該以尊重用戶隱私爲前提,同時如何兼顧數據的開放和創新,是大數據行業面臨的一個重要問題。企業經過大數據來理解用戶的特色和需求,須要充分尊重他們的隱私權。
  • 現有的大數據架構沒法保證數據自己不被篡改,於是限制了須要創建信任和確權的應用場景。諸如信用類的數據,若是沒有辦法確保數據的真實有效性,則很難運用在相關機構的決策流程中。
相關文章
相關標籤/搜索