《大數據應用部署與調優(yōu)》電子教學課件_第1頁
《大數據應用部署與調優(yōu)》電子教學課件_第2頁
《大數據應用部署與調優(yōu)》電子教學課件_第3頁
《大數據應用部署與調優(yōu)》電子教學課件_第4頁
《大數據應用部署與調優(yōu)》電子教學課件_第5頁
已閱讀5頁,還剩432頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

大數據應用部署與調優(yōu)第一章大數據導論1.1大數據的概念1.2大數據的特征1.3大數據關鍵技術1.4大數據應用場景習題1.1大數據的概念第一章大數據導論1.1.1大數據來源互聯(lián)網時代,大數據的來源除了專業(yè)機構產生的數據,如CERN(歐洲核子研究組織)離子對撞機每秒產生高達40TB的數據,我們每個人也都是數據產生者,同時也是使用者。人類自從發(fā)明文字開始,就記錄著各種數據,早起數據保存的介質一般是紙張,而且難以分析、加工。隨著計算機與存儲技術的發(fā)展,以及萬物互聯(lián)的過程,數據爆發(fā)的趨勢勢不可擋。1、互聯(lián)網大數據。2、傳統(tǒng)行業(yè)大數據。3、音頻、視頻數據。4、移動設備的實時記錄與跟蹤。1.1大數據的概念第一章大數據導論互聯(lián)網大數據:每一分鐘,全世界會上傳超過5億張圖片,每分鐘就有20小時時長的視頻被分享。一分鐘內,微博、Twitter上新發(fā)的數據量超過10萬條。1.1.2大數據的分類1.1大數據的概念第一章大數據導論金融行業(yè)產生的數據集中在銀行資本的運作、股票、證券、期貨、貨幣等市場。傳統(tǒng)行業(yè)通常指一些固定的企業(yè),如電信、銀行、金融、醫(yī)藥、教育、電力等行業(yè)。銀行業(yè)產生的數據集中在用戶存款交易、風險貸款抵押、利率市場投放、業(yè)務管理等。教育行業(yè)產生的數據分兩類:一類是常規(guī)的結構化數據,如成績、學籍、就業(yè)率、出勤記錄等;另一類是非結構化數據,如圖片、視頻、教案、教學軟件、學習游戲等。電網業(yè)務數據大致可分為生產數據(如發(fā)電量、電壓穩(wěn)定性等數據)、運營數據(如交易電價、售電量、用電客戶等數據)和管理數據(如ERP、一體化平臺、協(xié)同辦公等數據)。1.1.2大數據的分類1.1大數據的概念第一章大數據導論音頻、視頻數據是隱藏著大數據的核心。這些數據結構松散,數量巨大,但很難從中挖掘有意義的結論和有用的信息。是我們最容易忽略的數據來源,而這些恰恰才是真正大數據的來源,分析、挖掘這些資訊可能引發(fā)更大的資源與信息。1.1.2大數據的分類1.1大數據的概念第一章大數據導論實時跟蹤器運用在航天飛機、氣象監(jiān)測、汽車等領域?,F在移動可穿戴設備的廣泛應用,企業(yè)可以從這些數據中提取非常有用的數據從而獲得價值。1.1.2大數據的分類1.1大數據的概念第一章大數據導論1.1.2大數據的分類根據數據類型,按特定方向分析大數據的特征會給我們帶來一定的幫助。我們站在不同的角度對大數據進行分類,大體分為以下幾種劃分形態(tài)。1、按數據來源劃分。2、按數據形式劃分。1.1大數據的概念第一章大數據導論傳統(tǒng)企業(yè)數據機器和傳感器數據社交數據傳統(tǒng)企業(yè)數據(TraditionalEnterpriseData):包括MIS系統(tǒng)的數據、傳統(tǒng)的ERP數據、庫存數據以及財務賬目數據等。機器和傳感器數據(Machine-generated/sensorData):包括呼叫記錄(CallDetailRecords)、智能儀表、工業(yè)設備傳感器、設備日志、交易數據等。

社交數據(SocialData):包括用戶行為記錄、反饋數據等,如微信,QQ,Twitter、Facebook這樣的社交媒體平臺。1.1.2大數據的分類1.1大數據的概念第一章大數據導論結構化數據半結構化數據非結構化數據結構化數據由二維表結構來邏輯表達和實現的數據,嚴格地遵循數據格式與長度規(guī)范,主要通過關系型數據庫進行存儲和管理能夠用數據或統(tǒng)一的結構加以表示。半結構化數據它并不符合關系型數據庫或其他數據表的形式關聯(lián)起來的數據模型結構,但包含相關標記,用來分隔語義元素以及對記錄和字段進行分層。JSON格式的數據就屬于半結構化數據。非結構化數據,與結構化數據相對的,是不適合以二維表結構來表現的數據,包括各種格式的辦公文檔、XML、HTML、各類報表、圖片和咅頻、視頻信息等。1.1.2大數據的分類第一章大數據導論1.1大數據的概念1.2大數據的特征1.3大數據關鍵技術1.4大數據應用場景習題1.2大數據的特征第一章大數據導論4V特征數量大(Volume)從2013年至2020年,人類的數據規(guī)模將擴大50倍,且每年18個月翻一番。多樣性(Variety)數據類型繁多,隨著傳感器、智能設備以及社交協(xié)作技術的飛速發(fā)展,數據也變的更加復雜。速度快(Velocity)在數據處理速度方面,有一個著名的“1秒定律”,即要在秒級時間范圍內給出分析結果,超出這個時間,數據就失去價值。

價值高(Value)追求高質量的數據。大數據時代數據的價值就像大浪淘金。第一章大數據導論1.1大數據的概念1.2大數據的特征1.3大數據關鍵技術1.4大數據應用場景習題1.3大數據關鍵技術第一章大數據導論1.3.1大數據存儲技術010203第一種是采用MPP架構的新型數據庫集群,重點面向行業(yè)大數據,采用SharedNothing架構,通過列存儲、粗粒度索引等多項大數據處理技術,再結合MPP架構高效的分布式計算模式,完成對分析類應用的支撐。第二種是基于Hadoop的技術擴展和封裝,圍繞Hadoop衍生出相關的大數據技術,應對傳統(tǒng)關系型數據庫較難處理的數據和場景,例如針對非結構化數據的存儲和計算等,充分利用Hadoop開源的優(yōu)勢,伴隨相關技術的不斷進步,其應用場景也將逐步擴大,目前典型的應用場景就是通過擴展和封裝Hadoop來實現對互聯(lián)網大數據存儲、分析的支撐。

第三種是大數據一體機,這是一種專為大數據的分析處理而設計的軟、硬件結合的產品,由一組集成的服務器、存儲設備、操作系統(tǒng)、數據庫管理系統(tǒng)以及為數據查詢、處理、分析用途而特別預先安裝及優(yōu)化的軟件組成,高性能大數據一體機具有良好的穩(wěn)定性和縱向擴展性。1.3大數據關鍵技術第一章大數據導論1.3.2并行計算技術所謂并行計算(ParallelComputing)是指同時使用多種計算資源解決計算問題的過程,是提高計算機系統(tǒng)計算速度和處理能力的一種有效手段。其基本思想是采用多個處理器來協(xié)同解決問題,即將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來并行計算。1.3大數據關鍵技術第一章大數據導論1.3.3數據分析技術由于大數據復雜多變的特殊屬性,目前還沒有公認的大數據分析方法體系,不同的學者對大數據分析方法的看法各異。總結起來,包括3種方法體系,如下:面向數據視角的大數據分析方法。面向流程視角的大數據分析方法。面向信息技術視角的大數據分析方法。1.3大數據關鍵技術第一章大數據導論1.3.4數據可視化技術數據可視化主要旨在借助于圖形化手段,清晰有效地傳達與溝通信息。數據可視化技術包含以下幾個基本概念。數據空間數據可視化數據分析數據開發(fā)是由n維屬性和m個元素組成的數據集所構成的多維信息空間。是指利用一定的算法和工具對數據進行定量的推演和計算。

