hadoop詳細文檔(一) 大數據概述(附帶詳細講解視頻)

免費視頻教程 https://www.51doit.com/ 或者聯繫博主微信 17710299606

1 大數據背景

現在的社會是一個高速發展的社會,科技發達,信息流通,人們之間的交流越來越密切,生活也越來越方便,大數據就是這個高科技時代的產物。

隨着雲時代的來臨,大數據(Big data)也吸引了越來越多的關注。大數據(Big data)通常用來形容一個公司創造的大量非結構化和半結構化數據,這些數據在下載到關係型數據庫用於分析時會花費過多時間和金錢。大數據分析常和雲計算聯繫到一起,因爲實時的大型數據集分析需要像MapReduce一樣的框架來向數十、數百或甚至數千的電腦分配工作。 [2] 

在現今的社會,大數據的應用越來越彰顯他的優勢,它佔領的領域也越來越大,電子商務、O2O、物流配送等,各種利用大數據進行發展的領域正在協助企業不斷地發展新業務,創新運營模式。有了大數據這個概念,對於消費者行爲的判斷,產品銷售量的預測,精確的營銷範圍以及存貨的補給已經得到全面的改善與優化。

“大數據”在互聯網行業指的是這樣一種現象:互聯網公司在日常運營中生成、累積的用戶網絡行爲數據。這些數據的規模是如此龐大,以至於不能用G或T來衡量。

大數據到底有多大?一組名爲“互聯網上一天”的數據告訴我們,一天之中,互聯網產生的全部內容可以刻滿1.68億張DVD;發出的郵件有2940億封之多(相當於美國兩年的紙質信件數量);發出的社區帖子達200萬個(相當於《時代》雜誌770年的文字量);賣出的手機爲37.8萬臺,高於全球每天出生的嬰兒數量37.1萬…… [1] 

截止到2012年,數據量已經從TB(1024GB=1TB)級別躍升到PB(1024TB=1PB)、EB(1024PB=1EB)乃至ZB(1024EB=1ZB)級別。國際數據公司(IDC)的研究結果表明,2008年全球產生的數據量爲0.49ZB,2009年的數據量爲0.8ZB,2010年增長爲1.2ZB,2011年的數量更是高達1.82ZB,相當於全球每人產生200GB以上的數據。而到2012年爲止,人類生產的所有印刷材料的數據量是200PB,全人類歷史上說過的所有話的數據量大約是5EB。IBM的研究稱,整個人類文明所獲得的全部數據中,有90%是過去兩年內產生的。而到了2020年,全世界所產生的數據規模將達到今天的44倍。 [3]  每一天,全世界會上傳超過5億張圖片,每分鐘就有20小時時長的視頻被分享。然而,即使是人們每天創造的全部信息——包括語音通話、電子郵件和信息在內的各種通信,以及上傳的全部圖片、視頻與音樂,其信息量也無法匹及每一天所創造出的關於人們自身的數字信息量。

這樣的趨勢會持續下去。我們現在還處於所謂“物聯網”的最初級階段,而隨着技術成熟,我們的設備、交通工具和迅速發展的“可穿戴”科技將能互相連接與溝通。科技的進步已經使創造、捕捉和管理信息的成本降至2005年的六分之一,而從2005年起,用在硬件、軟件、人才及服務之上的商業投資也增長了整整50%,達到了4000億美元。

2 特徵

數據量大(Volume)

第一個特徵是數據量大。大數據的起始計量單位至少是P(1000個T)、E(100萬個T)或Z(10億個T)。

類型繁多(Variety)

第二個特徵是數據類型繁多。包括網絡日誌、音頻、視頻、圖片、地理位置信息等等,多類型的數據對數據的處理能力提出了更高的要求。

價值密度低(Value)

第三個特徵是數據價值密度相對較低。如隨着物聯網的廣泛應用,信息感知無處不在,信息海量,但價值密度較低,如何通過強大的機器算法更迅速地完成數據的價值“提純”,是大數據時代亟待解決的難題。

速度快、時效高(Velocity)

第四個特徵是處理速度快,時效性要求高。這是大數據區分於傳統數據挖掘最顯著的特徵。

既有的技術架構和路線,已經無法高效處理如此海量的數據,而對於相關組織來說,如果投入巨大采集的信息無法通過及時處理反饋有效信息,那將是得不償失的。可以說,大數據時代對人類的數據駕馭能力提出了新的挑戰,也爲人們獲得更爲深刻、全面的洞察能力提供了前所未有的空間與潛力。 

3 場景

