第1章 大數據項目概述_第1頁
第1章 大數據項目概述_第2頁
第1章 大數據項目概述_第3頁
第1章 大數據項目概述_第4頁
第1章 大數據項目概述_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

大數據項目概述1大數據項目實戰基礎目錄企業大數據項目簡介2官網:電話:189-2756-52592企業項目,如開發一款軟件、一個信息管理系統、部署實施一套網絡環境等,涉及多個方面的多個環節。

在互聯網IT企業的偏軟件交付類項目中,一般涉及兩個公司:一個公司發布需求(甲方招標,即提出軟件或系統或硬件的需求),而另一個公司滿足需求(乙方投標,即完成需求的響應)。

一般情況下,偏軟件交付類項目可以分為可行性分析、需求分析、軟件設計(概要設計、詳細設計)、編碼(軟件設計實現)、測試、運行維護等幾個階段。有時,因為甲方會提前進行可行性分析,所以乙方的工作更加偏向后面幾個階段。官網:電話:189-2756-52593企業項目數據處理流程

企業偏軟件交付類項目包含的項目種類比較多,常見的項目如企業CRM(Customer

RelationshipManagement,客戶關系管理)系統、用戶個性化推薦系統等。基于數據處理類項目,企業項目數據處理流程如下圖。企業項目數據處理流程官網:電話:189-2756-52594

數據獲取:數據獲取可能是一個文本文件、一個數據庫、一個網絡端口、一個爬蟲程序等,其主要功能是提供數據。

數據采集:數據采集即數據傳輸(狹義的概念),如通過文件傳送協議(File

Transfer

Protocol,FTP)下載文件就是一種數據傳輸的過程。數據存儲:數據采集后,需要一個地方來存儲這些數據,以供備份或數據分析、挖掘使用。官網:電話:189-2756-52595企業項目數據處理流程數據分析、挖掘:此層主要完成一些和業務相關的計算、分析、挖掘任務。

數據調用:數據調用是針對數據分析、挖掘的結果提供某種獲取結果的接口,供第三方(或本系統)訪問調用。

數據展現:數據展現負責數據的最終結果的展現。展現方式有多種,如表格、趨勢圖等,需要和具體業務掛鉤。官網:電話:189-2756-52596企業項目數據處理流程企業大數據項目一般架構架構分析官網:電話:189-2756-52597數據獲取層數據的來源多種多樣如文本文件、端口數據、移動設備數據、互聯網數據。一般情況下,如果項目是科技項目或論文結題項目,那么數據源會直接給出數據,如CSV文件。

而項目是企業級項目時,如建立一個推薦系統,企業的數據一般是放在數據庫中的,如放在Oracle或MySQL中。還有一些項目需要通過爬蟲程序去爬取互聯網中的數據,此時數據源就是一個爬蟲程序。官網:電話:189-2756-52598架構分析數據采集層數據采集框架

Flume是Apache軟件基金會的一個數據采集框架,它是一個分布式的、可靠的、高可用的,可以從多種不同的數據源收集、聚集、移動大量日志數據至集中數據存儲層的框架。Flume可以匹配多種輸入、輸出源,使得不同輸入、輸出源的連接配置簡單化。官網:電話:189-2756-52599架構分析數據采集框架

Apache

Sqoop(簡稱Sqoop)項目旨在協助關系數據庫管理系統(Relational

Database

Management

System,RDBMS)與Hadoop系統(Hadoop生態環境)進行高效的大數據傳輸。Sqoop可以建立一個連接RDBMS和Hadoop系統的數據傳輸通道。

Kafka是由Apache軟件基金會開發的一個開源流處理平臺,其目標是為處理實時數據提供一個統一、高吞吐量、低延遲的平臺。Kafka的持久化層本質上是一個“按照分布式事務日志架構的大規模發布/訂閱消息隊列”,因此Kafka更適合用于需要進行實時采集大批量數據的數據源(如端口數據源)。官網:電話:189-2756-525910架構分析數據存儲層