指對多維數據進行切片、塊、旋轉等動作剖析數據,從而能多角度多側面觀察數據。是指將大型數據集中的數據以圖形圖像形式表示,并利用數據分析和開發(fā)工具發(fā)現其中未知信息的處理過程。1.3大數據關鍵技術第一章大數據導論1.3.5數據挖掘技術數據挖掘就是從大量的、不完全的、有噪聲的、模糊的、隨機的實際應用數據中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程。第一章大數據導論1.1大數據的概念1.2大數據的特征1.3大數據關鍵技術習題1.4大數據應用場景1.4大數據應用場景第一章大數據導論電商行業(yè)大數據應用工業(yè)大數據應用金融行業(yè)大數據應用醫(yī)療行業(yè)大數據應用教育行業(yè)大數據應用農業(yè)大數據應用環(huán)境大數據應用智慧城市大數據應用第一章大數據導論1.1大數據的概念1.2大數據的特征1.3大數據關鍵技術習題1.4大數據應用場景1.什么是大數據?2.大數據的主要特征有哪些?3.大數據有哪些來源4.數據按其形式劃分有哪幾種?習題:第二章基礎云架構2.1云計算簡介2.2云計算與大數據的關系2.3私有云平臺OpenStack2.4公有云平臺阿里云習題2.1云計算簡介第二章基礎云架構云計算是一種商業(yè)計算模型。它將計算任務分布在大量計算機構成的資源池上,使各種應用系統(tǒng)能夠根據需要獲取計算力、存儲空間和信息服務。短定義是:“云計算是通過網絡按需提供可動態(tài)伸縮的廉價計算服務”。2.1.1云計算的概念2.1云計算簡介第二章基礎云架構云計算按照服務類型大致可以分為三類:基礎設施即服務(IaaS)、平臺即服務(PaaS)和軟件即服務(SaaS)。2.1.1云計算的概念2.1云計算簡介第二章基礎云架構由于云計算是多種技術混合演進的結果,其成熟度較高,又有大公司推動,發(fā)展極為迅速,谷歌、亞馬遜、微軟和阿里等大公司是云計算的先行者。2.1.2云計算發(fā)展現狀2.1云計算簡介第二章基礎云架構虛擬化機制,它通過對物理資源抽象、映射和展現,將實際物理資源隱藏在其后,為上層系統(tǒng)提供統(tǒng)一的設備使用形式。2.1.3云計算實現機制01海量數據分布式存儲管理機制,云計算系統(tǒng)由大量服務器組成,同時為大量用戶服務,為保證高可用、高可靠和經濟性,云計算采用分布式存儲的方式來存儲數據。020304分布式計算機制,所謂分布式計算就是把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,交給許多相互獨立的計算機協(xié)同處理,實現云計算。最后是Web2.0界面交互機制,web2.0也是目前互聯(lián)網的熱門詞匯之一,它相對于傳統(tǒng)Web1.0,基于XML、A2JAX等技術,更注重用戶的交互作用。2.1云計算簡介第二章基礎云架構2.1.4云計算部署模型私有云(PrivateCloud)是為一個客戶單獨使用而構建的,因而提供對數據、安全性和服務質量的最有效控制。私有云擁有基礎設施,并可以控制在此基礎設施上部署應用程序的方式。即可以部署在企業(yè)數據中心的防火墻內,也可以將它們部署在一個安全的物理服務器托管場景,私有云的核心屬性是專有資源。私有云服務提供了計算、存儲和網絡的資源服務,包括硬件虛擬化、集中管理、彈性資源調度等。2.1云計算簡介第二章基礎云架構2.1.4云計算部署模型公有云(PublicCloud)通常指第三方提供商為用戶提供的能夠使用的云,一般可通過Internet訪問使用。公有云有許多實例,可在整個開放的公有網絡中提供服務,其最大意義是能夠以低廉的價格,提供有吸引力的服務給最終用戶,創(chuàng)造新的業(yè)務價值。作為一個支撐平臺,能夠整合上游的服務(如增值業(yè)務,廣告)提供者和下游最終用戶,打造新的價值鏈和生態(tài)系統(tǒng)。2.1云計算簡介第二章基礎云架構2.1.4云計算部署模型混合云(HybridCloud)是公有云和私有云兩種服務方式的結合體。由于安全原因,并非企業(yè)都能在公有云上部署服務,大部分都是將應用部署在混合云模式上?;旌显茷閺椥孕枨筇峁┝艘粋€很好的基礎,比如災難恢復。即私有云把公有云作為災難轉移的平臺,并在需要的時候去使用它。混合云的理念是,使用公有云作為一個選擇性的平臺,同時選擇其他的公有云作為災難轉移平臺,以達到數據安全的保護。第二章基礎云架構2.1云計算簡介2.2云計算與大數據的關系2.3私有云平臺OpenStack2.4公有云平臺阿里云習題2.2云計算與大數據的關系第二章基礎云架構2.2.1云計算與大數據的關系

云計算是技術發(fā)展的趨勢,技術的發(fā)展帶動了電子信息社會的快速發(fā)展。這就導致了大數據現象的出現,而大數據的快速增長是電子信息社會發(fā)展可能面臨的問題。云計算與大數據可以結合在一起,大數據需要使用到云中巨大的計算和存儲資源。因此,云計算通過為大數據應用提供計算能力,刺激和加速云計算的發(fā)展,云計算與大數據相輔相成。云計算中的分布式存儲技術有助于管理大數據。2.2云計算與大數據的關系第二章基礎云架構節(jié)省時間和大量金錢提高效率和靈活性安全和隱患購買和管理一個大到足以進行有效的大數據分析的數據中心可能非常昂貴,更不用說與維護相關的無數技術難題了本地服務器的安裝和執(zhí)行可能需要幾周的時間,然后考慮一下存儲和數據管理技術的迅速過時,這些技術需要不斷更新,從而導致其他低效率。在大數據的收集和分析方面,安全和隱私是最微妙和棘手的問題。更強大的云計算服務提供商每天都在解決這些問題,對個別公司給予無與倫比的關注。2.2.2云計算與大數據相結合的優(yōu)勢第二章基礎云架構2.1云計算簡介2.3私有云平臺OpenStack2.2云計算與大數據的關系2.4公有云平臺阿里云習題2.3私有云OpenStack第二章基礎云架構2.3.1

