大數據和Hadoop概述

大數據

概念

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

大數據部門組織結構

大數據技術生態體系

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

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

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

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

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

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

    4. 支持Hadoop並行數據加載。

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

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

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

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

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

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

  • Mahout:Apache Mahout是個可擴展的機器學習和數據挖掘庫。

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

推薦系統框架圖

Hadoop

Hadoop簡介

  • Hadoop是一個由Apache基金會所開發的分佈式系統基礎架構
  • 主要解決,海量數據的存儲和海量數據的分析計算問題
  • 廣義上來說,Hadoop通常是指一個更廣泛的概念-------Hadoop生態圈

Hadoop三大發行版本

  • Apache:最原始最基礎版本,對於入門學習最好
  • Cloudera:在大型互聯網企業中用的較多
  • Hortonworks:文檔較好

Hadoop的優勢

  • 高可靠性:Hadoop底層維護多個數據副本,所以即使Hadoop某個計算元素或存儲出現故障,也不會導致數據的丟失。
  • 高擴展性:在集羣間分配任務數據,可方便的擴展數以千計的節點。
  • 高效性:在MapReduce的思想下,Hadoop是並行工作的,以加快任務處理速度。
  • 高容錯性:能夠自動將失敗的任務重新分配。

Hadoop的組成

包括兩個核心組成:

HDFS:分佈式文件系統,存儲海量的數據

MapReduce:並行處理框架,實現任務分解和調度

Hadoop可以用來做什麼

搭建大型數據倉庫,PB級數據的存儲、處理、分析、統計等業務

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