Hadoop分布式文件系統(Hadoop

Distributed

File

System,HDFS)、HBase、Hive都是Hadoop技術流的數據存儲框架。HDFS是HBase、Hive的底層存儲技術。HBase使用鍵值對的存儲結構,適用于針對特定鍵的搜索場景。Hive則是一個大數據倉庫,它可以針對HDFS中的數據建立元數據,并對元數據進行各種查詢操作。

Elasticsearch(簡稱ES)是一個基于Lucene的開源搜索引擎,它不但穩定、可靠、快速,而且具有良好的水平擴展能力,是專門為分布式環境設計的。因為ES是面向文檔型數據庫的,所以它存儲的是整個對象或

者文檔。它還會為存儲的數據建立索引,因此可以在ES中高效地索引、搜索、排序和過濾文檔。官網:電話:189-2756-525911架構分析MongoDB是NoSQL數據庫,它是一個高擴展、高性能和高可用的數據庫。MongoDB是一種面向文檔的數據庫,以Javascript對象表示法(Javascript

Object

Notation,JSON)的形式進行數據存儲。和ES一樣,MongoDB也支持全文搜索,MongoDB和ES的不同主要體現在使用場景上,可根據不同的使用場景(建議讀者根據自己的實際環境進行預判)有針對性地選擇這些產品。

在大數據項目架構的數據存儲層也可能會有傳統數據庫的身影,如MySQL、Oracle、DB2等,傳統數據庫的作用是結果存儲。官網:電話:189-2756-525912架構分析數據分析、挖掘層

在數據分析、挖掘層中,常用的計算引擎有內存計算引擎(Spark)、離線計算引擎(MapReduce)、流處理引擎(Streaming)、搜索引擎(ES)。

這些計算引擎都用于最終完成數據統計、數據分析或機器學習這樣的任務,為具體業務中的任務提供匹配的計算能力。官網:電話:189-2756-525913架構分析數據調用層數據調用層要完成的任務就是提供接口,可以很方便地供第三方調用。

數據調用層為獲取數據分析、挖掘層計算結果的數據提供了一種標準化的接口,使得如果各個應用都按照設計的標準來獲取數據,那么各個應用都可以通過標準化的接口來獲取這些數據,而不需要額外進行編碼。官網:電話:189-2756-525914架構分析數據展現層數據展現層指的是系統最終對外提供了什么服務。

與大數據結合比較緊密的大屏應用可視化在公安、電力、園區管理、網絡、航天等信息化程度相對較高的領域發揮了巨大作用,可以幫助行業從業務管理、事前預警、事中指揮調度、事后分析研判等多個方面提升智能化決策能力。因此,其實一個可視化應用也可以作為一個業務來理解。官網:電話:189-2756-525915架構分析銷售(售前)項目前期,乙方(完成項目的一方)的售前人員需要和甲方溝通具體需求、簽訂合同等。雙方需要明確地把需求書面化、文檔化,體現在類似需求說明書等文件中,確保雙方對于需求的理解是一致的。數據分析師/架構師拿到需求說明書后,數據分析師針對這些需求提出預研方案(或模型),并進行預研探索(包括一些基本的數據處理、模型構建等);架構師需要結合需求以及數據分析師的預研結果來提出需要實現的工程系統架構及方案,同時需要通過對提出的一個或多個架構、方案進行分析,根據其可行性、適合性來確定最終的工程系統架構及系統實現方案。官網:電話:189-2756-525916人員安排程序員架構師設計出整個系統的架構后,程序員會根據系統架構搭建系統框架,并和項目組成員共同制訂各種開發計劃、細則、要求等,而項目組成員負責整個系統的技術實現及各自的單元測試部分。測試人員整個系統實現后,需要有專門的測試人員對系統實現的各個模塊進行一系列的集成測試、系統測試,并協助完成最后的驗收測試。官網:電話:189-2756-525917人員安排實施/運維人員乙方在測試環境中部署、測試整個系統后,需要在甲方提供的實際環境中再次部署,因此需要由實施人員到甲方現場部署系統。項目后期,系統運行過程中出現的各種問題,都需要通過運維人員來解決;如果涉及程序漏洞等,那么可以協調相關人員解決。一般來說,項目進行到運維階段基本上就算結束了,也意味著甲乙雙方合同關系終止。合同終止一般是在運維結束后,也有可能是在運維結束前,如果合同終止在運維階段前,那么運維階段一般會再簽署補充的運維協議。官網:電話:189-2756-525918人員安排1大數據項目實戰基礎目錄企業大數據項目簡介2官網:電話:189-2756-525919硬件環境本書項目使用的硬件環境主要包括3個方面:CDH集群、客戶端開發設備。CDH集群硬件配置如下表。官網:電話:189-2756-525920實戰環境設備名IP地址CPU核數內存大小/GB磁盤/GBnode1524241200node2624241200node3724241200node4824241200server131616700server241616700server3401616300實戰環境官網:電話:189-2756-5259212.軟件環境軟件Cloudera

