5分鐘瞭解大數據

    1. 大數據的基本概念

大數據指無法在一定時間範圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強大的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。

大數據通常用來形容一個公司創造的大量非結構化數據和半結構化數據,這些數據在下載到關係型數據庫用於分析時會花費大量的時間和金錢。

  1. 大數據主要解決兩個主要問題
  1. 海量數據的存儲 : 例如分佈式存儲文件系統 : HDFS
  2. 海量數據的運算:  例如分佈式運算框架 : MAPREDUCE,SPARK等
  1. 什麼是分佈式(並行)

就是將一個文件存儲在很多臺機器上,其實就是有一個系統幫助我們存儲文件,這個系統看起來是由目錄組成的(也就是說是由統一的路徑的,但是該路徑和機器上的真實路徑是不相關的),將該文件放到這個文件系統的某個路徑下的時候,他會將該文件切分成不同的文件塊,存放在不同的機器上(用戶並不知道里面的存儲信息),這就是分佈式存儲

  1. 存儲框架
  1. 分佈式文件存儲系統HDFS
  2. 分佈式數據庫系統ElasticSearch  mongDB  hbase  redis
  1. 計算框架
  1. 解決的核心問題就是將用戶的計算邏輯分佈在多臺機器上並行計算
  2. MapReduce計算框架 -- Hadoop中的計算框架
  3. Spark計算框架 -- 做離線批處理、實時流式處理
  4. Strom計算框架 -- 做實時流式處理
  5. flink 實時處理的框架
  1. 輔助類的工具
  1. Hive -- 數據倉庫工具:可以接受SQL,將SQL語句解析成MapReduce或者Spark程序處理
  2. Flume -- 數據採集 , 普通的文件數據
  3. Sqoop -- 數據遷移  , 將結構化的數據庫中的數據遷移到分佈式文件系統中
  4. hbase --  分佈式的數據庫 , 列式存儲的數據庫 , 對mysql進行補充
    1. 大數據主要技術組件

1)Sqoop:Sqoop是一款開源的工具,主要用於在Hadoop、Hive與傳統的數據庫(MySql)間進行數據的傳遞,可以將一個關係型數據庫(例如 :MySQL,Oracle 等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中。

2)Flume:Flume是Cloudera提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定製)的能力。

3)Kafka:Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,有如下特性:

(1)通過O(1)的磁盤數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。

(2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒數百萬的消息。

(3)支持通過Kafka服務器和消費機集羣來分區消息。

(4)支持Hadoop並行數據加載。

4)Storm:Storm用於“連續計算”,對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。

5)Spark:Spark是當前最流行的開源大數據內存計算框架。可以基於Hadoop上存儲的大數據進行計算。

6)Oozie:Oozie是一個管理Hdoop作業(job)的工作流程調度管理系統。

7)Hbase:HBase是一個分佈式的、面向列的開源數據庫。HBase不同於一般的關係數據庫,它是一個適合於非結構化數據存儲的數據庫。 nosql  not  only  sql

8)Hive:Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換爲MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

10)R語言:R是用於統計分析、繪圖的語言和操作環境。R是屬於GNU系統的一個自由、免費、源代碼開放的軟件,它是一個用於統計計算和統計製圖的優秀工具。

11)MahoutApache Mahout是個可擴展的機器學習和數據挖掘庫。

12)ZooKeeper:Zookeeper是Google的Chubby一個開源的實現。它是一個針對大型分佈式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。

13)  Redis:(全稱:Remote Dictionary Server 遠程字典服務)是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫(文件系統),並提供多種語言的API。

14)  ElasticSearch: 是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。能夠達到實時搜索,穩定,可靠,快速,安裝使用方便.

15)  MongoDB:是由C++語言編寫的一個介於關係數據庫和非關係數據庫之間的分佈式文件存儲的數據庫。是非關係數據庫當中功能最豐富,最像關係數據庫的。它支持的數據結構非常鬆散,是類似jsonbson格式,因此可以存儲比較複雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關係數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引

16) flink: 是由Apache軟件基金會開發的開源流處理框架,其核心是用Java和Scala編寫的分佈式流數據流引擎。Flink以數據並行和流水線方式執行任意流數據程序,Flink的流水線運行時系統可以執行批處理和流處理程序。此外,Flink的運行時本身也支持迭代算法的執行。是當下比較流行的實時計算框架的領頭羊!

    1. 大數據的應用場景
  1. 數據處理的最典型的應用場景:公司產品運營情況分析

 

  1. 電商推薦系統:基於海量的瀏覽行爲、購物行爲數據,進行大量的算法模型的運算,得出各類推薦結論,以供電商網站頁面來爲用戶進行商品推薦。

 

  1. 廣告精準推送系統:基於海量的互聯網用戶的各類數據,統計分析,進行用戶畫像(得到用戶的各種屬性標籤),然後可以爲廣告主進行鍼對性的精準廣告投放。

 

  1. 大數據無處不在,大數據應用於各個行業,包括金融、汽車、餐飲、電信、能源、體能和娛樂等在內的社會各行各業都已經融入了大數據的印跡。

 

  1. 製造業,利用工業大數據提升製造業水平,包括產品故障診斷與預測、分析工藝流程、改進生產工藝,優化生產過程能耗、工業供應鏈分析與優化、生產計劃與排程。

 

  1. 金融行業,大數據在高頻交易、社交情緒分析和信貸風險分析三大金融創新領域發揮重大作用。

 

  1. 汽車行業,利用大數據和物聯網技術的無人駕駛汽車,在不遠的未來將走入我們的日常生活。

 

  1. 互聯網行業,藉助於大數據技術,可以分析客戶行爲,進行商品推薦和針對性廣告投放。

 

  1. 電信行業,利用大數據技術實現客戶離網分析,及時掌握客戶離網傾向,出臺客戶挽留措施。

 

  1. 能源行業,隨着智能電網的發展,電力公司可以掌握海量的用戶用電信息,利用大數據技術分析用戶用電模式,可以改進電網運行,合理設計電力需求響應系統,確保電網運行安全。

 

  1. 物流行業,利用大數據優化物流網絡,提高物流效率,降低物流成本。

 

  1. 城市管理,可以利用大數據實現智能交通、環保監測、城市規劃和智能安防。

 

  1. 生物醫學,大數據可以幫助我們實現流行病預測、智慧醫療、健康管理,同時還可以幫助我們解讀DNA,瞭解更多的生命奧祕。

 

  1. 體育娛樂,大數據可以幫助我們訓練球隊,決定投拍哪種題財的影視作品,以及預測比賽結果。

 

  1. 安全領域,政府可以利用大數據技術構建起強大的國家安全保障體系,企業可以利用大數據抵禦網絡攻擊,警察可以藉助大數據來預防犯罪。

 

  1. 個人生活, 大數據還可以應用於個人生活,利用與每個人相關聯的“個人大數據”,分析個人生活行爲習慣,爲其提供更加周到的個性化服務。

 

  1. 大數據的價值,遠遠不止於此,大數據對各行各業的滲透,大大推動了社會生產和生活,未來必將產生重大而深遠的影響。
  2.  人工智能和機器學習 , AI中海量訓練數據的管理和運算等 !

 

總之:大數據技術的應用非常廣泛 , 在不久的將來會滲透應用到各行各業中 ! 所以學習大數據是中非常明智且有前途的選擇 !

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章