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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

大數(shù)據(jù)項目概述1大數(shù)據(jù)項目實戰(zhàn)基礎(chǔ)目錄企業(yè)大數(shù)據(jù)項目簡介2官網(wǎng):電話:189-2756-52592企業(yè)項目,如開發(fā)一款軟件、一個信息管理系統(tǒng)、部署實施一套網(wǎng)絡(luò)環(huán)境等,涉及多個方面的多個環(huán)節(jié)。

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

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

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

RelationshipManagement,客戶關(guān)系管理)系統(tǒng)、用戶個性化推薦系統(tǒng)等?;跀?shù)據(jù)處理類項目,企業(yè)項目數(shù)據(jù)處理流程如下圖。企業(yè)項目數(shù)據(jù)處理流程官網(wǎng):電話:189-2756-52594

數(shù)據(jù)獲取:數(shù)據(jù)獲取可能是一個文本文件、一個數(shù)據(jù)庫、一個網(wǎng)絡(luò)端口、一個爬蟲程序等,其主要功能是提供數(shù)據(jù)。

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

Transfer

Protocol,F(xiàn)TP)下載文件就是一種數(shù)據(jù)傳輸?shù)倪^程。數(shù)據(jù)存儲:數(shù)據(jù)采集后,需要一個地方來存儲這些數(shù)據(jù),以供備份或數(shù)據(jù)分析、挖掘使用。官網(wǎng):電話:189-2756-52595企業(yè)項目數(shù)據(jù)處理流程數(shù)據(jù)分析、挖掘:此層主要完成一些和業(yè)務(wù)相關(guān)的計算、分析、挖掘任務(wù)。

數(shù)據(jù)調(diào)用:數(shù)據(jù)調(diào)用是針對數(shù)據(jù)分析、挖掘的結(jié)果提供某種獲取結(jié)果的接口,供第三方(或本系統(tǒng))訪問調(diào)用。

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

而項目是企業(yè)級項目時,如建立一個推薦系統(tǒng),企業(yè)的數(shù)據(jù)一般是放在數(shù)據(jù)庫中的,如放在Oracle或MySQL中。還有一些項目需要通過爬蟲程序去爬取互聯(lián)網(wǎng)中的數(shù)據(jù),此時數(shù)據(jù)源就是一個爬蟲程序。官網(wǎng):電話:189-2756-52598架構(gòu)分析數(shù)據(jù)采集層數(shù)據(jù)采集框架

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

Apache

Sqoop(簡稱Sqoop)項目旨在協(xié)助關(guān)系數(shù)據(jù)庫管理系統(tǒng)(Relational

Database

Management

System,RDBMS)與Hadoop系統(tǒng)(Hadoop生態(tài)環(huán)境)進行高效的大數(shù)據(jù)傳輸。Sqoop可以建立一個連接RDBMS和Hadoop系統(tǒng)的數(shù)據(jù)傳輸通道。

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

Hadoop分布式文件系統(tǒng)(Hadoop

Distributed

File

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

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

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

Object

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

在大數(shù)據(jù)項目架構(gòu)的數(shù)據(jù)存儲層也可能會有傳統(tǒng)數(shù)據(jù)庫的身影,如MySQL、Oracle、DB2等,傳統(tǒng)數(shù)據(jù)庫的作用是結(jié)果存儲。官網(wǎng):電話:189-2756-525912架構(gòu)分析數(shù)據(jù)分析、挖掘?qū)?/p>

在數(shù)據(jù)分析、挖掘?qū)又?,常用的計算引擎有?nèi)存計算引擎(Spark)、離線計算引擎(MapReduce)、流處理引擎(Streaming)、搜索引擎(ES)。

這些計算引擎都用于最終完成數(shù)據(jù)統(tǒng)計、數(shù)據(jù)分析或機器學習這樣的任務(wù),為具體業(yè)務(wù)中的任務(wù)提供匹配的計算能力。官網(wǎng):電話:189-2756-525913架構(gòu)分析數(shù)據(jù)調(diào)用層數(shù)據(jù)調(diào)用層要完成的任務(wù)就是提供接口,可以很方便地供第三方調(diào)用。

數(shù)據(jù)調(diào)用層為獲取數(shù)據(jù)分析、挖掘?qū)佑嬎憬Y(jié)果的數(shù)據(jù)提供了一種標準化的接口,使得如果各個應(yīng)用都按照設(shè)計的標準來獲取數(shù)據(jù),那么各個應(yīng)用都可以通過標準化的接口來獲取這些數(shù)據(jù),而不需要額外進行編碼。官網(wǎng):電話:189-2756-525914架構(gòu)分析數(shù)據(jù)展現(xiàn)層數(shù)據(jù)展現(xiàn)層指的是系統(tǒng)最終對外提供了什么服務(wù)。

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

Manager5.7.3版本備注與之配套的Hadoop相關(guān)軟件受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—開發(fā)環(huán)境和集群環(huán)境JDK版本保持一致2016~2018版本均可3及以上版本均可Scala插件和IntelliJ

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

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

第二類是代碼工程化的開發(fā)環(huán)境,如前面已經(jīng)執(zhí)行過一段Spark代碼,現(xiàn)在需要把這段代碼工程化,使之可以在調(diào)度中運行得到結(jié)果,而不是通過人工復制、粘貼運行得到結(jié)果。官網(wǎng):電話:189-2756-525930實戰(zhàn)環(huán)境安裝IntelliJ

IDEA開發(fā)環(huán)境在IntelliJ

IDEA官網(wǎng)下載IntelliJ

IDEA并安裝。實戰(zhàn)環(huán)境官網(wǎng):電話:189-2756-525931(2)配置Maven插件打開IntelliJ

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

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

home

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

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

JetBrains

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

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

Boot完成一個簡單應(yīng)用的開發(fā)實現(xiàn);基本的Scala程序編寫能力,如能熟練使用Scala的函數(shù)式編程;

基本的SQL(Structure

Query

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

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

Hadoop

Common模塊。Spark

Hadoop

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

On

YARN和Spark

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

On

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

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

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

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

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

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

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

Type等參數(shù),還提供argsForYarn函數(shù),以實現(xiàn)提交任務(wù)到Y(jié)ARN集群做額外的參數(shù)配置。

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

溫馨提示

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

評論

0/150

提交評論