Manager5.7.3版本備注與之配套的Hadoop相關軟件受Cloudra

Manager大版本的影響Hadoop2.6.02.6.0-cdh5.7.3Spark1.6.01.6.0-cdh5.7.3Hive1.1.01.1.0-cdh5.7.3HBase1.2.01.2.0-cdh5.7.3ZooKeeper/HBase自帶Sqoop1.4.61.4.6-cdh5.7.3KafkaElasticsearchJDKIntelliJ

IDEAMaven0.10.2-kafka2.2.0

—6.3.21.82016及以上3.3.12.10.6—開發環境和集群環境JDK版本保持一致2016~2018版本均可3及以上版本均可Scala插件和IntelliJ

IDEA匹配即可ScalaCDH集群各服務部署情況實戰環境官網:電話:189-2756-525922CDH首頁實戰環境官網:電話:189-2756-525923CDH主機監控界面實戰環境官網:電話:189-2756-525924HDFS監控界面實戰環境官網:電話:189-2756-525925YARN監控界面實戰環境官網:電話:189-2756-525926Hive監控界面實戰環境官網:電話:189-2756-525927Spark監控界面實戰環境官網:電話:189-2756-525928HBase監控界面實戰環境官網:電話:189-2756-525929開發環境開發環境分為兩大類。

第一類指直接操作類環境,如Linux終端(直接執行Shell命令)或SparkShell(直接執行一段Spark代碼);

第二類是代碼工程化的開發環境,如前面已經執行過一段Spark代碼,現在需要把這段代碼工程化,使之可以在調度中運行得到結果,而不是通過人工復制、粘貼運行得到結果。官網:電話:189-2756-525930實戰環境安裝IntelliJ

IDEA開發環境在IntelliJ

IDEA官網下載IntelliJ

IDEA并安裝。實戰環境官網:電話:189-2756-525931(2)配置Maven插件打開IntelliJ

IDEA后,依次選擇“File”→“Settings”→“Build,Execution,Deployment”→“Build

Too→“Maven”選項,并在“Maven

home

directory”下拉列表框中配置安裝好的Maven插件。實戰環境官網:電話:189-2756-525932(3)配置Scala插件

依次選擇“File”→“Settings”→“Plugins”→“Install

JetBrains

Plugins”選項,在彈出的搜索框中輸“scala”,即可看到Scala插件(雙擊即可進行安裝)。實戰環境官網:電話:189-2756-525933(4)配置隨書附帶的代碼資源

下載并解壓縮隨書附帶的代碼資源big_data_case_study.zip,解壓縮后得到所有代碼工程文件。使用IntelliJIDEA導入代碼工程,導入后的代碼工程如下圖。實戰環境官網:電話:189-2756-525934包括但不限于以下兩類。基礎開發類包括基本的Linux操作技能,如熟練使用Linux命令、編輯Linux配置文件等;基本的Java開發能力,能使用Spring