OpenStack背景介紹OpenStack既是一個社區(qū),也是一個項目和一個開源軟件,提供了一個部署云的操作平臺或工具集。用OpenStack易于構建虛擬計算或存儲服務的云,既可以為公有云、私有云,也可以為大云、小云提供可擴展、靈活的云計算。2.3私有云OpenStack第二章基礎云架構OpenStack的主要服務計算服務Nova網絡管理服務Neutron身份認證服務Keystone存儲管理服務Cinder對象存儲存儲Swift鏡像服務Glance儀表盤Horizon第二章基礎云架構2.1云計算簡介2.2云計算與大數據的關系2.4公有云平臺阿里云習題2.3私有云平臺OpenStack2.4公有云平臺阿里云第二章基礎云架構2.4.1阿里云簡介阿里云在全球18個地域開放了42個可用區(qū),為全球數十億用戶提供可靠的云計算支持。2017年1月阿里云成為奧運會全球指定云服務商,同年8月阿里巴巴財報數據顯示,阿里云付費用戶超過100萬。阿里云為全球客戶部署200多個飛天數據中心,通過底層統(tǒng)一的飛天操作系統(tǒng),為客戶提供全球獨有的混合云體驗。其中,飛天(Apsara)是誕生于2009年2月,由阿里云自主研發(fā)、服務全球的超大規(guī)模通用計算操作系統(tǒng),目前為全球200多個國家和地區(qū)的創(chuàng)新創(chuàng)業(yè)企業(yè)、政府、機構等提供服務。它可以將遍布全球的百萬級服務器連成一臺超級計算機,以在線公共服務的方式為社會提供計算能力,從PC互聯(lián)網到移動互聯(lián)網到萬物互聯(lián)網,成為世界新的基礎設施。2.4公有云平臺阿里云第二章基礎云架構阿里云的核心系統(tǒng)是底層的大規(guī)模分布式計算系統(tǒng)(飛天)、分布式文件系統(tǒng)以及資源管理和任務調度。2.4.1阿里云簡介2.4公有云平臺阿里云第二章基礎云架構彈性計算服務ECS開放式數據處理服務ODPS開式結構化數據服務OTS對象存儲服務OOS關系型數據庫RDS2.4.1阿里云簡介2.4公有云平臺阿里云第二章基礎云架構2.4.2計算服務ECS云服務器ECS(ElasticComputeService)是阿里云提供的性能卓越、穩(wěn)定可靠、彈性擴展的IaaS(InfrastructureasaService)級別云計算服務。云服務器ECS免去了客戶采購IT硬件的前期準備,讓客戶像使用水、電、天然氣等公共資源一樣便捷、高效地使用服務器,實現計算資源的即開即用和彈性伸縮。實例鏡像塊存儲快照安全ECS主要組件:2.4公有云平臺阿里云第二章基礎云架構2.4.3存儲服務阿里云提供針對各種存儲資源(塊、文件和對象)的低成本、高可靠、高可用的存儲服務,涵蓋數據備份、歸檔、容災等場景。本文介紹阿里云各類存儲服務及特性的適用場景、性能、安全、接口和費用模型等,幫助您選擇最適合您業(yè)務場景和需求的云存儲服務。2.4公有云平臺阿里云第二章基礎云架構對象存儲OOS塊存儲文件存儲NAS文件存儲CPFS表格存儲云存儲網關文件存儲HDFS2.4.3存儲服務2.4公有云平臺阿里云第二章基礎云架構142563存儲類型(StorageClass)存儲空間(Bucket)對象(Object)訪問密鑰(Accesskey)訪問域名(Endpoint)地域(Region)2.4.3存儲服務2.4公有云平臺阿里云第二章基礎云架構2.4.4網絡服務VPC專有網絡VPC全稱VirtualPrivateCloud,是用戶基于阿里云創(chuàng)建的自定義私有網絡,不同的專有網絡之間二層邏輯隔離,用戶可以在自己創(chuàng)建的專有網絡內創(chuàng)建和管理云產品實例。每個VPC都由一個路由器、至少一個私網網段和至少一個交換機組成,如下圖所示。第二章基礎云架構2.1云計算簡介2.2云計算與大數據的關系2.3私有云平臺OpenStack習題2.3公有云平臺阿里云1.云計算有哪些特點?2.云計算技術體系結構可以分為哪幾層?3.云計算按照部署模型可以分為哪幾類?4.OpenStack是什么?5.OpenStack有哪些核心服務?各服務的功能是什么?6.簡單列舉目前市場主流的公有云平臺。7.概述阿里云的體系結構及核心服務。習題:第三章大數據業(yè)務流程3.1數據采集3.2數據預處理ETL3.3大數據存儲3.5大數據應用場景3.4大數據處理習題3.1數據采集第三章大數據業(yè)務流程3.1.1數據采集的概念數據采集(DAQ)又稱數據獲取,是大數據生命周期中的第一個環(huán)節(jié),通過RFID射頻數據、傳感器數據、社交網絡數據、移動互聯(lián)網數據等方式獲得各種類型的結構化、半結構化及非結構化的海量數據。3.1

數據采集第三章大數據業(yè)務流程3.1.1數據采集研究的分類智能感知層智能感知層包括數據傳感體系、網絡通信體系、傳感適配體系、智能識別體系及軟硬件資源接入系統(tǒng),實現對結構化、半結構化、非結構化的海量數據的智能化識別、定位、跟蹤、接入、傳輸、信號轉換、監(jiān)控、初步處理和管理等?;A支撐層基礎支撐層提供大數據服務平臺所需的虛擬服務器,結構化、半結構化及非結構化數據的數據庫及物聯(lián)網絡資源等基礎支撐環(huán)境。3.1

數據采集第三章大數據業(yè)務流程3.1.1“全而細”的采集準則“全”是指各類數據都要采集到?!凹殹眲t是說在采集階段要盡可能的采集到每一個數據。3.1

數據采集第三章大數據業(yè)務流程3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程Event在Flume中表示數據傳輸的一個最小單位。參照右圖可以看得出Agent就是Flume的一個部署實例,一個完整的Agent中包含了三個組件Source、Channel和Sink,Source是指數據的來源和方式,Channel是一個數據的緩沖池,Sink定義了數據輸出的方式和目的地。3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程1、Source接收事件,交給其Channel處理器處理事件。2、處理器通過攔截器Interceptor,對事件一些處理,比如壓縮解碼,正則攔截,時間戳攔截,分類等。3、經過攔截器處理過的事件再傳給Channel選擇器,將事件寫入相應的Channel。4、最后由Sink處理器處理各個Channel的事件。3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程高穩(wěn)定性:通過O(1)的磁盤數據結構提供消息的持久化。高吞吐量:即便是非常普通的硬件Kafka也可以支持每秒鐘數百萬的消息。支持通過Kafka服務器和消費機集群對消息進行劃分。支持Hadoop并行數據加載。3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程Producer:Producer的任務是向Broker發(fā)送數據。Broker:Broker采取許多不同的策略提高數據處理的效率。Consumer:Consumer可以將日志信息加載到中央存儲系統(tǒng)中。3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程生產者定期向主題發(fā)送消息消費者會定期請求Kafka需要新的消息添加標題消費者訂閱特定主題隊列消息/用戶組的工作流3.1.2數據采集的工具3.1

數據采集第三章大數據業(yè)務流程3.1.3數據采集的方法系統(tǒng)日志采集方法網絡數據采集方法數據庫采集3.1

數據采集第三章大數據業(yè)務流程“網絡數據采集”是利用互聯(lián)網搜索引擎技術對數據進行針對性、行業(yè)性、精準性的抓取,并按照一定規(guī)則和篩選標準將數據進行歸類,形成數據庫文件的一個過程。3.1.3數據采集的方法3.1

數據采集第三章大數據業(yè)務流程企業(yè)會使用傳統(tǒng)的關系型數據庫MySQL和Oracle等來存儲數據。這些數據庫中存儲的海量數據,相對來說結構化更強,也是大數據的主要來源之一。3.1.3數據采集的方法3.1

數據采集第三章大數據業(yè)務流程采集方法支持異構數據庫之間的實時數據同步和復制,基于的理論是對各種數據庫的Log日志文件進行分析,然后進行復制。3.1.3數據采集的方法第三章大數據業(yè)務流程3.1數據采集3.2數據預處理ETL3.3大數據存儲3.5大數據應用場景3.4大數據處理習題3.2