大數據已經應用到各行各業中 , 

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

  • 製造業,利用工業大數據提升製造業水平,包括產品故障診斷與預測、分析工藝流程、改進生產工藝,優化生產過程能耗、工業供應鏈分析與優化、生產計劃與排程。
  • 金融行業,大數據在高頻交易、社交情緒分析和信貸風險分析三大金融創新領域發揮重大作用。
  • 汽車行業,利用大數據和物聯網技術的無人駕駛汽車,在不遠的未來將走入我們的日常生活。
  • 互聯網行業,藉助於大數據技術,可以分析客戶行爲,進行商品推薦和針對性廣告投放。
  • 電信行業,利用大數據技術實現客戶離網分析,及時掌握客戶離網傾向,出臺客戶挽留措施。
  • 能源行業,隨着智能電網的發展,電力公司可以掌握海量的用戶用電信息,利用大數據技術分析用戶用電模式,可以改進電網運行,合理設計電力需求響應系統,確保電網運行安全。
  • 物流行業,利用大數據優化物流網絡,提高物流效率,降低物流成本。
  • 城市管理,可以利用大數據實現智能交通、環保監測、城市規劃和智能安防。
  • 生物醫學,大數據可以幫助我們實現流行病預測、智慧醫療、健康管理,同時還可以幫助我們解讀DNA,瞭解更多的生命奧祕。
  • 體育娛樂,大數據可以幫助我們訓練球隊,決定投拍哪種題財的影視作品,以及預測比賽結果。
  • 安全領域,政府可以利用大數據技術構建起強大的國家安全保障體系,企業可以利用大數據抵禦網絡攻擊,警察可以藉助大數據來預防犯罪。
  • 個人生活, 大數據還可以應用於個人生活,利用與每個人相關聯的“個人大數據”,分析個人生活行爲習慣,爲其提供更加周到的個性化服務。

大數據的價值,遠遠不止於此,大數據對各行各業的滲透,大大推動了社會生產和生活,未來必將產生重大而深遠的影響。

4 大數據崗位

  1. 數據分析師Data analyst
    指熟悉相關業務,熟練搭建數據分析框架,掌握和使用相關的分析常用工具和基本的分析方法,進行數據蒐集、整理、分析,針對數據分析結論給管理銷售運營提供指導意義的分析意見。
  2. 數據架構師Data architect
    對Hadoop解決方案的整個生命週期進行引導,包括需求分析,平臺選擇,技術架構設計,應用設計和開發,測試和部署。深入掌握如何編寫MapReduce的作業及作業流的管理完成對數據的計算,並能夠使用Hadoop提供的通用算法, 熟練掌握Hadoop整個生態系統的組件如: Yarn,HBase、Hive、Pig等重要組件,能夠實現對平臺監控、輔助運維繫統的開發。
  3. 大數據工程師Big DataEngineer
    收集和處理大規模的原始數據(包括腳本編寫,網頁獲取,調用APIs,編寫SQL查詢等);將非結構化數據處理成適合分析的一種形式,然後進行分析;根據所需要的和專案分析商業決策。
  4. 數據倉庫管理員Data warehousemanager
    指定並實施信息管理策略;協調和管理的信息管理解決方案;多個項目的範圍,計劃和優先順序安排;管理倉庫的各個方面,比如數據外包,移動,質量,設計和實施。
  5. 數據庫管理員Database manager
    提高數據庫工具和服務的有效性;確保所有的數據符合法律規定;確保信息得到保護和備份;做定期報告;監控數據庫性能;改善使用的技術;建立新的數據庫;檢測數據錄入程序;故障排除。
  6. 商業智能分析員Businessintelligence analyst
    就工具,報告或者元數據增強來進行傳播信息;進行或協調測試,以確保情報的定義與需求相一致;使用商業智能工具來識別或監測現有和潛在的客戶;綜合目前的商業只能和趨勢數據,來支持採取行動的建議;維護或更新的商業智能工具,數據庫,儀表板,系統或方法;及時的管理用戶流量的商業情報。

5 核心概念

5.1 概念

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

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

  • 處理海量數據的核心技術:
    1. 海量數據的存儲:
      1. 分佈式文件系統存儲
        1. HDFS
    2. 海量數據的運算處理:
      1. 分佈式計算框架
        1. MapReduce , spark , flink等
  • 什麼是分佈式
    1. 就是將一個文件存儲在很多臺機器上,其實就是有一個系統幫助我們存儲文件,這個系統看起來是由目錄組成的(也就是說是由統一的路徑的,但是該路徑和機器上的真實路徑是不相關的),將該文件放到這個文件系統的某個路徑下的時候,他會將該文件切分成不同的文件塊,存放在不同的機器上(用戶並不知道里面的存儲信息),這就是分佈式存儲
  • 存儲框架
    1. 分佈式文件存儲系統HDFS
    2. 分佈式數據庫系統HBASE  ElasticSearch  mongDB
  • 計算框架
    1. 解決的核心問題就是將用戶的計算邏輯分佈在多臺機器上並行計算
    2. MapReduce計算框架 -- Hadoop中的計算框架
    3. Spark計算框架 -- 做離線批處理、實時流式處理
    4. Strom計算框架 -- 做實時流式處理
  • 輔助類的工具
    1. Hive -- 數據倉庫工具:可以接受SQL,將SQL語句解析成MapReduce或者Spark程序處理
    2. Flume -- 數據採集
    3. Sqoop -- 數據遷移
    4. ElasticSearch -- 分佈式數據搜索引擎

5,2 核心技術

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)Mahout:Apache Mahout是個可擴展的機器學習和數據挖掘庫。

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

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