Boot完成一個簡單應用的開發實現;基本的Scala程序編寫能力,如能熟練使用Scala的函數式編程;

基本的SQL(Structure

Query

Language,結構查詢語言)增加、刪除、修改、查詢(簡稱增刪改查)能力,如能使用SQL完成復雜的統計分析腳本的編寫。大數據技術類具備操作HDFS的能力,具備編寫Hive

SQL的能力,具備編寫Spark代碼的能力等。官網:電話:189-2756-525935涉及的技術及需掌握的能力在第2、3章的項目實戰中,工程化模塊的代碼,針對Spark任務的調用采用了拿來即用的方式。實現拿來即用的基礎模塊是Spark

Hadoop

Common模塊。Spark

Hadoop

Common模塊是指通過Spark框架實現Hadoop常用程序和庫的模塊。官網:電話:189-2756-525936涉及的技術及需掌握的能力任務提交和監控在Spark集群中兩種提交Spark任務方式:Spark

On

YARN和Spark

Standalone。任務提交做如下設計。把提交方式作為配置文件的參數,可以由外部配置,也可以由開發人員在提交時指定,以增加靈活性。在提交時,只需要指定必要的參數即可,其他參數不用進行指定,使用配置文件中的默認設置即可。基于以上兩個規則,實現Spark

On

YARN的任務提交方法設計了一個工具類SparkYarnJob,其有3個靜態(關鍵字為static)方法。涉及的技術及需掌握的能力官網:電話:189-2756-525937

在run方法中,接收一個Args參數類,并返回一個SubmitResult返回值類。在run方法中,主要根據Args中的引擎(如果有動態指定,那么使用指定的引擎,否則使用默認的引擎)選擇不同的Spark任務提交方案。提交Spark任務到YARN集群的代碼需要先設置系統屬性SPARK_YARN_MODE為“true”,初始化SparkConf,使用Args的argsForYarn函數初始化ClientArguments,并使用SparkConf、ClientArguments和Hadoop

Configuration(getConf函數,該函數會在后面說明)來初始化Client,通過Client即可向YARN集群提交Spark任務。官網:電話:189-2756-525938涉及的技術及需掌握的能力

在任務調用階段返回SubmitResult,根據SubmitResult即可進行監控。監控同樣分為兩種:提交到YARN集群的任務監控和提交到Spark集群的任務監控。提交到YARN集群的任務監控的核心代碼監控的核心流程就是根據任務ID(jobId)獲取當前任務的狀態,并進行判斷,如果任務運行完成(運行成功、運行異常或被殺死),那么退出循環;否則,休眠一定時間后,再次獲取任務狀態。任務狀態的獲取主要通過YarnClient的getApplicationReport方法實現,而YarnClient的獲取則需要根據Hadoop

Configuration(getConf函數)來指定使用的集群參數。官網:電話:189-2756-525939涉及的技術及需掌握的能力提交到Spark集群的任務監控的核心代碼Spark集群的任務監控通過RestSubmissionClient的requestSubmissionStatus方法來實現,其中

RestSubmissionClient的初始化需要指定Spark集群的URL。此外,Spark集群任務監控的其他流程和YARN集群的任務監控流程一樣。官網:電話:189-2756-525940涉及的技術及需掌握的能力參數和返回值設計參數類Args的方法如右圖。

參數類Args中除了對外提供獲取appName、mainClass、args、Engine

Type等參數,還提供argsForYarn函數,以實現提交任務到YARN集群做額外的參數配置。

返回值類SubmitResult同樣采用了私有化構造方法的設計方法,對外提供getSubmitResult的靜態函數來進行實例化。SubmitResult類中主要提供兩個參數:引擎、任務ID。涉及的技術及需掌握的能力官網:電話:189-2756-525941獲取SparkConf提交任務到不同

溫馨提示

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

評論

0/150

提交評論