數據預處理ETL第三章大數據業(yè)務流程3.2.1數據清洗數據清洗是發(fā)現并糾正數據文件中可識別的錯誤的最后一道程序,包括對數據一致性的檢查、無效值和缺失值得處理。3.2

數據預處理ETL第三章大數據業(yè)務流程3.2.1數據清洗2.錯誤數據這一類錯誤產生的原因往往是業(yè)務系統(tǒng)不夠健全,在接收輸入信息后沒有進行判斷直接將數據寫入后臺數據庫導致的。1.殘缺數據這一類數據主要是因為部分信息缺失,如公司的名稱、客戶的區(qū)域信息等數據。3.重復數據這一類數據多出現在維護表中,是將重復數據記錄的所有字段導出來,讓客戶確認并整理。3.2

數據預處理ETL第三章大數據業(yè)務流程3.2.1數據清洗01缺失的值必須要用手工來進行清理。當然,某些缺失值可以從它本身數據源或其他數據源中推導出來,可以用平均值、最大值或更為復雜的概率估計代替缺失的值,從而達到清理的目的。02用統(tǒng)計分析的方法識別錯誤值或異常值,如數據偏差、識別不遵守分布的值,也可以用簡單規(guī)則庫檢查數據值,或使用不同屬性間的約束來檢測和清理數據。03數據庫中屬性值相同的情況被認定為是重復記錄。通過判斷記錄間的屬性值是否相同來檢測記錄是否相等,相等的記錄合并為一條記錄。填充缺失值修改錯誤值消除重復記錄3.2

數據預處理ETL第三章大數據業(yè)務流程3.2.2數據集成概念將不同應用系統(tǒng)、不同數據形式,在原應用系統(tǒng)不做任何改變的條件下,進行數據采集、轉換好儲存的數據整合過程。目的解決多重數據儲存或合并時所產生的數據不一致、數據重復或冗余的問題,以提高后續(xù)數據分析的精確度和速度。3.2

數據預處理ETL第三章大數據業(yè)務流程異構性集成的數據模型異構,其主要表現在數據語義及數據源的使用環(huán)境等。分布性數據源是異地分布的,依賴網絡進行數據的傳輸,網絡在傳輸過程中對網絡質量和安全性是個挑戰(zhàn)。自治性數據源可以在不通知集成系統(tǒng)的前提下改變自身的結構和數據。3.2.2數據集成3.2

數據預處理ETL第三章大數據業(yè)務流程3.2.3數據轉換概念數據轉換(DataTransfer)時采用線性或非線性的數學變換方法將多維數據壓縮成較少維的數據,消除它們在時間、空間、屬性及精度等特征表現方面的差異。實際上就是將數據從一種表示形式變?yōu)榱硪环N表現形式的過程。

原因因為每一個軟件對與之對應的數據庫的架構與數據的存儲形式是不一樣的,因此就需要數據轉換。由于數據量在不斷地增加,原來數據構架的不合理,不能滿足各方面的要求,問題日漸暴露,也會產生數據轉換。3.2

數據預處理ETL第三章大數據業(yè)務流程概念數據歸約是指在盡可能保持數據原貌的前提下,最大限度地精簡數據量保持數據的原始狀態(tài)。3.2.4數據規(guī)約3.2

數據預處理ETL第三章大數據業(yè)務流程特征歸約特征歸約是將不重要的或不相關的特征從原有特征中刪除,或者通過對特征進行重組和比較來減少個數。樣本歸約樣本歸約就是從數據集中選出一個有代表性的子集作為樣本。特征值歸約特征值歸約是特征值離散化技術,它將連續(xù)型特征的值離散化,使之成為少量的區(qū)間,每個區(qū)間映射到一個離散符號。3.2.4數據規(guī)約3.2

數據預處理ETL第三章大數據業(yè)務流程對數據的描述,特征的挑選,歸約或轉換決定了數據挖掘方案的質量。在實踐中,特征的數量可達到數百萬計,如果我們在對數據進行分析的時候,只需要上白條樣本,就需要進行維歸約,以挖掘出可靠的模型;另外,高維度引起的數據超負,會使一些數據挖掘算法不實用,唯一的方法也就是進行維歸約。在進行數據挖掘準備時進行標準數據歸約操作,計算時間、預測/描述精度和數據挖掘模型的描述將讓我們清楚地知道這些操作中將得到和失去的信息。3.2.4數據規(guī)約3.2

數據預處理ETL第三章大數據業(yè)務流程ETL(Extract-Transform-Load)是一種數據倉庫技術,即數據抽取(Extract)、轉換(Transform)、裝載(Load)的過程,它的本質是數據流動的過程,使不同異構數據源流向統(tǒng)一的目標數據。ETL負責將關系數據、平面數據文件等分布式、異構數據源的數據提取到臨時中間層后進行清洗、轉換、集成,最后加載到數據倉庫或數據集中,成為在線分析處理和數據挖掘的基礎,是構建數據倉庫的重要環(huán)節(jié)。3.2.5常用ETL工具3.2

數據預處理ETL第三章大數據業(yè)務流程3.2.5常用ETL工具3.2

數據預處理ETL第三章大數據業(yè)務流程(1)可以分擔數據庫系統(tǒng)的負載。(2)相對于ELT架構可以實現更為復雜的數據轉化邏輯。(3)采用單獨的硬件服務器。(4)與底層的數據庫數據存儲無關。3.2.5常用ETL工具3.2

數據預處理ETL第三章大數據業(yè)務流程3.2.5常用ETL工具3.2

數據預處理ETL第三章大數據業(yè)務流程B

Talend可同步數據倉庫的數據到數據庫中,并且提供基于EclipseRCP的圖形操作界面。C

Scriptella是一個開源并采用Java開發(fā)的ETL(抽取-轉換-加載)工具和一個腳本執(zhí)行工具。Scriptella可以在單個的ETL文件中與多個數據源運行。AKettle是一款國外開源的ETL工具,純Java編寫,并且無須安裝,數據抽取高效穩(wěn)定。3.2.5常用ETL工具第三章大數據業(yè)務流程3.1數據采集3.2數據預處理ETL3.3大數據存儲3.5大數據應用場景3.4大數據處理習題3.3

大數據存儲第三章大數據業(yè)務流程面對大數據的爆炸式增長,且具有大數據量、異構型、高時效性的需求時,數據的存儲不僅僅有存儲容量的壓力,還給系統(tǒng)的存儲性能、數據管理乃至大數據的應用方面帶來了挑戰(zhàn)。為了應對大數據對存儲系統(tǒng)的挑戰(zhàn),數據存儲系統(tǒng)能力的提升主要有以下3個方面:1提升系統(tǒng)存儲容量2提升系統(tǒng)的吞吐量3系統(tǒng)的容錯性3.3.1大數據存儲困境3.3

大數據存儲第三章大數據業(yè)務流程DASNASsAN設備直連的模式DAS直連式存儲通過高速的網絡交換機連接存儲設備和服務器主機NAS網絡接入存儲提供格式統(tǒng)一的、數據塊級訪問能力的一種專用局域網絡SAN存儲區(qū)域網絡云通過分布式集群及服務器虛擬化等技術將海量設備構建成共享存儲資源池,并提供服務云存儲3.3.1大數據存儲困境3.3

大數據存儲第三章大數據業(yè)務流程將一些基礎的數據操作功能(如檢索、更新等)在單獨的專用硬件上實現,而將通用計算資源和I/O通道釋放出來用于其他復雜處理,從而實現高效的數據訪問。逐步實現了用于支持大規(guī)模高速數據庫訪問的專用計算機和硬件系統(tǒng),即數據庫機(DatabaseMachine)。3.3.1大數據存儲困境3.3

大數據存儲第三章大數據業(yè)務流程基于集群的數據容錯在多個節(jié)點中,對數據進冗余儲存,從而確保單單個節(jié)點故障不會影響到系統(tǒng)的正常運行磁盤雙工技術采用了兩個獨立的磁盤控制器分別控制兩個磁盤磁盤鏡像和磁盤雙工基于RAID的磁盤容錯通過多塊硬盤組成硬盤陣列,并通過分散數據存儲的設計,使數據存儲容錯性變高。3.3.1大數據存儲困境3.3

大數據存儲第三章大數據業(yè)務流程將虛擬資源請求均勻地分配到節(jié)點上,然后進行節(jié)點內部設備級別的資源映射存儲資源管理方法將有限數量的資源按需求動態(tài)共享給多個用戶使用支持多用戶使用和環(huán)境隔離的資源機制通過HDFS建立在大型集群分布式的文件系統(tǒng)在通過Hive和HBase實現數據的查詢和處理基于Hadoop的大數據存儲機制3.3.1大數據存儲困境3.3

大數據存儲第三章大數據業(yè)務流程結構化數據由二維表結構來邏輯表達和實現的數據,嚴格地遵循數據格式與長度規(guī)范,主要通過關系型數據庫進行存儲和管理。非結構化數據數據結構不規(guī)則或不完整,沒有預定義的數據模型,不方便用數據庫二維邏輯表來表現的數據。半結構化數據是結構化數據的一種形式,雖不符合關系型數據庫的數據模型結構,但具有一定的結構性,相比結構化數據相比更靈活。3.3.2大數據存儲中的數據結構3.3

大數據存儲第三章大數據業(yè)務流程結構化數據非結構化數據半結構化數據主鍵/ID課程/NAME類型/TYPE1Oracle關系型數據庫2Hadoop分布式架構3Java編程語言3.3.2大數據存儲中的數據結構分布式系統(tǒng)是用多臺計算機來解決單個計算機無法解決的計算、存儲等問題。分布式系統(tǒng)是獨立計算機的集合,這些計算機對用戶來說就像一個單獨的相關系統(tǒng)。3.3

大數據存儲第三章大數據業(yè)務流程3.3.3分布式系統(tǒng)3.3

大數據存儲第三章大數據業(yè)務流程分布式系統(tǒng)中常見的數據分布方式有以下四種方式。0102030404一致性哈希通過哈希函數來計算數據或數據特征的哈希值,使它的輸出值成為封閉的環(huán)。03按數據量分布根據按數據量分布數據。02按數據范圍分布根據特征值的范圍將數據劃分為不同的區(qū)間,使集群中的每個服務器(組)可以在不同的區(qū)間處理數據。01哈希方式根據數據的某個特征計算出哈希值并與集群中的服務器建立映射關系,從而將數據分布到不同的機器中。3.3.3分布式系統(tǒng)3.3

大數據存儲第三章大數據業(yè)務流程某個一致性哈希函數值域為[0,10),系統(tǒng)有3個節(jié)點A、B、C,這3個節(jié)點處于的一致性哈希的位置分別為1、4、9,則節(jié)點A負責的值域范圍為[1,4),節(jié)點B負責的范圍為[4,9),節(jié)點C負責的范圍為[9,10)和[0,1)。若某數據的哈希值為3,則該數據應由節(jié)點A負責處理。假設需要在左圖中增加一個新節(jié)點D,為D分配的哈希位置為3,則首先將節(jié)點A中[3,4)的數據從節(jié)點A復制到節(jié)點D,然后加入節(jié)點D即可。3.3.3分布式系統(tǒng)3.3

大數據存儲第三章大數據業(yè)務流程3.3.3分布式系統(tǒng)3.3

大數據存儲第三章大數據業(yè)務流程鍵值存儲臨時性永久性兩者兼具01面向文檔的數據庫不定義表結構可以使用復雜的查詢條件02面向列的數據庫善于讀取列中的數據高擴展性033.3.4NoSQL數據庫3.3

大數據存儲第三章大數據業(yè)務流程MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。MongoDB所謂的“面向集合”(Collection-Oriented)存儲,意思是數據被分組存儲在數據集中。每個集合在數據庫中都有一個唯一的標識名,并且可以包含無限數目的文檔。集合的概念類似關系型數據庫(RDBMS)里的表(table),不同的是它不需要定義任何模式(schema)。集合中的文檔被存儲為鍵-值對的形式。鍵用于唯一標識,而值則可以是各種復雜的文件類型。我們稱這種存儲形式為BSON。3.3.4NoSQL數據庫3.3

大數據存儲第三章大數據業(yè)務流程事務支持高可用高性能靈活模型可擴展索引支持支持單文檔事務JSON格式存儲最接近真實對象模型高可用復制集滿足數據高可靠、服務高可用的需求,運維簡單,故障自動切換可擴展分片集群,海量數據存儲,服務能力水平擴展mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory等多引擎支持滿足各種場景需求地理位置索引可用于構建各種O2O應用、文本索引解決搜索的需求、TTL索引解決歷史數據自動過期的需求文件存儲數據分析Gridfs解決文件存儲的需求mapreduce解決數據分析場景需求,用戶可以自己寫查詢語句或腳本,將請求都分發(fā)到MongoDB上完成3.3.4NoSQL數據庫3.3

大數據存儲第三章大數據業(yè)務流程HBase是HadoopDatabase的簡稱。HBase是分布式、面向列的開源數據庫(其實準確的說是面向列族)。HDFS為HBase提供可靠的底層數據存儲服務。MapReduce為HBase提供高性能的計算能力。Zookeeper為HBase提供穩(wěn)定服務和Failover機制。因此HBase是一個通過大量廉價的機器解決海量數據的高速存儲和讀取的分布式數據庫解決方案。3.3.4NoSQL數據庫3.3

大數據存儲第三章大數據業(yè)務流程命名空間是對表的邏輯分組,不同的命名空間類似于數據庫中的不同的Database數據庫。行由一個RowKey和多個列族組成,一個行有一個RowKey,用來唯一標示。每一行由若干列族組成,每個列族下可包含多個列。列族是列共性的一些體現。物理上,同一列族的數據存儲在一起的。行由一個RowKey和多個列族組成,一個行有一個RowKey,用來唯一標示。列由列族和列限定符唯一指定,像如上的name、age即是ImployeeBasicInfoCLF列族的列限定符。單元格由RowKey、列族、列限定符唯一定位,單元格之中存放一個值(Value)和一個版本號。命名空間行列族表列限定符單元格3.3.4NoSQL數據庫3.3

大數據存儲第三章大數據業(yè)務流程01海量存儲HBase適合存儲PB級別的海量數據,在PB級別的數據場景下,能在幾十到百毫秒內返回數據。正式因為HBase良好的擴展性,才為海量數據的存儲提供了便利。02HBase是根據列族來存儲數據的。列族下面可以有非常多的列,列族在創(chuàng)建表的時候就必須指定。03極易擴展HBase的擴展性主要體現在兩個方面,一個是基于上層處理能力(RegionServer)的擴展,一個是基于存儲的擴展(HDFS)。04高并發(fā),在并發(fā)的情況下,HBase的單個IO延遲下降并不多。能獲得高并發(fā)、低延遲的服務。05稀疏稀疏主要是針對HBase列的靈活性,在列族中,你可以指定任意多的列,在列數據為空的情況下,是不會占用存儲空間的。列式存儲高并發(fā)3.3.4NoSQL數據庫3.3

大數據存儲第三章大數據業(yè)務流程什么是云存儲?云存儲是指通過網絡技術、分布式文件系統(tǒng)、服務器虛擬化、集群應用等技術將網絡中海量的異構存儲設備構成可彈性擴張、低成本、低能耗的共享存儲資源池,并提供數據存儲訪問、處理功能的系統(tǒng)服務。3.3.5云存儲3.3

大數據存儲第三章大數據業(yè)務流程公共云供應商可以低成本地提供大量的文件存儲,并可以保持每個客戶的存儲、應用都是獨立私有的。國內比較突出的代表有百度云盤、華為網盤、騰訊微云等。內部云內部云存儲跟私有云存儲比較類似,唯一的不同點在于它在企業(yè)的防火墻內部。目前可提供私有云的平臺主要有Eucalyptus、3ACloud、聯(lián)想網盤等?;旌显苹旌显拼鎯Π压苍?、內部云或私有云結合在一起。主要用于按客戶要求的訪問,從公共云上劃出一部分容量配置一種內部云或私有云。3.3.5云存儲3.3

大數據存儲第三章大數據業(yè)務流程安全性低成本大容量存儲可伸縮性高可靠性高可用性服務模式對象存儲文件存儲塊存儲3.3.5云存儲第三章大數據業(yè)務流程3.1數據采集3.2數據預處理ETL3.3大數據存儲3.5大數據應用場景3.4大數據處理習題3.4

大數據處理第三章大數據業(yè)務流程根據對處理數據的形式和得到結果的時效性分類,數據處理框架可分為批處理系統(tǒng)和流處理系統(tǒng)以及混合處理系統(tǒng)三類。流處理系統(tǒng)會對隨時進入系統(tǒng)的數據進行計算。流處理方式是對通過系統(tǒng)傳輸的每個數據項執(zhí)行操作。批處理框架批處理是一種大規(guī)模數據集處理的方法。批處理的過程包括1.劃分任務為較小的任務2.在集群中的每臺設備上進行計算3.根據中間結果計算并組合出最終結果。流處理框架框架可以同時進行批處理和流處理?;旌咸幚砜蚣?.4.1大數據處理框架3.4

大數據處理第三章大數據業(yè)務流程MapReduce是一種分布式計算模型,主要用于搜索領域,可以用來解決海量數據的計算問題。MapReduce的核心,就是對一個需要計算的任務進行拆分,然后并行處理。MapReduce合并了兩種經典函數:映射(Mapping)對集合里的每個目標應用同一個操作?;啔w約(Reducing)遍歷集合中的元素來返回一個綜合的結果。3.4.1大數據處理框架3.4

大數據處理第三章大數據業(yè)務流程Client向JobTracker提交一個任務。JobTracker將任務分配到一個或者多個TaskTracker進行處理。不同的TaskTracker上,有的運行的是Map階段的任務,有的運行是Reduce階段的任務。對于map階段,首先對輸入的內容進行分割(InputSplit),不同Mapper任務負責各自的分割后的內容的映射。對于Reduce階段,接受多個Mapper的輸出,進行歸一后,得到最終的輸出。3.4.1大數據處理框架3.4

大數據處理第三章大數據業(yè)務流程MRAppMaster將M分成許多小份(數據切片,MapReduce中稱為:FileSplit),然后每一個數據切片指派給一個MapTask來處理;MapReduce處理完后,將自己所負責的數據切片的處理結果傳給ReduceTask;ReduceTask統(tǒng)計匯總各個MAPTASK傳過來的結果,得到最后任務的結果。當然這是最簡單的描述,實際上MRAppMaster的任務分配過程非常復雜,會考慮任務時間、任務是否出錯、網絡通訊負擔等諸多問題,這里就不作詳述。3.4.1大數據處理框架3.4

大數據處理第三章大數據業(yè)務流程舉例來說,統(tǒng)計一個local.log日志的行數據詞頻。文檔數量規(guī)模很大,有300萬行數據,英文單詞的總數可能只有2000(常用的)。于是:使用300臺PC服務器運行MapTask,100臺PC服務器運行ReduceTask。每個MapTask做100萬行的詞頻統(tǒng)計,完成之后將中間結果分發(fā)給100個ReduceTask做匯總。3.4.1大數據處理框架3.4

大數據處理第三章大數據業(yè)務流程HDFS為分布式計算存儲提供了底層支持。HDFS采用master/slave架構。一個HDFS集群包含一個單獨的NameNode和多個DataNode。Namenode管理文件系統(tǒng)的元數據,而Datanode存儲了實際的數據。NameNodeNameNode作為master服務,負責1.管理文件系統(tǒng)的命名空間和客戶端對文件的訪問。2.會保存文件系統(tǒng)的具體信息,包括文件信息、文件被分割成具體block塊的信息等。DataNodeDataNode作為slave服務,在集群中可以存在多個。1.DataNode負責管理節(jié)點上它們擁有的存儲。2.它將存儲劃分為多個block塊,管理block塊信息。3.周期性的將其所有的block塊信息發(fā)送給NameNode。3.4.2批處理系統(tǒng)1.客戶端帶著讀取路徑向NameNode發(fā)送讀取請求。2.NameNode會先判斷是否有權限是否存在等。發(fā)送節(jié)點位置給部分或者全部DataNode。3.客戶端得存儲的位置,去讀取數據。4.先去校驗數據是否正確,不正確則去下一個存放該block塊的DataNode節(jié)點上讀取。5.讀取完NameNode發(fā)送的所有的block塊調用close方法,并將讀取文件合并成一個大文件。3.4

大數據處理第三章大數據業(yè)務流程讀流程寫流程1.客戶端會帶著文件路徑向NameNode發(fā)送寫入請求。2.NameNode會去判斷是否有權限是否存在等,發(fā)送寫入的請求返回給客戶端。3.客戶端會將文件進行切分,然后上傳block。4.NameNode根據DataNode的存儲空間還有機架感知原理等返回block塊存儲的位置ABC。5.客戶端會去ABC三個節(jié)點上建立pipeline,建立完成后將結果返回客戶端。6.開始往A寫入,寫入完后依次寫入其他block塊,全部完成后將完成的信息返回給NameNode。7.NameNode存儲該文件的各個block塊的元數據信息。3.4.2批處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程3.4.2批處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程SparkStreaming是Spark核心API的一個擴展,可以實現高吞吐量的、具備容錯機制的實時流數據的處理。SparkStreaming支持從多種數據源獲取數據,包括Kafka、Flume、Twitter、ZeroMQ、Kinesis以及TCPSockets。從數據源獲取數據之后,可以使用諸如map、reduce、join和window等高級函數進行復雜算法的處理,最后還可以將處理結果存儲到文件系統(tǒng)、數據庫和現場儀表盤中。3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程RDD(ResilientDistributedDataset)叫做彈性分布式數據集,是Spark中最基本的數據抽象,Spark的所有的操作都是針對RDD。分區(qū)并行操作不可變RDD上三個特點3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程RDD上的Operation分為轉換(transformantion)動作(action)。3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程SparkStreaming使用離散化流(discretizedstream)作為抽象表示,叫作DStream。DStream是隨時間推移而收到的數據的序列。創(chuàng)建出來的DStream支持兩種操作,一種是轉化操作(transformation),會生成一個新的DStream,另一種是輸出操作(outputoperation),可以把數據寫入外部系統(tǒng)中。3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程01020304一個時間段。系統(tǒng)支持對一個窗口內的數據進行計算窗口一個時間片內所包含的流數據,表示成一個RDD。批數據拆分流數據的時間單元,一般為500毫秒或1秒。批處理時間間隔內部持續(xù)的實時數據流的抽象描述,即處理的一個實時數據流,在SparkStreaming中對應于一個DStream實例。離散流3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程ApacheFlink是由Apache軟件基金會開發(fā)的開源流處理框架,其核心是用Java和Scala編寫的分布式流數據流引擎。Flink以數據并行和流水線方式執(zhí)行任意流數據程序,Flink的流水線運行時系統(tǒng)可以執(zhí)行批處理和流處理程序。Flink作為一款分布式的計算引擎,既可以用來做批處理,即處理靜態(tài)的數據集、歷史的數據集;也可以用來做流處理,即實時地處理一些實時數據流,實時地產生數據的結果。3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程任務管理器(TaskManager)執(zhí)行數據流的task,task通過設置并行度,可能會有多個subtask。主要負責在獨立的線程執(zhí)行的operator。其中能執(zhí)行多少個operator取決于每個taskManager指定的slots數量。作業(yè)管理器(JobManager)主要負責調度task,協(xié)調checkpoint已經錯誤恢復等。將打包好的任務提交到JobManager之后,JobManager根據注冊的TaskManager資源信息分配并啟動運行任務。TaskManger從JobManager獲取task信息,然后使用slot資源運行task。3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程無界流有定義流的開始,但沒有定義流的結束。它們會無休止地產生數據。無界流的數據必須持續(xù)處理,即數據被攝取后需要立刻處理。有界流有定義流的開始,也有定義流的結束。有界流可以在攝取所有數據后再進行計算。有界流所有數據可以被排序,所以并不需要有序攝取。3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程有界流及無界流圖解3.4.3流處理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程快速、通用、可擴展的大數據分析引擎?;趦却娴挠嬎憧蚣?。多種計算模式、調度模式。包含多個子項目的集合。高級編程語言Scala編寫。支持多語言開發(fā)。3.4.4混合理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程3.4.4混合理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程SparkCoreSparkStreamingSparkSQLSparkMLlib集群管理器SparkGraphXSparkCore:實現了Spark的基本功能,包含任務調度、內存管理、錯誤恢復、與存儲系統(tǒng)交互等模塊。SparkSQL:是Spark用來操作結構化數據的程序包。SparkStreaming:是Spark提供的對實時數據進行流式計算的組件。SparkMLlib:提供常見的機器學習功能的程序庫。包括分類、回歸、聚類、協(xié)同過濾等。SparkGraphX:主要用于圖形并行計算和圖挖掘系統(tǒng)的組件。集群管理器:Spark支持在各種集群管理器(ClusterManager)上運行,包括HadoopYARN、ApacheMesos,以及Spark自帶的獨立調度器。3.4.4混合理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程基本的原理是將Stream數據分成小的時間片段(幾秒),以類似batch批量處理的方式來處理這小部分數據。小批量處理的方式使得它可以同時兼容批量和實時數據處理的邏輯和算法。方便了一些需要歷史數據和實時數據聯(lián)合分析的特定應用場合。3.4.4混合理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程高效性:運行速度快,基于內存計算易用性:支持多種語言開發(fā),提供多種操作API通用性:

提供了統(tǒng)一的解決方案兼容性:非常方便地與其他的開源產品進行融合3.4.4混合理系統(tǒng)3.4

大數據處理第三章大數據業(yè)務流程需要注意的是,在當前的企業(yè)應用中,ApacheSpark應該是當之無愧的王者。在批處理領域,雖然Spark與MapReduce的市場占有率不相上下,但Spark穩(wěn)定上升,而MapReduce在穩(wěn)定下降。在流處理領域,SparkStreaming和另一個大的流處理系統(tǒng)ApacheStorm一起占據了大部分市場,而Flink則潛力巨大,被稱為“下一代數據處理框架”。3.4.4混合理系統(tǒng)第三章大數據業(yè)務流程3.1數據采集3.2數據預處理ETL3.3大數據存儲3.5大數據應用場景3.4大數據處理習題3.5大數據應用場景第三章大數據業(yè)務流程電商行業(yè)大數據應用有兩個層面,一個層面是零售行業(yè)可以了解客戶的消費喜好和趨勢,進行商品的精準營銷,降低營銷成本。另一個層面是依據客戶購買的產品,為客戶提供可能購買的其他產品,擴大銷售額,也屬于精準營銷范疇。電商行業(yè)大數據應用3.5大數據應用場景第三章大數據業(yè)務流程醫(yī)療行業(yè)擁有大量的病例、病理報告、治愈方案、藥物報告等,通過對這些數據進行整理和分析將會極大地輔助醫(yī)生提出治療方案,幫助病人早日康復。醫(yī)療行業(yè)大數據應用3.5大數據應用場景第三章大數據業(yè)務流程氣象對社會的影響涉及方方面面,傳統(tǒng)上依賴氣象的主要是農業(yè)、林業(yè)和水運等行業(yè)部門,而如今借助于大數據技術,天氣預報的準確性和實效性將會大大提高,預報的及時性將會大大提升,同時對于重大自然災害如龍卷風,通過大數據計算平臺,人們將會更加準確地預測自然災害的趨勢。環(huán)境大數據應用第三章大數據業(yè)務流程3.1數據采集3.2數據預處理ETL3.3大數據存儲3.5大數據應用場景3.4大數據處理習題1.數據采集的準則包括哪兩方面?2.大數據存儲目前面臨著哪些挑戰(zhàn)?面對這些挑戰(zhàn)有什么樣的應對措施?3.大數據存儲的方式有哪些?4.分布式系統(tǒng)是什么?在分布式系統(tǒng)中有哪些常見的數據分布方式?5.請簡述NoSQL數據庫的含義。常見的鍵值存儲、面向文檔的數據庫、面向列的數據庫的特點分別是什么?6.什么是云存儲,云存儲的分類、特點是什么?7.大數據處理框架有哪些,主要是按照什么進行分類的?習題:第四章系統(tǒng)安裝部署4.1安裝部署的概念4.2安裝部署分布式系統(tǒng)4.3升級管理習題4.1安裝部署的概念第四章系統(tǒng)安裝部署4.1.1軟件安裝概述軟件部署首先要基于一個操作系統(tǒng)。操作系統(tǒng)則又基于硬件環(huán)境。我們可以通過各種不同的方式獲取這個操作系統(tǒng),只要操作系統(tǒng)相同,那么最終我們進行安裝時的操作也不會有什么不同。4.1安裝部署的概念第四章系統(tǒng)安裝部署4.1.1軟件安裝概述1.通過現有的物理機創(chuàng)建虛擬機以進行軟件系統(tǒng)的部署在使用物理機創(chuàng)建虛擬機進行軟件部署時,我們要通過虛擬軟件對系統(tǒng)進行虛擬化。windows系統(tǒng)常用VMwareworkstation、Virtualbox等軟件,macOS系統(tǒng)建議使用VMwarefusion軟件。通過這種方式,我們可以簡單快捷的獲得一個或多個用于部署軟件的操作系統(tǒng),但是使用虛擬機的方法獲取集群,實際上不能發(fā)揮出大數據組件的優(yōu)勢,通常在企業(yè)中也不這么使用,僅僅是在練習的時候這么使用。4.1安裝部署的概念第四章系統(tǒng)安裝部署4.1.1軟件安裝概述2.通過部署服務器的方式進行軟件部署從物理服務器上組裝系統(tǒng),然后在系統(tǒng)上部署大數據軟件,這是一般企業(yè)采用的方式。通過這種方式,我們可以獲取自己需要數目的機器,機器性能也可以自己指定,而且能夠保證企業(yè)的數據安全性,但是會有機器價格昂貴、靈活性差等等一系列問題。4.1安裝部署的概念第四章系統(tǒng)安裝部署4.1.1軟件安裝概述3.通過云服務的方式進行軟件部署通過購買公有云(如阿里云)或私有云(如OpenStack),將大數據軟件部署在云上,通過這種方式,我們可以實現在相對更低的預算下獲取更多的收益,但考慮到在云上部署不可避免的要使數據進入云運營商的網絡,因此安全性相比于部署物理服務器會差一些。4.1安裝部署的概念第四章系統(tǒng)安裝部署4.1.2大數據部署概述現階段,Hadoop的HDFS與YARN是大數據組件的基礎,在接下來的章節(jié)中詳細講解Hadoop的搭建。而在Hadoop外的大數據計算中,我們會經常使用到Spark作為分布式計算框架,因此Spark也是一個相對重要的部署重點。4.1安裝部署的概念第四章系統(tǒng)安裝部署4.1.2大數據部署概述大數據組件的基本內容第四章系統(tǒng)安裝部署4.1安裝部署的概念4.2安裝部署分布式系統(tǒng)4.3升級管理習題4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署1.單節(jié)點部署(1)基礎知識要學習和使用Hadoop,需要熟悉Linux基本命令,比如下載文件、使用vi/vim編輯文件、創(chuàng)建文件和創(chuàng)建目錄等。并且要能夠配置網絡參數,比如修改主機名、配置靜態(tài)IP地址、配置DNS和配置本地域名解析等。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署1.單節(jié)點部署(2)軟硬件環(huán)境Hadoop可以運行在Windows平臺和Linux平臺,推薦在64位Linux系統(tǒng)上運行。我們使用的Linux

CentOs7.0。一般學習和工作使用Windows系統(tǒng),推薦在Windows中使用虛擬機來運行Linux。虛擬機可以選擇VirutalBox或者VMwareWorkstation。我們使用

Hadoop

2.7.3版本,它是一個穩(wěn)定的正式版本。Hadoop2.6以及以前的版本只支持JDK6,從Hadoop2.7開始需要JDK7以上版本。推薦使用OpenJDK7。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署1.單節(jié)點部署(3)安裝步驟主要包括以下幾點:在虛擬機中安裝CentOs7。安裝ssh。安裝rsync。安裝openjdk。確認jdk版本。下載Hadoop的安裝包。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署1.單節(jié)點部署(3)安裝步驟主要包括以下幾點解壓。在Hadoop的配置文件中增加環(huán)境變量JAVA_HOME。驗證配置是否正確。運行MapReduce任務。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署2.集群部署Hadoop

的集群有多種架構,常見的有:傳統(tǒng)的NameNode加SecondaryNameNode方式、ActiveNamenode加StandbyNamenode方式即HighAvailability方式以及HighAvailability加Federation方式,如下圖所示。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署2.集群部署相比于Hadoop1.0,Hadoop2.0中的HDFS增加了兩個重大特性:HA和Federaion。HA即為HighAvailability,用于解決NameNode單點故障問題,該特性通過熱備的方式為主NameNode提供一個備用者,當主NameNode故障時,可以迅速切換至備用SecondaryNameNode,從而實現不間斷對外提供服務。

Federation即為“聯(lián)邦”,該特性允許一個HDFS集群中存在多個NameNode同時對外提供服務,這些NameNode分管一部分目錄(水平切分),彼此之間相互隔離,但共享底層的DataNode存儲資源,進一步提升集群的性能和可靠性。建議初學者先學習傳統(tǒng)方式的配置。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署2.集群部署集群部署主要包括以下幾點:集群規(guī)劃做好準備工作驗證準備工作配置Hadoop參數啟動集群4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署3.Hadoop其他組件部署在進行了Hadoop部署的同時,也有一些其他的軟件值得我們了解它們的部署方式,這些軟件和Hadoop有著一定的依賴關系。(1)ZookeeperZookeeper的安裝,只需要修改一些配置,主要是規(guī)定Zookeeper的各個節(jié)點的端口號,以及在myid里規(guī)定每臺機器的id號,然后一個個啟動節(jié)點機器即可。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.1Hadoop安裝部署3.Hadoop其他組件部署(2)Hive進行Hive的安裝相對比較簡單,只需要在hive-env.sh中填寫Hadoop_Home即可,然后打開在hive目錄下的bin文件夾,在文件夾下有二進制文件hive,直接訪問,就能進入hive命令行執(zhí)行hive操作。(3)HBaseHBase的安裝需要前置部署Zookeeper與Hadoop,之后只需要在HBase中配置Hadoop和Zookeeper位置,并在reginserver中規(guī)定HBase的從節(jié)點即可啟動HBase。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.2Spark部署

選擇部署Spark到Linux系統(tǒng)上,可以使用物理機、虛擬機或者云服務來部署。Linux的版本可以選擇CentOs、Ubuntu等穩(wěn)定版本。初學者學習體驗Spark可以先選擇單節(jié)點部署,而要使用Spark進行大數據處理或者大規(guī)模計算則需要選擇集群部署。單節(jié)點部署只需準備一臺Linux機器,而集群部署須要準備多臺Linux機器,并且各臺機器能通過網絡互連。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.2Spark部署1.準備工作安裝JDKSpark運行需要JAVA環(huán)境,并要求Java7及以上版本。在實際的部署中基本會和Hadoop一并部署,可以選擇JDK1.7或JDK1.8安裝。下載SparkSpark的官方下載地址為:/downloads.html。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.2Spark部署2.Spark集群部署Spark集群部署是指把Spark部署到多臺網絡互通的機器上,構成分布式系統(tǒng)。集群部署的好處是可以利用多臺機器的計算、內存、磁盤資源,有效地運行大數據處理程序,能夠處理的數據量或計算量遠遠大于使用單臺電腦部署的Spark。同時集群還提供了資源調度、高可用性、高可靠性等功能,可使Spark程序的運行穩(wěn)定、可靠、高效。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.2Spark部署2.

Spark集群部署Spark集群依照所使用的集群管理器被分為三種模式:StandaloneSparkonYarnSparkonMesos4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.2Spark部署3.搭建Standalone模式集群搭建集群之前首先要規(guī)劃好集群的規(guī)模及角色分配。Spark集群中的機器角色可以人為地分為主節(jié)點和從節(jié)點。通常把部署了Master角色的機器稱為主節(jié)點,部署了Slave角色的機器稱為從節(jié)點。主節(jié)點擔任調度管理的角色,而從節(jié)點則擔任任務計算及數據處理的工作。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.2Spark部署3.搭建Standalone模式集群我們將節(jié)點分成Master節(jié)點和Slave節(jié)點,具體規(guī)劃如下圖所示。4.2安裝部署分布式系統(tǒng)第四章系統(tǒng)安裝部署4.2.2Spark部署3.搭建Standalone模式集群集群搭建詳細步驟如下:3臺Linux機器,分別配置好機器名和IP地址,并確保每臺機器間的網絡能夠相互連通。默認配置下spark會占用8080、8081、6066、7077等端口,若防火墻開啟,這些端口可能無法連通,所以需要停掉每臺機器的防火墻。為每臺機器創(chuàng)建一個用戶(如dtadmin),此用戶具有管理員權限,后續(xù)登錄每臺機器均使用此用戶。配

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論